Lines Matching refs:bus_id

62 	uint32_t bus_id;  member
85 static uint32_t iproc_i2c_reg_read(uint32_t bus_id, unsigned long reg_addr) in iproc_i2c_reg_read() argument
90 smbus = smbus_base_reg_addr[bus_id]; in iproc_i2c_reg_read()
93 VERBOSE("i2c %u: reg %p read 0x%x\n", bus_id, in iproc_i2c_reg_read()
99 static void iproc_i2c_reg_write(uint32_t bus_id, in iproc_i2c_reg_write() argument
105 smbus = smbus_base_reg_addr[bus_id]; in iproc_i2c_reg_write()
108 VERBOSE("i2c %u: reg %p wrote 0x%x\n", bus_id, in iproc_i2c_reg_write()
113 static void iproc_i2c_reg_clearset(uint32_t bus_id, in iproc_i2c_reg_clearset() argument
120 smbus = smbus_base_reg_addr[bus_id]; in iproc_i2c_reg_clearset()
123 VERBOSE("i2c %u: reg %p clear 0x%x, set 0x%x\n", bus_id, in iproc_i2c_reg_clearset()
129 static int iproc_dump_i2c_regs(uint32_t bus_id) in iproc_dump_i2c_regs() argument
133 if (bus_id > MAX_I2C) { in iproc_dump_i2c_regs()
138 INFO("%s: Dumping SMBus %u registers...\n", __func__, bus_id); in iproc_dump_i2c_regs()
140 regval = iproc_i2c_reg_read(bus_id, SMB_CFG_REG); in iproc_dump_i2c_regs()
143 regval = iproc_i2c_reg_read(bus_id, SMB_TIMGCFG_REG); in iproc_dump_i2c_regs()
146 regval = iproc_i2c_reg_read(bus_id, SMB_ADDR_REG); in iproc_dump_i2c_regs()
149 regval = iproc_i2c_reg_read(bus_id, SMB_MSTRFIFOCTL_REG); in iproc_dump_i2c_regs()
152 regval = iproc_i2c_reg_read(bus_id, SMB_SLVFIFOCTL_REG); in iproc_dump_i2c_regs()
155 regval = iproc_i2c_reg_read(bus_id, SMB_BITBANGCTL_REG); in iproc_dump_i2c_regs()
158 regval = iproc_i2c_reg_read(bus_id, SMB_MSTRCMD_REG); in iproc_dump_i2c_regs()
161 regval = iproc_i2c_reg_read(bus_id, SMB_SLVCMD_REG); in iproc_dump_i2c_regs()
164 regval = iproc_i2c_reg_read(bus_id, SMB_EVTEN_REG); in iproc_dump_i2c_regs()
167 regval = iproc_i2c_reg_read(bus_id, SMB_EVTSTS_REG); in iproc_dump_i2c_regs()
170 regval = iproc_i2c_reg_read(bus_id, SMB_MSTRDATAWR_REG); in iproc_dump_i2c_regs()
173 regval = iproc_i2c_reg_read(bus_id, SMB_MSTRDATARD_REG); in iproc_dump_i2c_regs()
176 regval = iproc_i2c_reg_read(bus_id, SMB_SLVDATAWR_REG); in iproc_dump_i2c_regs()
179 regval = iproc_i2c_reg_read(bus_id, SMB_SLVDATARD_REG); in iproc_dump_i2c_regs()
192 static int iproc_i2c_startbusy_wait(uint32_t bus_id) in iproc_i2c_startbusy_wait() argument
203 regval = iproc_i2c_reg_read(bus_id, SMB_MSTRCMD_REG); in iproc_i2c_startbusy_wait()
244 iproc_i2c_reg_write(info->bus_id, SMB_MSTRDATAWR_REG, in iproc_i2c_write_trans_data()
249 iproc_i2c_reg_write(info->bus_id, SMB_MSTRDATAWR_REG, in iproc_i2c_write_trans_data()
256 iproc_i2c_reg_write(info->bus_id, SMB_MSTRDATAWR_REG, in iproc_i2c_write_trans_data()
260 iproc_i2c_reg_write(info->bus_id, SMB_MSTRDATAWR_REG, in iproc_i2c_write_trans_data()
265 iproc_i2c_reg_write(info->bus_id, SMB_MSTRDATAWR_REG, in iproc_i2c_write_trans_data()
274 iproc_i2c_reg_write(info->bus_id, SMB_MSTRDATAWR_REG, in iproc_i2c_write_trans_data()
277 iproc_i2c_reg_write(info->bus_id, SMB_MSTRDATAWR_REG, in iproc_i2c_write_trans_data()
287 iproc_i2c_reg_write(info->bus_id, SMB_MSTRDATAWR_REG, in iproc_i2c_write_trans_data()
299 iproc_i2c_reg_write(info->bus_id, SMB_MSTRDATAWR_REG, in iproc_i2c_write_trans_data()
314 iproc_i2c_reg_write(info->bus_id, SMB_MSTRCMD_REG, mastercmd); in iproc_i2c_write_master_command()
317 regval = iproc_i2c_reg_read(info->bus_id, SMB_MSTRCMD_REG); in iproc_i2c_write_master_command()
325 regval = iproc_i2c_reg_read(info->bus_id, SMB_MSTRCMD_REG); in iproc_i2c_write_master_command()
349 rc = iproc_i2c_startbusy_wait(info->bus_id); in iproc_i2c_data_send()
384 rc = iproc_i2c_startbusy_wait(info->bus_id); in iproc_i2c_data_recv()
406 regval = iproc_i2c_reg_read(info->bus_id, SMB_MSTRDATARD_REG); in iproc_i2c_data_recv()
422 regval = iproc_i2c_reg_read(info->bus_id, in iproc_i2c_data_recv()
439 static int iproc_i2c_set_clk_freq(uint32_t bus_id, smb_clk_freq_t freq) in iproc_i2c_set_clk_freq() argument
454 iproc_i2c_reg_clearset(bus_id, SMB_TIMGCFG_REG, in iproc_i2c_set_clk_freq()
462 static void iproc_i2c_fill_info(struct iproc_xact_info *info, uint32_t bus_id, in iproc_i2c_fill_info() argument
466 info->bus_id = bus_id; in iproc_i2c_fill_info()
477 static void iproc_i2c_init(uint32_t bus_id, int speed) in iproc_i2c_init() argument
486 regval = iproc_i2c_reg_read(bus_id, SMB_CFG_REG); in iproc_i2c_init()
489 iproc_i2c_reg_write(bus_id, SMB_CFG_REG, regval); in iproc_i2c_init()
496 iproc_i2c_reg_write(bus_id, SMB_CFG_REG, regval); in iproc_i2c_init()
503 iproc_i2c_reg_write(bus_id, SMB_MSTRFIFOCTL_REG, regval); in iproc_i2c_init()
510 regval = iproc_i2c_reg_read(bus_id, SMB_CFG_REG); in iproc_i2c_init()
512 iproc_i2c_reg_write(bus_id, SMB_CFG_REG, regval); in iproc_i2c_init()
517 if (i2c_set_bus_speed(bus_id, speed)) { in iproc_i2c_init()
518 i2c_set_bus_speed(bus_id, I2C_SPEED_DEFAULT); in iproc_i2c_init()
523 iproc_i2c_reg_write(bus_id, SMB_EVTEN_REG, regval); in iproc_i2c_init()
526 regval = iproc_i2c_reg_read(bus_id, SMB_EVTSTS_REG); in iproc_i2c_init()
527 iproc_i2c_reg_write(bus_id, SMB_EVTSTS_REG, regval); in iproc_i2c_init()
530 iproc_dump_i2c_regs(bus_id); in iproc_i2c_init()
549 int i2c_init(uint32_t bus_id, int speed) in i2c_init() argument
551 if (bus_id > MAX_I2C) { in i2c_init()
552 WARN("%s: Invalid Bus %u\n", __func__, bus_id); in i2c_init()
556 iproc_i2c_init(bus_id, speed); in i2c_init()
574 int i2c_probe(uint32_t bus_id, uint8_t devaddr) in i2c_probe() argument
585 iproc_i2c_reg_write(bus_id, SMB_MSTRDATAWR_REG, regval); in i2c_probe()
589 iproc_i2c_reg_write(bus_id, SMB_MSTRCMD_REG, regval); in i2c_probe()
591 rc = iproc_i2c_startbusy_wait(bus_id); in i2c_probe()
598 regval = iproc_i2c_reg_read(bus_id, SMB_MSTRCMD_REG); in i2c_probe()
605 iproc_dump_i2c_regs(bus_id); in i2c_probe()
625 int i2c_recv_byte(uint32_t bus_id, uint8_t devaddr, uint8_t *value) in i2c_recv_byte() argument
631 iproc_i2c_fill_info(&info, bus_id, devaddr, 0U, value, in i2c_recv_byte()
660 int i2c_send_byte(uint32_t bus_id, uint8_t devaddr, uint8_t value) in i2c_send_byte() argument
665 iproc_i2c_fill_info(&info, bus_id, devaddr, 0U, &value, in i2c_send_byte()
680 static int i2c_read_byte(uint32_t bus_id, in i2c_read_byte() argument
689 iproc_i2c_fill_info(&info, bus_id, devaddr, regoffset, value, in i2c_read_byte()
720 int i2c_read(uint32_t bus_id, in i2c_read() argument
740 if (i2c_read_byte(bus_id, devaddr, addr + i, &buffer[i])) { in i2c_read()
742 iproc_i2c_init(bus_id, i2c_get_bus_speed(bus_id)); in i2c_read()
751 static int i2c_write_byte(uint32_t bus_id, in i2c_write_byte() argument
759 iproc_i2c_fill_info(&info, bus_id, devaddr, regoffset, &value, in i2c_write_byte()
792 int i2c_write(uint32_t bus_id, in i2c_write() argument
812 if (i2c_write_byte(bus_id, devaddr, addr + i, buffer[i])) { in i2c_write()
814 iproc_i2c_init(bus_id, i2c_get_bus_speed(bus_id)); in i2c_write()
834 int i2c_set_bus_speed(uint32_t bus_id, uint32_t speed) in i2c_set_bus_speed() argument
838 iproc_i2c_set_clk_freq(bus_id, IPROC_SMB_SPEED_100KHz); in i2c_set_bus_speed()
842 iproc_i2c_set_clk_freq(bus_id, IPROC_SMB_SPEED_400KHz); in i2c_set_bus_speed()
863 uint32_t i2c_get_bus_speed(uint32_t bus_id) in i2c_get_bus_speed() argument
868 regval = iproc_i2c_reg_read(bus_id, SMB_TIMGCFG_REG); in i2c_get_bus_speed()