Lines Matching refs:i
41 static inline void send_start(const gpio_i2c_info_t *i) { in send_start() argument
42 gpio_config(i->sda, GPIO_OUTPUT); in send_start()
43 spin_cycles(i->qcd); in send_start()
44 gpio_config(i->scl, GPIO_OUTPUT); in send_start()
45 spin_cycles(i->hcd); in send_start()
48 static inline void send_stop(const gpio_i2c_info_t *i) { in send_stop() argument
49 gpio_config(i->sda, GPIO_OUTPUT); in send_stop()
50 gpio_config(i->scl, GPIO_I2C_INPUT); in send_stop()
51 spin_cycles(i->qcd); in send_stop()
52 gpio_config(i->sda, GPIO_I2C_INPUT); in send_stop()
55 static inline void send_restart(const gpio_i2c_info_t *i) { in send_restart() argument
56 gpio_config(i->scl, GPIO_I2C_INPUT); in send_restart()
57 spin_cycles(i->qcd); in send_restart()
58 send_start(i); in send_restart()
61 static inline void send_nack(const gpio_i2c_info_t *i) { in send_nack() argument
62 spin_cycles(i->hcd); in send_nack()
63 gpio_config(i->scl, GPIO_I2C_INPUT); in send_nack()
64 spin_cycles(i->hcd); in send_nack()
65 gpio_config(i->scl, GPIO_OUTPUT); in send_nack()
66 gpio_config(i->sda, GPIO_I2C_INPUT); in send_nack()
69 static inline void send_ack(const gpio_i2c_info_t *i) { in send_ack() argument
70 gpio_config(i->sda, GPIO_OUTPUT); in send_ack()
71 send_nack(i); in send_ack()
74 static inline bool send_byte(const gpio_i2c_info_t *i, uint32_t b) { in send_byte() argument
79 gpio_config(i->sda, GPIO_I2C_INPUT); in send_byte()
81 gpio_config(i->sda, GPIO_OUTPUT); in send_byte()
89 spin_cycles(i->hcd); in send_byte()
90 gpio_config(i->scl, GPIO_I2C_INPUT); in send_byte()
91 spin_cycles(i->hcd); in send_byte()
92 gpio_config(i->scl, GPIO_OUTPUT); in send_byte()
95 gpio_config(i->sda, GPIO_I2C_INPUT); in send_byte()
96 spin_cycles(i->hcd); in send_byte()
97 gpio_config(i->scl, GPIO_I2C_INPUT); in send_byte()
98 spin_cycles(i->hcd); in send_byte()
99 ret = (0 == gpio_get(i->sda)); in send_byte()
100 gpio_config(i->scl, GPIO_OUTPUT); in send_byte()
101 spin_cycles(i->hcd); in send_byte()
106 static inline void recv_byte(const gpio_i2c_info_t *i, uint8_t *b) { in recv_byte() argument
110 gpio_config(i->scl, GPIO_I2C_INPUT); in recv_byte()
111 spin_cycles(i->hcd); in recv_byte()
112 if (gpio_get(i->sda)) in recv_byte()
115 gpio_config(i->scl, GPIO_OUTPUT); in recv_byte()
116 spin_cycles(i->hcd); in recv_byte()
119 gpio_config(i->scl, GPIO_I2C_INPUT); in recv_byte()
120 spin_cycles(i->hcd); in recv_byte()
121 if (gpio_get(i->sda)) in recv_byte()
123 gpio_config(i->scl, GPIO_OUTPUT); in recv_byte()
133 const gpio_i2c_info_t *i = s->info; in gpio_i2c_tx_common() local
139 send_start(i); in gpio_i2c_tx_common()
140 if (!send_byte(i, address << 1)) in gpio_i2c_tx_common()
143 if ((NULL != reg) && !send_byte(i, *reg)) in gpio_i2c_tx_common()
147 if (!send_byte(i, ((const uint8_t *)buf)[j])) in gpio_i2c_tx_common()
153 send_stop(i); in gpio_i2c_tx_common()
163 const gpio_i2c_info_t *i = s->info; in gpio_i2c_rx_common() local
171 send_start(i); in gpio_i2c_rx_common()
172 if (!send_byte(i, address | (!reg ? 0x1 : 0x0))) in gpio_i2c_rx_common()
176 if (!send_byte(i, *reg)) in gpio_i2c_rx_common()
179 send_restart(i); in gpio_i2c_rx_common()
181 if (!send_byte(i, address | 0x1)) in gpio_i2c_rx_common()
185 recv_byte(i, buf++); in gpio_i2c_rx_common()
187 send_ack(i); in gpio_i2c_rx_common()
188 recv_byte(i, buf++); in gpio_i2c_rx_common()
190 send_nack(i); in gpio_i2c_rx_common()
194 send_stop(i); in gpio_i2c_rx_common()