Lines Matching refs:regs
83 struct i2c_regs *regs = (struct i2c_regs *)base; in i2c_reset() local
85 io_setbits8((vaddr_t)®s->ibcr, I2C_IBCR_MDIS); in i2c_reset()
86 io_setbits8((vaddr_t)®s->ibsr, I2C_IBSR_IBAL | I2C_IBSR_IBIF); in i2c_reset()
87 io_clrbits8((vaddr_t)®s->ibcr, I2C_IBCR_IBIE | I2C_IBCR_DMAEN); in i2c_reset()
88 io_clrbits8((vaddr_t)®s->ibic, I2C_IBIC_BIIE); in i2c_reset()
99 struct i2c_regs *regs = (struct i2c_regs *)base; in i2c_get_ibfd() local
104 if (io_read8((vaddr_t)®s->ibdbg) & I2C_IBDBG_GLFLT_EN) { in i2c_get_ibfd()
121 struct i2c_regs *regs = NULL; in i2c_init() local
154 regs = (struct i2c_regs *)ctrl_base; in i2c_init()
160 io_write8((vaddr_t)®s->ibfd, ibfd); in i2c_init()
172 static TEE_Result i2c_bus_test_bus_busy(struct i2c_regs *regs, bool test_busy) in i2c_bus_test_bus_busy() argument
178 reg = io_read8((vaddr_t)®s->ibsr); in i2c_bus_test_bus_busy()
181 io_write8((vaddr_t)®s->ibsr, reg); in i2c_bus_test_bus_busy()
205 static TEE_Result i2c_transfer_complete(struct i2c_regs *regs, bool test_rx_ack) in i2c_transfer_complete() argument
211 reg = io_read8((vaddr_t)®s->ibsr); in i2c_transfer_complete()
215 io_write8((vaddr_t)®s->ibsr, reg); in i2c_transfer_complete()
240 static TEE_Result i2c_read(struct i2c_regs *regs, unsigned int slave_address, in i2c_read() argument
248 io_write8((vaddr_t)®s->ibdr, (slave_address << 0x1) | BIT(0)); in i2c_read()
249 res = i2c_transfer_complete(regs, I2C_BUS_TEST_RX_ACK); in i2c_read()
254 io_clrbits8((vaddr_t)®s->ibcr, I2C_IBCR_TXRX); in i2c_read()
257 io_clrbits8((vaddr_t)®s->ibcr, I2C_IBCR_NOACK); in i2c_read()
261 io_read8((vaddr_t)®s->ibdr); in i2c_read()
264 res = i2c_transfer_complete(regs, I2C_BUS_NO_TEST_RX_ACK); in i2c_read()
269 io_setbits8((vaddr_t)®s->ibcr, I2C_IBCR_NOACK); in i2c_read()
273 io_setbits8((vaddr_t)®s->ibcr, in i2c_read()
277 io_clrbits8((vaddr_t)®s->ibcr, in i2c_read()
279 res = i2c_bus_test_bus_busy(regs, in i2c_read()
285 operation->buffer[n] = io_read8((vaddr_t)®s->ibdr); in i2c_read()
297 static TEE_Result i2c_write(struct i2c_regs *regs, unsigned int slave_address, in i2c_write() argument
304 io_write8((vaddr_t)®s->ibdr, in i2c_write()
306 res = i2c_transfer_complete(regs, I2C_BUS_TEST_RX_ACK); in i2c_write()
312 io_write8((vaddr_t)®s->ibdr, operation->buffer[n]); in i2c_write()
313 res = i2c_transfer_complete(regs, I2C_BUS_TEST_RX_ACK); in i2c_write()
325 static TEE_Result i2c_stop(struct i2c_regs *regs) in i2c_stop() argument
330 reg = io_read8((vaddr_t)®s->ibsr); in i2c_stop()
333 io_clrbits8((vaddr_t)®s->ibcr, in i2c_stop()
335 res = i2c_bus_test_bus_busy(regs, I2C_BUS_TEST_IDLE); in i2c_stop()
341 io_setbits8((vaddr_t)®s->ibcr, I2C_IBCR_MDIS); in i2c_stop()
350 static TEE_Result i2c_start(struct i2c_regs *regs) in i2c_start() argument
354 io_setbits8((vaddr_t)®s->ibsr, I2C_IBSR_IBAL | I2C_IBSR_IBIF); in i2c_start()
355 io_clrbits8((vaddr_t)®s->ibcr, I2C_IBCR_MDIS); in i2c_start()
361 io_setbits8((vaddr_t)®s->ibcr, I2C_IBCR_MSSL); in i2c_start()
362 res = i2c_bus_test_bus_busy(regs, I2C_BUS_TEST_BUSY); in i2c_start()
367 io_setbits8((vaddr_t)®s->ibcr, I2C_IBCR_TXRX | I2C_IBCR_NOACK); in i2c_start()
377 struct i2c_regs *regs = (struct i2c_regs *)base; in i2c_bus_xfer() local
382 res = i2c_bus_test_bus_busy(regs, I2C_BUS_TEST_IDLE); in i2c_bus_xfer()
386 res = i2c_start(regs); in i2c_bus_xfer()
397 io_setbits8((vaddr_t)®s->ibcr, I2C_IBCR_RSTA); in i2c_bus_xfer()
398 res = i2c_bus_test_bus_busy(regs, I2C_BUS_TEST_BUSY); in i2c_bus_xfer()
405 res = i2c_read(regs, slave_address, operation, in i2c_bus_xfer()
408 res = i2c_write(regs, slave_address, operation); in i2c_bus_xfer()
414 i2c_stop(regs); in i2c_bus_xfer()