aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/platform_data/usb3503.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/platform_data/usb3503.h')
-rw-r--r--include/linux/platform_data/usb3503.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/include/linux/platform_data/usb3503.h b/include/linux/platform_data/usb3503.h
new file mode 100644
index 0000000..9bcf4ec
--- /dev/null
+++ b/include/linux/platform_data/usb3503.h
@@ -0,0 +1,42 @@
+#ifndef USB3503_H
+#define USB3503_H
+
+#define USB3503_I2C_NAME "usb3503"
+#define HUB_TAG "usb3503: "
+
+#define CFG1_REG 0x06
+#define CFG1_SELF_BUS_PWR (0x1 << 7)
+
+#define SP_ILOCK_REG 0xE7
+#define SPILOCK_CONNECT_N (0x1 << 1)
+#define SPILOCK_CONFIG_N (0x1 << 0)
+
+#define CFGP_REG 0xEE
+#define CFGP_CLKSUSP (0x1 << 7)
+
+#define PDS_REG 0x0A
+#define PDS_PORT1 (0x1 << 1)
+#define PDS_PORT2 (0x1 << 2)
+#define PDS_PORT3 (0x1 << 3)
+
+
+enum usb3503_mode {
+ USB3503_MODE_UNKNOWN,
+ USB3503_MODE_HUB,
+ USB3503_MODE_STANDBY,
+};
+
+struct usb3503_platform_data {
+ char initial_mode;
+ int (*reset_n)(int);
+ int (*register_hub_handler)(void (*)(void), void *);
+ int (*port_enable)(int, int);
+};
+
+struct usb3503_hubctl {
+ int mode;
+ int (*reset_n)(int);
+ int (*port_enable)(int, int);
+ struct i2c_client *i2c_dev;
+};
+#endif