Lines Matching refs:hub
3 * Driver for SMSC USB4604 USB HSIC 4-port 2.0 hub controller driver
28 static void usb4604_reset(struct usb4604 *hub, int state)
30 gpiod_set_value_cansleep(hub->gpio_reset, state);
37 static int usb4604_connect(struct usb4604 *hub)
39 struct device *dev = hub->dev;
44 usb4604_reset(hub, 1);
48 usb4604_reset(hub, 0);
52 hub->mode = USB4604_MODE_HUB;
58 static int usb4604_switch_mode(struct usb4604 *hub, enum usb4604_mode mode)
60 struct device *dev = hub->dev;
65 err = usb4604_connect(hub);
69 usb4604_reset(hub, 0);
82 static int usb4604_probe(struct usb4604 *hub)
84 struct device *dev = hub->dev;
92 hub->gpio_reset = gpio;
94 if (of_property_read_u32(np, "initial-mode", &hub->mode))
95 hub->mode = mode;
97 return usb4604_switch_mode(hub, hub->mode);
102 struct usb4604 *hub;
104 hub = devm_kzalloc(&i2c->dev, sizeof(*hub), GFP_KERNEL);
105 if (!hub)
108 i2c_set_clientdata(i2c, hub);
109 hub->dev = &i2c->dev;
111 return usb4604_probe(hub);
117 struct usb4604 *hub = i2c_get_clientdata(client);
119 usb4604_switch_mode(hub, USB4604_MODE_STANDBY);
127 struct usb4604 *hub = i2c_get_clientdata(client);
129 usb4604_switch_mode(hub, hub->mode);