Lines Matching refs:data

59 static void int3496_set_vbus_boost(struct int3496_data *data, bool enable)
63 if (IS_ERR_OR_NULL(data->vbus_boost))
66 if (data->vbus_boost_enabled == enable)
70 ret = regulator_enable(data->vbus_boost);
72 ret = regulator_disable(data->vbus_boost);
75 data->vbus_boost_enabled = enable;
77 dev_err(data->dev, "Error updating Vbus boost regulator: %d\n", ret);
82 struct int3496_data *data =
84 int id = gpiod_get_value_cansleep(data->gpio_usb_id);
87 dev_dbg(data->dev, "Connected %s cable\n", id ? "PERIPHERAL" : "HOST");
93 if (!IS_ERR(data->gpio_usb_mux))
94 gpiod_direction_output(data->gpio_usb_mux, id);
96 if (!IS_ERR(data->gpio_vbus_en))
97 gpiod_direction_output(data->gpio_vbus_en, !id);
99 int3496_set_vbus_boost(data, !id);
101 extcon_set_state_sync(data->edev, EXTCON_USB_HOST, !id);
106 struct int3496_data *data = priv;
109 mod_delayed_work(system_wq, &data->work, DEBOUNCE_TIME);
117 struct int3496_data *data;
128 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
129 if (!data)
132 data->dev = dev;
133 ret = devm_delayed_work_autocancel(dev, &data->work, int3496_do_usb_id);
137 data->gpio_usb_id =
139 if (IS_ERR(data->gpio_usb_id)) {
140 ret = PTR_ERR(data->gpio_usb_id);
145 data->usb_id_irq = gpiod_to_irq(data->gpio_usb_id);
146 if (data->usb_id_irq < 0) {
147 dev_err(dev, "can't get USB ID IRQ: %d\n", data->usb_id_irq);
148 return data->usb_id_irq;
151 data->gpio_vbus_en = devm_gpiod_get(dev, "vbus", GPIOD_ASIS);
152 if (IS_ERR(data->gpio_vbus_en)) {
154 data->vbus_boost = devm_regulator_get_optional(dev, "vbus");
157 data->gpio_usb_mux = devm_gpiod_get(dev, "mux", GPIOD_ASIS);
158 if (IS_ERR(data->gpio_usb_mux))
162 data->edev = devm_extcon_dev_allocate(dev, int3496_cable);
163 if (IS_ERR(data->edev))
166 ret = devm_extcon_dev_register(dev, data->edev);
172 ret = devm_request_threaded_irq(dev, data->usb_id_irq,
177 dev_name(dev), data);
184 queue_delayed_work(system_wq, &data->work, 0);
185 flush_delayed_work(&data->work);
187 platform_set_drvdata(pdev, data);