Lines Matching defs:sc
70 struct pcfadc_softc *sc = (struct pcfadc_softc *)self;
97 sc->sc_nchan = clen / 4;
98 if (sc->sc_nchan > PCF8591_CHANNELS) {
99 printf(": invalid number of channels (%d)\n", sc->sc_nchan);
103 if ((tlen = OF_getprop(node, "tables", sc->sc_xlate,
104 sizeof(sc->sc_xlate))) < 0) {
119 if (tlen != (sc->sc_nchan * 4 * 4)) {
125 for (i = 0; i < sc->sc_nchan; i++) {
126 struct pcfadc_channel *chp = &sc->sc_channels[i];
157 sc->sc_tag = ia->ia_tag;
158 sc->sc_addr = ia->ia_addr;
160 iic_acquire_bus(sc->sc_tag, 0);
163 if (iic_exec(sc->sc_tag, I2C_OP_READ_WITH_STOP, sc->sc_addr,
164 NULL, 0, junk, sc->sc_nchan + 1, 0)) {
166 iic_release_bus(sc->sc_tag, 0);
170 iic_release_bus(sc->sc_tag, 0);
173 strlcpy(sc->sc_sensordev.xname, sc->sc_dev.dv_xname,
174 sizeof(sc->sc_sensordev.xname));
176 for (i = 0; i < sc->sc_nchan; i++)
177 sensor_attach(&sc->sc_sensordev,
178 &sc->sc_channels[i].chan_sensor);
180 if (sensor_task_register(sc, pcfadc_refresh, 5) == NULL) {
185 sensordev_install(&sc->sc_sensordev);
193 struct pcfadc_softc *sc = arg;
197 iic_acquire_bus(sc->sc_tag, 0);
199 if (iic_exec(sc->sc_tag, I2C_OP_READ_WITH_STOP, sc->sc_addr,
201 iic_release_bus(sc->sc_tag, 0);
204 iic_release_bus(sc->sc_tag, 0);
207 for (i = 0; i < sc->sc_nchan; i++) {
208 struct pcfadc_channel *chp = &sc->sc_channels[i];
211 sc->sc_xlate[data[1 + chp->chan_num]];