These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / include / linux / ulpi / regs.h
diff --git a/kernel/include/linux/ulpi/regs.h b/kernel/include/linux/ulpi/regs.h
new file mode 100644 (file)
index 0000000..b5b8b88
--- /dev/null
@@ -0,0 +1,130 @@
+#ifndef __LINUX_ULPI_REGS_H
+#define __LINUX_ULPI_REGS_H
+
+/*
+ * Macros for Set and Clear
+ * See ULPI 1.1 specification to find the registers with Set and Clear offsets
+ */
+#define ULPI_SET(a)                            (a + 1)
+#define ULPI_CLR(a)                            (a + 2)
+
+/*
+ * Register Map
+ */
+#define ULPI_VENDOR_ID_LOW                     0x00
+#define ULPI_VENDOR_ID_HIGH                    0x01
+#define ULPI_PRODUCT_ID_LOW                    0x02
+#define ULPI_PRODUCT_ID_HIGH                   0x03
+#define ULPI_FUNC_CTRL                         0x04
+#define ULPI_IFC_CTRL                          0x07
+#define ULPI_OTG_CTRL                          0x0a
+#define ULPI_USB_INT_EN_RISE                   0x0d
+#define ULPI_USB_INT_EN_FALL                   0x10
+#define ULPI_USB_INT_STS                       0x13
+#define ULPI_USB_INT_LATCH                     0x14
+#define ULPI_DEBUG                             0x15
+#define ULPI_SCRATCH                           0x16
+/* Optional Carkit Registers */
+#define ULPI_CARKIT_CTRL                       0x19
+#define ULPI_CARKIT_INT_DELAY                  0x1c
+#define ULPI_CARKIT_INT_EN                     0x1d
+#define ULPI_CARKIT_INT_STS                    0x20
+#define ULPI_CARKIT_INT_LATCH                  0x21
+#define ULPI_CARKIT_PLS_CTRL                   0x22
+/* Other Optional Registers */
+#define ULPI_TX_POS_WIDTH                      0x25
+#define ULPI_TX_NEG_WIDTH                      0x26
+#define ULPI_POLARITY_RECOVERY                 0x27
+/* Access Extended Register Set */
+#define ULPI_ACCESS_EXTENDED                   0x2f
+/* Vendor Specific */
+#define ULPI_VENDOR_SPECIFIC                   0x30
+/* Extended Registers */
+#define ULPI_EXT_VENDOR_SPECIFIC               0x80
+
+/*
+ * Register Bits
+ */
+
+/* Function Control */
+#define ULPI_FUNC_CTRL_XCVRSEL                 BIT(0)
+#define  ULPI_FUNC_CTRL_XCVRSEL_MASK           0x3
+#define  ULPI_FUNC_CTRL_HIGH_SPEED             0x0
+#define  ULPI_FUNC_CTRL_FULL_SPEED             0x1
+#define  ULPI_FUNC_CTRL_LOW_SPEED              0x2
+#define  ULPI_FUNC_CTRL_FS4LS                  0x3
+#define ULPI_FUNC_CTRL_TERMSELECT              BIT(2)
+#define ULPI_FUNC_CTRL_OPMODE                  BIT(3)
+#define  ULPI_FUNC_CTRL_OPMODE_MASK            (0x3 << 3)
+#define  ULPI_FUNC_CTRL_OPMODE_NORMAL          (0x0 << 3)
+#define  ULPI_FUNC_CTRL_OPMODE_NONDRIVING      (0x1 << 3)
+#define  ULPI_FUNC_CTRL_OPMODE_DISABLE_NRZI    (0x2 << 3)
+#define  ULPI_FUNC_CTRL_OPMODE_NOSYNC_NOEOP    (0x3 << 3)
+#define ULPI_FUNC_CTRL_RESET                   BIT(5)
+#define ULPI_FUNC_CTRL_SUSPENDM                        BIT(6)
+
+/* Interface Control */
+#define ULPI_IFC_CTRL_6_PIN_SERIAL_MODE                BIT(0)
+#define ULPI_IFC_CTRL_3_PIN_SERIAL_MODE                BIT(1)
+#define ULPI_IFC_CTRL_CARKITMODE               BIT(2)
+#define ULPI_IFC_CTRL_CLOCKSUSPENDM            BIT(3)
+#define ULPI_IFC_CTRL_AUTORESUME               BIT(4)
+#define ULPI_IFC_CTRL_EXTERNAL_VBUS            BIT(5)
+#define ULPI_IFC_CTRL_PASSTHRU                 BIT(6)
+#define ULPI_IFC_CTRL_PROTECT_IFC_DISABLE      BIT(7)
+
+/* OTG Control */
+#define ULPI_OTG_CTRL_ID_PULLUP                        BIT(0)
+#define ULPI_OTG_CTRL_DP_PULLDOWN              BIT(1)
+#define ULPI_OTG_CTRL_DM_PULLDOWN              BIT(2)
+#define ULPI_OTG_CTRL_DISCHRGVBUS              BIT(3)
+#define ULPI_OTG_CTRL_CHRGVBUS                 BIT(4)
+#define ULPI_OTG_CTRL_DRVVBUS                  BIT(5)
+#define ULPI_OTG_CTRL_DRVVBUS_EXT              BIT(6)
+#define ULPI_OTG_CTRL_EXTVBUSIND               BIT(7)
+
+/* USB Interrupt Enable Rising,
+ * USB Interrupt Enable Falling,
+ * USB Interrupt Status and
+ * USB Interrupt Latch
+ */
+#define ULPI_INT_HOST_DISCONNECT               BIT(0)
+#define ULPI_INT_VBUS_VALID                    BIT(1)
+#define ULPI_INT_SESS_VALID                    BIT(2)
+#define ULPI_INT_SESS_END                      BIT(3)
+#define ULPI_INT_IDGRD                         BIT(4)
+
+/* Debug */
+#define ULPI_DEBUG_LINESTATE0                  BIT(0)
+#define ULPI_DEBUG_LINESTATE1                  BIT(1)
+
+/* Carkit Control */
+#define ULPI_CARKIT_CTRL_CARKITPWR             BIT(0)
+#define ULPI_CARKIT_CTRL_IDGNDDRV              BIT(1)
+#define ULPI_CARKIT_CTRL_TXDEN                 BIT(2)
+#define ULPI_CARKIT_CTRL_RXDEN                 BIT(3)
+#define ULPI_CARKIT_CTRL_SPKLEFTEN             BIT(4)
+#define ULPI_CARKIT_CTRL_SPKRIGHTEN            BIT(5)
+#define ULPI_CARKIT_CTRL_MICEN                 BIT(6)
+
+/* Carkit Interrupt Enable */
+#define ULPI_CARKIT_INT_EN_IDFLOAT_RISE                BIT(0)
+#define ULPI_CARKIT_INT_EN_IDFLOAT_FALL                BIT(1)
+#define ULPI_CARKIT_INT_EN_CARINTDET           BIT(2)
+#define ULPI_CARKIT_INT_EN_DP_RISE             BIT(3)
+#define ULPI_CARKIT_INT_EN_DP_FALL             BIT(4)
+
+/* Carkit Interrupt Status and
+ * Carkit Interrupt Latch
+ */
+#define ULPI_CARKIT_INT_IDFLOAT                        BIT(0)
+#define ULPI_CARKIT_INT_CARINTDET              BIT(1)
+#define ULPI_CARKIT_INT_DP                     BIT(2)
+
+/* Carkit Pulse Control*/
+#define ULPI_CARKIT_PLS_CTRL_TXPLSEN           BIT(0)
+#define ULPI_CARKIT_PLS_CTRL_RXPLSEN           BIT(1)
+#define ULPI_CARKIT_PLS_CTRL_SPKRLEFT_BIASEN   BIT(2)
+#define ULPI_CARKIT_PLS_CTRL_SPKRRIGHT_BIASEN  BIT(3)
+
+#endif /* __LINUX_ULPI_REGS_H */