Lines Matching defs:bus_id

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