Lines Matching refs:usbsw
165 static int fsa9480_write_reg(struct fsa9480_usbsw *usbsw, int reg, int value) in fsa9480_write_reg() argument
169 ret = regmap_write(usbsw->regmap, reg, value); in fsa9480_write_reg()
171 dev_err(usbsw->dev, "%s: err %d\n", __func__, ret); in fsa9480_write_reg()
176 static int fsa9480_read_reg(struct fsa9480_usbsw *usbsw, int reg) in fsa9480_read_reg() argument
180 ret = regmap_read(usbsw->regmap, reg, &val); in fsa9480_read_reg()
182 dev_err(usbsw->dev, "%s: err %d\n", __func__, ret); in fsa9480_read_reg()
189 static int fsa9480_read_irq(struct fsa9480_usbsw *usbsw, int *value) in fsa9480_read_irq() argument
194 ret = regmap_bulk_read(usbsw->regmap, FSA9480_REG_INT1, regs, 2); in fsa9480_read_irq()
196 dev_err(usbsw->dev, "%s: err %d\n", __func__, ret); in fsa9480_read_irq()
202 static void fsa9480_handle_change(struct fsa9480_usbsw *usbsw, in fsa9480_handle_change() argument
212 extcon_set_state_sync(usbsw->edev, cable, attached); in fsa9480_handle_change()
220 static void fsa9480_detect_dev(struct fsa9480_usbsw *usbsw) in fsa9480_detect_dev() argument
225 val1 = fsa9480_read_reg(usbsw, FSA9480_REG_DEV_T1); in fsa9480_detect_dev()
226 val2 = fsa9480_read_reg(usbsw, FSA9480_REG_DEV_T2); in fsa9480_detect_dev()
228 dev_err(usbsw->dev, "%s: failed to read registers", __func__); in fsa9480_detect_dev()
233 dev_info(usbsw->dev, "dev1: 0x%x, dev2: 0x%x\n", val1, val2); in fsa9480_detect_dev()
236 fsa9480_handle_change(usbsw, usbsw->cable & ~val, false); in fsa9480_detect_dev()
239 fsa9480_handle_change(usbsw, val & ~usbsw->cable, true); in fsa9480_detect_dev()
241 usbsw->cable = val; in fsa9480_detect_dev()
246 struct fsa9480_usbsw *usbsw = data; in fsa9480_irq_handler() local
250 fsa9480_read_irq(usbsw, &intr); in fsa9480_irq_handler()
255 fsa9480_detect_dev(usbsw); in fsa9480_irq_handler()