Symbol: hisi_hikey_usb
drivers/misc/hisi_hikey_usb.c
102
mutex_lock(&hisi_hikey_usb->lock);
drivers/misc/hisi_hikey_usb.c
103
switch (hisi_hikey_usb->role) {
drivers/misc/hisi_hikey_usb.c
105
usb_typec_power_ctrl(hisi_hikey_usb, TYPEC_VBUS_POWER_OFF);
drivers/misc/hisi_hikey_usb.c
106
usb_switch_ctrl(hisi_hikey_usb, USB_SWITCH_TO_HUB);
drivers/misc/hisi_hikey_usb.c
107
hub_power_ctrl(hisi_hikey_usb, HUB_VBUS_POWER_ON);
drivers/misc/hisi_hikey_usb.c
110
hub_power_ctrl(hisi_hikey_usb, HUB_VBUS_POWER_OFF);
drivers/misc/hisi_hikey_usb.c
111
usb_switch_ctrl(hisi_hikey_usb, USB_SWITCH_TO_TYPEC);
drivers/misc/hisi_hikey_usb.c
112
usb_typec_power_ctrl(hisi_hikey_usb, TYPEC_VBUS_POWER_ON);
drivers/misc/hisi_hikey_usb.c
115
hub_power_ctrl(hisi_hikey_usb, HUB_VBUS_POWER_OFF);
drivers/misc/hisi_hikey_usb.c
116
usb_typec_power_ctrl(hisi_hikey_usb, TYPEC_VBUS_POWER_OFF);
drivers/misc/hisi_hikey_usb.c
117
usb_switch_ctrl(hisi_hikey_usb, USB_SWITCH_TO_TYPEC);
drivers/misc/hisi_hikey_usb.c
122
sw = hisi_hikey_usb->dev_role_sw;
drivers/misc/hisi_hikey_usb.c
123
role = hisi_hikey_usb->role;
drivers/misc/hisi_hikey_usb.c
124
mutex_unlock(&hisi_hikey_usb->lock);
drivers/misc/hisi_hikey_usb.c
131
struct hisi_hikey_usb *hisi_hikey_usb = usb_role_switch_get_drvdata(sw);
drivers/misc/hisi_hikey_usb.c
133
if (!hisi_hikey_usb || !hisi_hikey_usb->dev_role_sw)
drivers/misc/hisi_hikey_usb.c
136
mutex_lock(&hisi_hikey_usb->lock);
drivers/misc/hisi_hikey_usb.c
137
hisi_hikey_usb->role = role;
drivers/misc/hisi_hikey_usb.c
138
mutex_unlock(&hisi_hikey_usb->lock);
drivers/misc/hisi_hikey_usb.c
140
schedule_work(&hisi_hikey_usb->work);
drivers/misc/hisi_hikey_usb.c
146
struct hisi_hikey_usb *hisi_hikey_usb)
drivers/misc/hisi_hikey_usb.c
154
hisi_hikey_usb->otg_switch = devm_gpiod_get(dev, "otg-switch",
drivers/misc/hisi_hikey_usb.c
156
if (IS_ERR(hisi_hikey_usb->otg_switch)) {
drivers/misc/hisi_hikey_usb.c
158
PTR_ERR(hisi_hikey_usb->otg_switch));
drivers/misc/hisi_hikey_usb.c
159
return PTR_ERR(hisi_hikey_usb->otg_switch);
drivers/misc/hisi_hikey_usb.c
162
hisi_hikey_usb->typec_vbus = devm_gpiod_get(dev, "typec-vbus",
drivers/misc/hisi_hikey_usb.c
164
if (IS_ERR(hisi_hikey_usb->typec_vbus)) {
drivers/misc/hisi_hikey_usb.c
166
PTR_ERR(hisi_hikey_usb->typec_vbus));
drivers/misc/hisi_hikey_usb.c
167
return PTR_ERR(hisi_hikey_usb->typec_vbus);
drivers/misc/hisi_hikey_usb.c
170
hisi_hikey_usb->reset = devm_gpiod_get_optional(dev,
drivers/misc/hisi_hikey_usb.c
173
if (IS_ERR(hisi_hikey_usb->reset)) {
drivers/misc/hisi_hikey_usb.c
175
PTR_ERR(hisi_hikey_usb->reset));
drivers/misc/hisi_hikey_usb.c
176
return PTR_ERR(hisi_hikey_usb->reset);
drivers/misc/hisi_hikey_usb.c
179
hisi_hikey_usb->dev_role_sw = usb_role_switch_get(dev);
drivers/misc/hisi_hikey_usb.c
180
if (!hisi_hikey_usb->dev_role_sw)
drivers/misc/hisi_hikey_usb.c
182
if (IS_ERR(hisi_hikey_usb->dev_role_sw)) {
drivers/misc/hisi_hikey_usb.c
184
PTR_ERR(hisi_hikey_usb->dev_role_sw));
drivers/misc/hisi_hikey_usb.c
185
return PTR_ERR(hisi_hikey_usb->dev_role_sw);
drivers/misc/hisi_hikey_usb.c
188
INIT_WORK(&hisi_hikey_usb->work, relay_set_role_switch);
drivers/misc/hisi_hikey_usb.c
192
hub_role_switch.driver_data = hisi_hikey_usb;
drivers/misc/hisi_hikey_usb.c
194
hisi_hikey_usb->hub_role_sw = usb_role_switch_register(dev,
drivers/misc/hisi_hikey_usb.c
197
if (IS_ERR(hisi_hikey_usb->hub_role_sw)) {
drivers/misc/hisi_hikey_usb.c
200
PTR_ERR(hisi_hikey_usb->hub_role_sw));
drivers/misc/hisi_hikey_usb.c
201
usb_role_switch_put(hisi_hikey_usb->dev_role_sw);
drivers/misc/hisi_hikey_usb.c
202
return PTR_ERR(hisi_hikey_usb->hub_role_sw);
drivers/misc/hisi_hikey_usb.c
211
struct hisi_hikey_usb *hisi_hikey_usb;
drivers/misc/hisi_hikey_usb.c
214
hisi_hikey_usb = devm_kzalloc(dev, sizeof(*hisi_hikey_usb), GFP_KERNEL);
drivers/misc/hisi_hikey_usb.c
215
if (!hisi_hikey_usb)
drivers/misc/hisi_hikey_usb.c
218
hisi_hikey_usb->dev = &pdev->dev;
drivers/misc/hisi_hikey_usb.c
219
mutex_init(&hisi_hikey_usb->lock);
drivers/misc/hisi_hikey_usb.c
221
hisi_hikey_usb->regulator = devm_regulator_get(dev, "hub-vdd");
drivers/misc/hisi_hikey_usb.c
222
if (IS_ERR(hisi_hikey_usb->regulator)) {
drivers/misc/hisi_hikey_usb.c
223
if (PTR_ERR(hisi_hikey_usb->regulator) == -EPROBE_DEFER) {
drivers/misc/hisi_hikey_usb.c
225
return PTR_ERR(hisi_hikey_usb->regulator);
drivers/misc/hisi_hikey_usb.c
228
PTR_ERR(hisi_hikey_usb->regulator));
drivers/misc/hisi_hikey_usb.c
229
return PTR_ERR(hisi_hikey_usb->regulator);
drivers/misc/hisi_hikey_usb.c
232
ret = hisi_hikey_usb_of_role_switch(pdev, hisi_hikey_usb);
drivers/misc/hisi_hikey_usb.c
236
platform_set_drvdata(pdev, hisi_hikey_usb);
drivers/misc/hisi_hikey_usb.c
243
struct hisi_hikey_usb *hisi_hikey_usb = platform_get_drvdata(pdev);
drivers/misc/hisi_hikey_usb.c
245
if (hisi_hikey_usb->hub_role_sw) {
drivers/misc/hisi_hikey_usb.c
246
usb_role_switch_unregister(hisi_hikey_usb->hub_role_sw);
drivers/misc/hisi_hikey_usb.c
248
if (hisi_hikey_usb->dev_role_sw)
drivers/misc/hisi_hikey_usb.c
249
usb_role_switch_put(hisi_hikey_usb->dev_role_sw);
drivers/misc/hisi_hikey_usb.c
251
hub_power_ctrl(hisi_hikey_usb, HUB_VBUS_POWER_OFF);
drivers/misc/hisi_hikey_usb.c
51
static void hub_power_ctrl(struct hisi_hikey_usb *hisi_hikey_usb, int value)
drivers/misc/hisi_hikey_usb.c
55
if (!hisi_hikey_usb->regulator)
drivers/misc/hisi_hikey_usb.c
58
status = regulator_is_enabled(hisi_hikey_usb->regulator);
drivers/misc/hisi_hikey_usb.c
63
ret = regulator_enable(hisi_hikey_usb->regulator);
drivers/misc/hisi_hikey_usb.c
65
ret = regulator_disable(hisi_hikey_usb->regulator);
drivers/misc/hisi_hikey_usb.c
68
dev_err(hisi_hikey_usb->dev,
drivers/misc/hisi_hikey_usb.c
73
static void usb_switch_ctrl(struct hisi_hikey_usb *hisi_hikey_usb,
drivers/misc/hisi_hikey_usb.c
76
if (!hisi_hikey_usb->otg_switch)
drivers/misc/hisi_hikey_usb.c
79
gpiod_set_value_cansleep(hisi_hikey_usb->otg_switch, switch_to);
drivers/misc/hisi_hikey_usb.c
82
static void usb_typec_power_ctrl(struct hisi_hikey_usb *hisi_hikey_usb,
drivers/misc/hisi_hikey_usb.c
85
if (!hisi_hikey_usb->typec_vbus)
drivers/misc/hisi_hikey_usb.c
88
gpiod_set_value_cansleep(hisi_hikey_usb->typec_vbus, value);
drivers/misc/hisi_hikey_usb.c
93
struct hisi_hikey_usb *hisi_hikey_usb = container_of(work,
drivers/misc/hisi_hikey_usb.c
94
struct hisi_hikey_usb,
drivers/misc/hisi_hikey_usb.c
99
if (!hisi_hikey_usb || !hisi_hikey_usb->dev_role_sw)