Lines Matching refs:chip

63 	struct eud_chip *chip = dev_get_drvdata(dev);
65 return sysfs_emit(buf, "%d\n", chip->enabled);
72 struct eud_chip *chip = dev_get_drvdata(dev);
80 ret = enable_eud(chip);
82 chip->enabled = enable;
84 disable_eud(chip);
86 disable_eud(chip);
100 static void usb_attach_detach(struct eud_chip *chip)
105 reg = readl(chip->base + EUD_REG_CTL_OUT_1);
106 chip->usb_attached = reg & EUD_INT_SAFE_MODE;
109 static void pet_eud(struct eud_chip *chip)
118 reg = readl(chip->base + EUD_REG_SW_ATTACH_DET);
121 writel(0, chip->base + EUD_REG_SW_ATTACH_DET);
123 ret = readl_poll_timeout(chip->base + EUD_REG_SW_ATTACH_DET,
126 dev_err(chip->dev, "Detach pet failed\n");
131 writel(EUD_INT_PET_EUD, chip->base + EUD_REG_SW_ATTACH_DET);
136 struct eud_chip *chip = data;
139 reg = readl(chip->base + EUD_REG_INT_STATUS_1);
142 usb_attach_detach(chip);
145 pet_eud(chip);
154 struct eud_chip *chip = data;
157 if (chip->usb_attached)
158 ret = usb_role_switch_set_role(chip->role_sw, USB_ROLE_DEVICE);
160 ret = usb_role_switch_set_role(chip->role_sw, USB_ROLE_HOST);
162 dev_err(chip->dev, "failed to set role switch\n");
165 writel(BIT(0), chip->base + EUD_REG_VBUS_INT_CLR);
166 writel(0, chip->base + EUD_REG_VBUS_INT_CLR);
173 struct eud_chip *chip = data;
175 usb_role_switch_put(chip->role_sw);
180 struct eud_chip *chip;
183 chip = devm_kzalloc(&pdev->dev, sizeof(*chip), GFP_KERNEL);
184 if (!chip)
187 chip->dev = &pdev->dev;
189 chip->role_sw = usb_role_switch_get(&pdev->dev);
190 if (IS_ERR(chip->role_sw))
191 return dev_err_probe(chip->dev, PTR_ERR(chip->role_sw),
194 ret = devm_add_action_or_reset(chip->dev, eud_role_switch_release, chip);
196 return dev_err_probe(chip->dev, ret,
199 chip->base = devm_platform_ioremap_resource(pdev, 0);
200 if (IS_ERR(chip->base))
201 return PTR_ERR(chip->base);
203 chip->mode_mgr = devm_platform_ioremap_resource(pdev, 1);
204 if (IS_ERR(chip->mode_mgr))
205 return PTR_ERR(chip->mode_mgr);
207 chip->irq = platform_get_irq(pdev, 0);
208 ret = devm_request_threaded_irq(&pdev->dev, chip->irq, handle_eud_irq,
209 handle_eud_irq_thread, IRQF_ONESHOT, NULL, chip);
211 return dev_err_probe(chip->dev, ret, "failed to allocate irq\n");
213 enable_irq_wake(chip->irq);
215 platform_set_drvdata(pdev, chip);
222 struct eud_chip *chip = platform_get_drvdata(pdev);
224 if (chip->enabled)
225 disable_eud(chip);
228 disable_irq_wake(chip->irq);