Lines Matching +full:stop +full:- +full:ack

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
65 while (counter--) { in pcf_wait_byte()
83 device_printf(dev, " >> stop\n"); in pcf_stop_locked()
86 * Send STOP condition iff the START condition was previously sent. in pcf_stop_locked()
87 * STOP is sent only once even if an iicbus_stop() is called after in pcf_stop_locked()
88 * an iicbus_read()... see pcf_read(): the PCF needs to send the stop in pcf_stop_locked()
91 if (sc->pcf_started) { in pcf_stop_locked()
92 /* set stop condition and enable IT */ in pcf_stop_locked()
93 pcf_set_S1(sc, PIN|ESO|ENI|STO|ACK); in pcf_stop_locked()
95 sc->pcf_started = 0; in pcf_stop_locked()
111 } while (k--); in pcf_noack()
128 pcf_set_S1(sc, ESO|STA|STO|ACK); in pcf_repeated_start()
138 /* check for ack */ in pcf_repeated_start()
142 printf("pcf: no ack on repeated_start!\n"); in pcf_repeated_start()
179 pcf_set_S1(sc, PIN|ESO|STA|ACK); in pcf_start()
181 sc->pcf_started = 1; in pcf_start()
187 /* check for ACK */ in pcf_start()
191 printf("pcf: no ack on start!\n"); in pcf_start()
211 device_printf(dev, " >> stop\n"); in pcf_stop()
242 iicbus_intr(sc->iicbus, INTR_ERROR, &error); in pcf_intr()
250 switch(sc->pcf_slave_mode) { in pcf_intr()
253 /* ack interrupt line */ in pcf_intr()
256 /* no ack, don't send anymore */ in pcf_intr()
257 sc->pcf_slave_mode = SLAVE_RECEIVER; in pcf_intr()
259 iicbus_intr(sc->iicbus, INTR_NOACK, NULL); in pcf_intr()
264 iicbus_intr(sc->iicbus, INTR_TRANSMIT, &data); in pcf_intr()
274 iicbus_intr(sc->iicbus, INTR_GENERAL, &addr); in pcf_intr()
276 iicbus_intr(sc->iicbus, INTR_START, &addr); in pcf_intr()
279 sc->pcf_slave_mode = SLAVE_TRANSMITTER; in pcf_intr()
282 iicbus_intr(sc->iicbus, INTR_TRANSMIT, &data); in pcf_intr()
291 /* stop condition received? */ in pcf_intr()
293 /* ack interrupt line */ in pcf_intr()
296 /* emulate intr stop condition */ in pcf_intr()
297 iicbus_intr(sc->iicbus, INTR_STOP, NULL); in pcf_intr()
300 /* get data, ack interrupt line */ in pcf_intr()
304 iicbus_intr(sc->iicbus, INTR_RECEIVE, &data); in pcf_intr()
310 sc->pcf_slave_mode); in pcf_intr()
320 pcf_set_S1(sc, PIN|ESO|ENI|ACK); in pcf_intr()
322 sc->pcf_slave_mode = SLAVE_RECEIVER; in pcf_intr()
335 *oldaddr = sc->pcf_addr; in pcf_rst_card()
339 sc->pcf_addr = PCF_DEFAULT_ADDR; in pcf_rst_card()
341 sc->pcf_addr = addr; in pcf_rst_card()
346 pcf_set_S0(sc, sc->pcf_addr >> 1); in pcf_rst_card()
368 /* set bus on, ack=yes, INT=yes */ in pcf_rst_card()
369 pcf_set_S1(sc, PIN|ESO|ENI|ACK); in pcf_rst_card()
371 sc->pcf_slave_mode = SLAVE_RECEIVER; in pcf_rst_card()
397 /* check if ack received */ in pcf_write()
403 len --; in pcf_write()
435 pcf_set_S1(sc, ESO); /* no ack */ in pcf_read()
456 /* next trigged byte with no ack */ in pcf_read()
462 len --; in pcf_read()