MLK-14326-6 mx6sxsabresd: Update and add mx6sxsabresd DTS files
authorYe Li <ye.li@nxp.com>
Mon, 6 Mar 2017 12:29:04 +0000 (20:29 +0800)
committerYe Li <ye.li@nxp.com>
Wed, 5 Apr 2017 06:06:23 +0000 (14:06 +0800)
Update i.MX6SX dtsi file and relevant DTS header files.
Add the imx6sx-sdb DTS files preparing for using DTB.

To support DM QSPI driver
1. Modify the n25q256a flash node's compatible to "spi-flash".
2. Add spi0 and spi1 alias for qspi1 and qspi2.

Signed-off-by: Ye Li <ye.li@nxp.com>
arch/arm/dts/Makefile
arch/arm/dts/imx6sx-pinfunc.h
arch/arm/dts/imx6sx-sdb-emmc.dts [new file with mode: 0644]
arch/arm/dts/imx6sx-sdb.dts [new file with mode: 0644]
arch/arm/dts/imx6sx-sdb.dtsi [new file with mode: 0644]
arch/arm/dts/imx6sx.dtsi
include/dt-bindings/clock/imx6sx-clock.h

index eb75873..ddf1134 100644 (file)
@@ -329,6 +329,8 @@ dtb-$(CONFIG_MX6) += imx6ull-14x14-evk.dtb \
        imx6qp-sabreauto-ecspi.dtb \
        imx6qp-sabreauto-gpmi-weim.dtb \
        imx6sx-sabreauto.dtb \
+       imx6sx-sdb.dtb \
+       imx6sx-sdb-emmc.dtb \
        imx6q-sabresd.dtb \
        imx6qp-sabresd.dtb \
        imx6ul-geam-kit.dtb
index 42c4c80..5f21be0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 Freescale Semiconductor, Inc.
+ * Copyright (C) 2014 Freescale Semiconductor, Inc.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -70,6 +70,7 @@
 #define MX6SX_PAD_GPIO1_IO06__ENET2_MDC                           0x002C 0x0374 0x0000 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO06__CSI1_MCLK                           0x002C 0x0374 0x0000 0x3 0x0
 #define MX6SX_PAD_GPIO1_IO06__UART1_RTS_B                         0x002C 0x0374 0x082C 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO06__UART1_CTS_B                         0x002C 0x0374 0x0000 0x4 0x0
 #define MX6SX_PAD_GPIO1_IO06__GPIO1_IO_6                          0x002C 0x0374 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO06__SRC_ANY_PU_RESET                    0x002C 0x0374 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO06__OCOTP_CTRL_WRAPPER_FUSE_LATCHED     0x002C 0x0374 0x0000 0x7 0x0
@@ -79,6 +80,7 @@
 #define MX6SX_PAD_GPIO1_IO07__ENET2_MDIO                          0x0030 0x0378 0x0770 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO07__AUDMUX_MCLK                         0x0030 0x0378 0x0000 0x3 0x0
 #define MX6SX_PAD_GPIO1_IO07__UART1_CTS_B                         0x0030 0x0378 0x0000 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO07__UART1_RTS_B                         0x0030 0x0378 0x082C 0x4 0x1
 #define MX6SX_PAD_GPIO1_IO07__GPIO1_IO_7                          0x0030 0x0378 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO07__SRC_EARLY_RESET                     0x0030 0x0378 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO07__DCIC2_OUT                           0x0030 0x0378 0x0000 0x7 0x0
@@ -88,6 +90,7 @@
 #define MX6SX_PAD_GPIO1_IO08__SDMA_EXT_EVENT_0                    0x0034 0x037C 0x081C 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO08__CCM_PMIC_RDY                        0x0034 0x037C 0x069C 0x3 0x1
 #define MX6SX_PAD_GPIO1_IO08__UART2_RTS_B                         0x0034 0x037C 0x0834 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO08__UART2_CTS_B                         0x0034 0x037C 0x0000 0x4 0x0
 #define MX6SX_PAD_GPIO1_IO08__GPIO1_IO_8                          0x0034 0x037C 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO08__SRC_SYSTEM_RESET                    0x0034 0x037C 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO08__DCIC1_OUT                           0x0034 0x037C 0x0000 0x7 0x0
 #define MX6SX_PAD_GPIO1_IO09__SDMA_EXT_EVENT_1                    0x0038 0x0380 0x0820 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO09__CCM_OUT0                            0x0038 0x0380 0x0000 0x3 0x0
 #define MX6SX_PAD_GPIO1_IO09__UART2_CTS_B                         0x0038 0x0380 0x0000 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO09__UART2_RTS_B                         0x0038 0x0380 0x0834 0x4 0x1
 #define MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9                          0x0038 0x0380 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO09__SRC_INT_BOOT                        0x0038 0x0380 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO09__OBSERVE_MUX_OUT_4                   0x0038 0x0380 0x0000 0x7 0x0
 #define MX6SX_PAD_CSI_DATA06__I2C4_SCL                            0x0064 0x03AC 0x07C0 0x2 0x2
 #define MX6SX_PAD_CSI_DATA06__KPP_COL_7                           0x0064 0x03AC 0x07D0 0x3 0x0
 #define MX6SX_PAD_CSI_DATA06__UART6_RTS_B                         0x0064 0x03AC 0x0854 0x4 0x0
+#define MX6SX_PAD_CSI_DATA06__UART6_CTS_B                         0x0064 0x03AC 0x0000 0x4 0x0
 #define MX6SX_PAD_CSI_DATA06__GPIO1_IO_20                         0x0064 0x03AC 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_DATA06__WEIM_DATA_17                        0x0064 0x03AC 0x0000 0x6 0x0
 #define MX6SX_PAD_CSI_DATA06__DCIC2_OUT                           0x0064 0x03AC 0x0000 0x7 0x0
 #define MX6SX_PAD_CSI_DATA07__I2C4_SDA                            0x0068 0x03B0 0x07C4 0x2 0x2
 #define MX6SX_PAD_CSI_DATA07__KPP_ROW_7                           0x0068 0x03B0 0x07DC 0x3 0x0
 #define MX6SX_PAD_CSI_DATA07__UART6_CTS_B                         0x0068 0x03B0 0x0000 0x4 0x0
+#define MX6SX_PAD_CSI_DATA07__UART6_RTS_B                         0x0068 0x03B0 0x0854 0x4 0x1
 #define MX6SX_PAD_CSI_DATA07__GPIO1_IO_21                         0x0068 0x03B0 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_DATA07__WEIM_DATA_16                        0x0068 0x03B0 0x0000 0x6 0x0
 #define MX6SX_PAD_CSI_DATA07__DCIC1_OUT                           0x0068 0x03B0 0x0000 0x7 0x0
 #define MX6SX_PAD_CSI_HSYNC__ESAI_TX0                             0x006C 0x03B4 0x0790 0x1 0x1
 #define MX6SX_PAD_CSI_HSYNC__AUDMUX_AUD6_TXD                      0x006C 0x03B4 0x0678 0x2 0x1
 #define MX6SX_PAD_CSI_HSYNC__UART4_RTS_B                          0x006C 0x03B4 0x0844 0x3 0x2
+#define MX6SX_PAD_CSI_HSYNC__UART4_CTS_B                          0x006C 0x03B4 0x0000 0x3 0x0
 #define MX6SX_PAD_CSI_HSYNC__MQS_LEFT                             0x006C 0x03B4 0x0000 0x4 0x0
 #define MX6SX_PAD_CSI_HSYNC__GPIO1_IO_22                          0x006C 0x03B4 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_HSYNC__WEIM_DATA_25                         0x006C 0x03B4 0x0000 0x6 0x0
 #define MX6SX_PAD_CSI_VSYNC__ESAI_TX5_RX0                         0x0078 0x03C0 0x07A4 0x1 0x1
 #define MX6SX_PAD_CSI_VSYNC__AUDMUX_AUD6_RXD                      0x0078 0x03C0 0x0674 0x2 0x1
 #define MX6SX_PAD_CSI_VSYNC__UART4_CTS_B                          0x0078 0x03C0 0x0000 0x3 0x0
+#define MX6SX_PAD_CSI_VSYNC__UART4_RTS_B                          0x0078 0x03C0 0x0844 0x3 0x3
 #define MX6SX_PAD_CSI_VSYNC__MQS_RIGHT                            0x0078 0x03C0 0x0000 0x4 0x0
 #define MX6SX_PAD_CSI_VSYNC__GPIO1_IO_25                          0x0078 0x03C0 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_VSYNC__WEIM_DATA_24                         0x0078 0x03C0 0x0000 0x6 0x0
 #define MX6SX_PAD_ENET1_RX_CLK__VDEC_DEBUG_35                     0x008C 0x03D4 0x0000 0x8 0x0
 #define MX6SX_PAD_ENET1_RX_CLK__PCIE_CTRL_DEBUG_29                0x008C 0x03D4 0x0000 0x9 0x0
 #define MX6SX_PAD_ENET1_TX_CLK__ENET1_TX_CLK                      0x0090 0x03D8 0x0000 0x0 0x0
-/*
- * SION bit is necessary for ENET1_REF_CLK1 (ENET2_REF_CLK2 untested) if it is
- * used as clock output of IMX6SX_CLK_ENET_REF (ENET1_TX_CLK) to e.g. supply a
- * PHY in RMII mode. This configuration is valid if:
- *  - bit 1 in field IMX6SX_GPR1_FEC_CLOCK_PAD_DIR_MASK is set
- *  - bit 1 in field IMX6SX_GPR1_FEC_CLOCK_MUX_SEL_MASK unset
- * It seems to be a silicon bug that in this configuration ENET1_TX reference
- * clock isn't provided automatically.  According to i.MX6SX reference manual
- * (IOMUXC_GPR_GPR1 field descriptions: ENET1_CLK_SEL, Rev. 0 from 2/2015) it
- * should be the case.
- * So this might have unwanted side effects for other hardware units that are
- * also connected to that pin and using respective function as input (e.g.
- * UART1's DTR handling on MX6SX_PAD_ENET1_TX_CLK__UART1_DTR_B).
- */
 #define MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1                    0x0090 0x03D8 0x0760 0x1 0x1
 #define MX6SX_PAD_ENET1_TX_CLK__AUDMUX_AUD4_RXD                   0x0090 0x03D8 0x0644 0x2 0x1
 #define MX6SX_PAD_ENET1_TX_CLK__UART1_DTR_B                       0x0090 0x03D8 0x0000 0x3 0x0
 #define MX6SX_PAD_ENET2_RX_CLK__ENET2_REF_CLK_25M                 0x009C 0x03E4 0x0000 0x1 0x0
 #define MX6SX_PAD_ENET2_RX_CLK__I2C3_SCL                          0x009C 0x03E4 0x07B8 0x2 0x1
 #define MX6SX_PAD_ENET2_RX_CLK__UART1_RTS_B                       0x009C 0x03E4 0x082C 0x3 0x2
+#define MX6SX_PAD_ENET2_RX_CLK__UART1_CTS_B                       0x009C 0x03E4 0x0000 0x3 0x0
 #define MX6SX_PAD_ENET2_RX_CLK__MLB_DATA                          0x009C 0x03E4 0x07EC 0x4 0x1
 #define MX6SX_PAD_ENET2_RX_CLK__GPIO2_IO_8                        0x009C 0x03E4 0x0000 0x5 0x0
 #define MX6SX_PAD_ENET2_RX_CLK__USB_OTG2_OC                       0x009C 0x03E4 0x085C 0x6 0x1
 #define MX6SX_PAD_ENET2_TX_CLK__ENET2_REF_CLK2                    0x00A0 0x03E8 0x076C 0x1 0x1
 #define MX6SX_PAD_ENET2_TX_CLK__I2C3_SDA                          0x00A0 0x03E8 0x07BC 0x2 0x1
 #define MX6SX_PAD_ENET2_TX_CLK__UART1_CTS_B                       0x00A0 0x03E8 0x0000 0x3 0x0
+#define MX6SX_PAD_ENET2_TX_CLK__UART1_RTS_B                       0x00A0 0x03E8 0x082C 0x3 0x3
 #define MX6SX_PAD_ENET2_TX_CLK__MLB_CLK                           0x00A0 0x03E8 0x07E8 0x4 0x1
 #define MX6SX_PAD_ENET2_TX_CLK__GPIO2_IO_9                        0x00A0 0x03E8 0x0000 0x5 0x0
 #define MX6SX_PAD_ENET2_TX_CLK__USB_OTG2_PWR                      0x00A0 0x03E8 0x0000 0x6 0x0
 #define MX6SX_PAD_KEY_COL0__KPP_COL_0                             0x00A4 0x03EC 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_COL0__USDHC3_CD_B                           0x00A4 0x03EC 0x0000 0x1 0x0
 #define MX6SX_PAD_KEY_COL0__UART6_RTS_B                           0x00A4 0x03EC 0x0854 0x2 0x2
+#define MX6SX_PAD_KEY_COL0__UART6_CTS_B                           0x00A4 0x03EC 0x0000 0x2 0x0
 #define MX6SX_PAD_KEY_COL0__ECSPI1_SCLK                           0x00A4 0x03EC 0x0710 0x3 0x0
 #define MX6SX_PAD_KEY_COL0__AUDMUX_AUD5_TXC                       0x00A4 0x03EC 0x066C 0x4 0x0
 #define MX6SX_PAD_KEY_COL0__GPIO2_IO_10                           0x00A4 0x03EC 0x0000 0x5 0x0
 #define MX6SX_PAD_KEY_COL2__KPP_COL_2                             0x00AC 0x03F4 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_COL2__USDHC4_CD_B                           0x00AC 0x03F4 0x0874 0x1 0x1
 #define MX6SX_PAD_KEY_COL2__UART5_RTS_B                           0x00AC 0x03F4 0x084C 0x2 0x2
+#define MX6SX_PAD_KEY_COL2__UART5_CTS_B                           0x00AC 0x03F4 0x0000 0x2 0x0
 #define MX6SX_PAD_KEY_COL2__CAN1_TX                               0x00AC 0x03F4 0x0000 0x3 0x0
 #define MX6SX_PAD_KEY_COL2__CANFD_TX1                             0x00AC 0x03F4 0x0000 0x4 0x0
 #define MX6SX_PAD_KEY_COL2__GPIO2_IO_12                           0x00AC 0x03F4 0x0000 0x5 0x0
 #define MX6SX_PAD_KEY_ROW0__KPP_ROW_0                             0x00B8 0x0400 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_ROW0__USDHC3_WP                             0x00B8 0x0400 0x0000 0x1 0x0
 #define MX6SX_PAD_KEY_ROW0__UART6_CTS_B                           0x00B8 0x0400 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_ROW0__UART6_RTS_B                           0x00B8 0x0400 0x0854 0x2 0x3
 #define MX6SX_PAD_KEY_ROW0__ECSPI1_MOSI                           0x00B8 0x0400 0x0718 0x3 0x0
 #define MX6SX_PAD_KEY_ROW0__AUDMUX_AUD5_TXD                       0x00B8 0x0400 0x0660 0x4 0x0
 #define MX6SX_PAD_KEY_ROW0__GPIO2_IO_15                           0x00B8 0x0400 0x0000 0x5 0x0
 #define MX6SX_PAD_KEY_ROW2__KPP_ROW_2                             0x00C0 0x0408 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_ROW2__USDHC4_WP                             0x00C0 0x0408 0x0878 0x1 0x1
 #define MX6SX_PAD_KEY_ROW2__UART5_CTS_B                           0x00C0 0x0408 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_ROW2__UART5_RTS_B                           0x00C0 0x0408 0x084C 0x2 0x3
 #define MX6SX_PAD_KEY_ROW2__CAN1_RX                               0x00C0 0x0408 0x068C 0x3 0x1
 #define MX6SX_PAD_KEY_ROW2__CANFD_RX1                             0x00C0 0x0408 0x0694 0x4 0x1
 #define MX6SX_PAD_KEY_ROW2__GPIO2_IO_17                           0x00C0 0x0408 0x0000 0x5 0x0
 #define MX6SX_PAD_NAND_DATA04__USDHC2_DATA4                       0x0160 0x04A8 0x0000 0x1 0x0
 #define MX6SX_PAD_NAND_DATA04__QSPI2_B_SS1_B                      0x0160 0x04A8 0x0000 0x2 0x0
 #define MX6SX_PAD_NAND_DATA04__UART3_RTS_B                        0x0160 0x04A8 0x083C 0x3 0x0
+#define MX6SX_PAD_NAND_DATA04__UART3_CTS_B                        0x0160 0x04A8 0x0000 0x3 0x0
 #define MX6SX_PAD_NAND_DATA04__AUDMUX_AUD4_RXFS                   0x0160 0x04A8 0x0650 0x4 0x0
 #define MX6SX_PAD_NAND_DATA04__GPIO4_IO_8                         0x0160 0x04A8 0x0000 0x5 0x0
 #define MX6SX_PAD_NAND_DATA04__WEIM_AD_4                          0x0160 0x04A8 0x0000 0x6 0x0
 #define MX6SX_PAD_NAND_DATA05__USDHC2_DATA5                       0x0164 0x04AC 0x0000 0x1 0x0
 #define MX6SX_PAD_NAND_DATA05__QSPI2_B_DQS                        0x0164 0x04AC 0x0000 0x2 0x0
 #define MX6SX_PAD_NAND_DATA05__UART3_CTS_B                        0x0164 0x04AC 0x0000 0x3 0x0
+#define MX6SX_PAD_NAND_DATA05__UART3_RTS_B                        0x0164 0x04AC 0x083C 0x3 0x1
 #define MX6SX_PAD_NAND_DATA05__AUDMUX_AUD4_RXC                    0x0164 0x04AC 0x064C 0x4 0x0
 #define MX6SX_PAD_NAND_DATA05__GPIO4_IO_9                         0x0164 0x04AC 0x0000 0x5 0x0
 #define MX6SX_PAD_NAND_DATA05__WEIM_AD_5                          0x0164 0x04AC 0x0000 0x6 0x0
 #define MX6SX_PAD_QSPI1A_SS1_B__SDMA_DEBUG_PC_3                   0x019C 0x04E4 0x0000 0x9 0x0
 #define MX6SX_PAD_QSPI1B_DATA0__QSPI1_B_DATA_0                    0x01A0 0x04E8 0x0000 0x0 0x0
 #define MX6SX_PAD_QSPI1B_DATA0__UART3_CTS_B                       0x01A0 0x04E8 0x0000 0x1 0x0
+#define MX6SX_PAD_QSPI1B_DATA0__UART3_RTS_B                       0x01A0 0x04E8 0x083C 0x1 0x4
 #define MX6SX_PAD_QSPI1B_DATA0__ECSPI3_MOSI                       0x01A0 0x04E8 0x0738 0x2 0x1
 #define MX6SX_PAD_QSPI1B_DATA0__ESAI_RX_FS                        0x01A0 0x04E8 0x0778 0x3 0x2
 #define MX6SX_PAD_QSPI1B_DATA0__CSI1_DATA_22                      0x01A0 0x04E8 0x06F4 0x4 0x1
 #define MX6SX_PAD_QSPI1B_DATA0__SIM_M_HADDR_9                     0x01A0 0x04E8 0x0000 0x7 0x0
 #define MX6SX_PAD_QSPI1B_DATA1__QSPI1_B_DATA_1                    0x01A4 0x04EC 0x0000 0x0 0x0
 #define MX6SX_PAD_QSPI1B_DATA1__UART3_RTS_B                       0x01A4 0x04EC 0x083C 0x1 0x5
+#define MX6SX_PAD_QSPI1B_DATA1__UART3_CTS_B                       0x01A4 0x04EC 0x0000 0x1 0x0
 #define MX6SX_PAD_QSPI1B_DATA1__ECSPI3_MISO                       0x01A4 0x04EC 0x0734 0x2 0x1
 #define MX6SX_PAD_QSPI1B_DATA1__ESAI_RX_CLK                       0x01A4 0x04EC 0x0788 0x3 0x2
 #define MX6SX_PAD_QSPI1B_DATA1__CSI1_DATA_21                      0x01A4 0x04EC 0x06F0 0x4 0x1
 #define MX6SX_PAD_SD1_DATA2__PWM3_OUT                             0x0230 0x0578 0x0000 0x2 0x0
 #define MX6SX_PAD_SD1_DATA2__GPT_COMPARE2                         0x0230 0x0578 0x0000 0x3 0x0
 #define MX6SX_PAD_SD1_DATA2__UART2_CTS_B                          0x0230 0x0578 0x0000 0x4 0x0
+#define MX6SX_PAD_SD1_DATA2__UART2_RTS_B                          0x0230 0x0578 0x0834 0x4 0x2
 #define MX6SX_PAD_SD1_DATA2__GPIO6_IO_4                           0x0230 0x0578 0x0000 0x5 0x0
 #define MX6SX_PAD_SD1_DATA2__ECSPI4_RDY                           0x0230 0x0578 0x0000 0x6 0x0
 #define MX6SX_PAD_SD1_DATA2__CCM_OUT0                             0x0230 0x0578 0x0000 0x7 0x0
 #define MX6SX_PAD_SD1_DATA3__AUDMUX_AUD5_RXD                      0x0234 0x057C 0x065C 0x2 0x2
 #define MX6SX_PAD_SD1_DATA3__GPT_COMPARE3                         0x0234 0x057C 0x0000 0x3 0x0
 #define MX6SX_PAD_SD1_DATA3__UART2_RTS_B                          0x0234 0x057C 0x0834 0x4 0x3
+#define MX6SX_PAD_SD1_DATA3__UART2_CTS_B                          0x0234 0x057C 0x0000 0x4 0x0
 #define MX6SX_PAD_SD1_DATA3__GPIO6_IO_5                           0x0234 0x057C 0x0000 0x5 0x0
 #define MX6SX_PAD_SD1_DATA3__ECSPI4_SS1                           0x0234 0x057C 0x0000 0x6 0x0
 #define MX6SX_PAD_SD1_DATA3__CCM_PMIC_RDY                         0x0234 0x057C 0x069C 0x7 0x2
 #define MX6SX_PAD_SD2_DATA3__MMDC_DEBUG_31                        0x024C 0x0594 0x0000 0x9 0x0
 #define MX6SX_PAD_SD3_CLK__USDHC3_CLK                             0x0250 0x0598 0x0000 0x0 0x0
 #define MX6SX_PAD_SD3_CLK__UART4_CTS_B                            0x0250 0x0598 0x0000 0x1 0x0
+#define MX6SX_PAD_SD3_CLK__UART4_RTS_B                            0x0250 0x0598 0x0844 0x1 0x0
 #define MX6SX_PAD_SD3_CLK__ECSPI4_SCLK                            0x0250 0x0598 0x0740 0x2 0x0
 #define MX6SX_PAD_SD3_CLK__AUDMUX_AUD6_RXFS                       0x0250 0x0598 0x0680 0x3 0x0
 #define MX6SX_PAD_SD3_CLK__LCDIF2_VSYNC                           0x0250 0x0598 0x0000 0x4 0x0
 #define MX6SX_PAD_SD3_DATA1__SDMA_DEBUG_EVT_CHN_LINES_1           0x025C 0x05A4 0x0000 0x9 0x0
 #define MX6SX_PAD_SD3_DATA2__USDHC3_DATA2                         0x0260 0x05A8 0x0000 0x0 0x0
 #define MX6SX_PAD_SD3_DATA2__UART4_RTS_B                          0x0260 0x05A8 0x0844 0x1 0x1
+#define MX6SX_PAD_SD3_DATA2__UART4_CTS_B                          0x0260 0x05A8 0x0000 0x1 0x0
 #define MX6SX_PAD_SD3_DATA2__ECSPI4_SS0                           0x0260 0x05A8 0x074C 0x2 0x0
 #define MX6SX_PAD_SD3_DATA2__AUDMUX_AUD6_TXFS                     0x0260 0x05A8 0x0688 0x3 0x0
 #define MX6SX_PAD_SD3_DATA2__LCDIF2_CLK                           0x0260 0x05A8 0x0000 0x4 0x0
 #define MX6SX_PAD_SD3_DATA6__CAN2_TX                              0x0270 0x05B8 0x0000 0x1 0x0
 #define MX6SX_PAD_SD3_DATA6__CANFD_TX2                            0x0270 0x05B8 0x0000 0x2 0x0
 #define MX6SX_PAD_SD3_DATA6__UART3_RTS_B                          0x0270 0x05B8 0x083C 0x3 0x2
+#define MX6SX_PAD_SD3_DATA6__UART3_CTS_B                          0x0270 0x05B8 0x0000 0x3 0x0
 #define MX6SX_PAD_SD3_DATA6__LCDIF2_DATA_4                        0x0270 0x05B8 0x0000 0x4 0x0
 #define MX6SX_PAD_SD3_DATA6__GPIO7_IO_8                           0x0270 0x05B8 0x0000 0x5 0x0
 #define MX6SX_PAD_SD3_DATA6__ENET1_1588_EVENT0_OUT                0x0270 0x05B8 0x0000 0x6 0x0
 #define MX6SX_PAD_SD3_DATA7__CAN1_RX                              0x0274 0x05BC 0x068C 0x1 0x0
 #define MX6SX_PAD_SD3_DATA7__CANFD_RX1                            0x0274 0x05BC 0x0694 0x2 0x0
 #define MX6SX_PAD_SD3_DATA7__UART3_CTS_B                          0x0274 0x05BC 0x0000 0x3 0x0
+#define MX6SX_PAD_SD3_DATA7__UART3_RTS_B                          0x0274 0x05BC 0x083C 0x3 0x3
 #define MX6SX_PAD_SD3_DATA7__LCDIF2_DATA_5                        0x0274 0x05BC 0x0000 0x4 0x0
 #define MX6SX_PAD_SD3_DATA7__GPIO7_IO_9                           0x0274 0x05BC 0x0000 0x5 0x0
 #define MX6SX_PAD_SD3_DATA7__ENET1_1588_EVENT0_IN                 0x0274 0x05BC 0x0000 0x6 0x0
 #define MX6SX_PAD_SD4_DATA6__USDHC4_DATA6                         0x0298 0x05E0 0x0000 0x0 0x0
 #define MX6SX_PAD_SD4_DATA6__RAWNAND_CE3_B                        0x0298 0x05E0 0x0000 0x1 0x0
 #define MX6SX_PAD_SD4_DATA6__UART5_RTS_B                          0x0298 0x05E0 0x084C 0x2 0x0
+#define MX6SX_PAD_SD4_DATA6__UART5_CTS_B                          0x0298 0x05E0 0x0000 0x2 0x0
 #define MX6SX_PAD_SD4_DATA6__ECSPI3_MISO                          0x0298 0x05E0 0x0734 0x3 0x0
 #define MX6SX_PAD_SD4_DATA6__LCDIF2_DATA_6                        0x0298 0x05E0 0x0000 0x4 0x0
 #define MX6SX_PAD_SD4_DATA6__GPIO6_IO_20                          0x0298 0x05E0 0x0000 0x5 0x0
 #define MX6SX_PAD_SD4_DATA7__USDHC4_DATA7                         0x029C 0x05E4 0x0000 0x0 0x0
 #define MX6SX_PAD_SD4_DATA7__RAWNAND_DATA08                       0x029C 0x05E4 0x0000 0x1 0x0
 #define MX6SX_PAD_SD4_DATA7__UART5_CTS_B                          0x029C 0x05E4 0x0000 0x2 0x0
+#define MX6SX_PAD_SD4_DATA7__UART5_RTS_B                          0x029C 0x05E4 0x084C 0x2 0x1
 #define MX6SX_PAD_SD4_DATA7__ECSPI3_SS0                           0x029C 0x05E4 0x073C 0x3 0x0
 #define MX6SX_PAD_SD4_DATA7__LCDIF2_DATA_15                       0x029C 0x05E4 0x0000 0x4 0x0
 #define MX6SX_PAD_SD4_DATA7__GPIO6_IO_21                          0x029C 0x05E4 0x0000 0x5 0x0
diff --git a/arch/arm/dts/imx6sx-sdb-emmc.dts b/arch/arm/dts/imx6sx-sdb-emmc.dts
new file mode 100644 (file)
index 0000000..6a2a07b
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "imx6sx-sdb.dts"
+
+/*
+ * The eMMC chip on imx6sx sdb board is DNP by default.
+ * Need do hw rework to burn the eMMC4.5 chip on the eMMC socket on uSDHC4
+ * and connect eMMC signals as well as disconnect BOOT SD CARD slot signals
+ */
+&usdhc4 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc4_1>;
+       pinctrl-1 = <&pinctrl_usdhc4_1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc4_1_200mhz>;
+       bus-width = <8>;
+       /*
+        * overwrite cd-gpios and wp-gpios since they are reused as eMMC DATA
+        * signals after rework
+        */
+       cd-gpios = <>;
+       wp-gpios = <>;
+       non-removable;
+       status = "okay";
+};
diff --git a/arch/arm/dts/imx6sx-sdb.dts b/arch/arm/dts/imx6sx-sdb.dts
new file mode 100644 (file)
index 0000000..4625415
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "imx6sx-sdb.dtsi"
+
+/ {
+       model = "Freescale i.MX6 SoloX SDB RevB Board";
+
+       regulators {
+               /* Transceiver EN/STBY is active low on RevB board */
+               reg_can_stby: regulator@10 {
+                       gpio = <&gpio4 27 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&cpu0 {
+       operating-points = <
+               /* kHz    uV */
+               996000  1250000
+               792000  1175000
+               396000  1175000
+               198000  1175000
+               >;
+       fsl,soc-operating-points = <
+               /* ARM kHz      SOC uV */
+               996000  1250000
+               792000  1175000
+               396000  1175000
+               198000  1175000
+       >;
+       arm-supply = <&sw1a_reg>;
+       soc-supply = <&sw1a_reg>;
+       fsl,arm-soc-shared = <1>;
+};
+
+&qspi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_qspi2>;
+       status = "okay";
+
+#ifndef SPANSIONFLASH
+       ddrsmp=<0>;
+
+       flash0: n25q256a@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "spi-flash";
+               spi-max-frequency = <29000000>;
+               reg = <0>;
+       };
+
+       flash1: n25q256a@1 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "spi-flash";
+               spi-max-frequency = <29000000>;
+               reg = <1>;
+       };
+#endif
+};
+
+&usbphy1 {
+       tx-d-cal = <0x5>;
+};
+
+&usbphy2 {
+       tx-d-cal = <0x5>;
+};
diff --git a/arch/arm/dts/imx6sx-sdb.dtsi b/arch/arm/dts/imx6sx-sdb.dtsi
new file mode 100644 (file)
index 0000000..523dfdb
--- /dev/null
@@ -0,0 +1,1130 @@
+/*
+ * Copyright (C) 2014 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "imx6sx.dtsi"
+
+/ {
+       model = "Freescale i.MX6 SoloX SDB Board";
+       compatible = "fsl,imx6sx-sdb", "fsl,imx6sx";
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       memory {
+               reg = <0x80000000 0x40000000>;
+       };
+
+       backlight1 {
+               compatible = "pwm-backlight";
+               pwms = <&pwm3 0 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+               fb-names = "mxs-lcdif0";
+       };
+       backlight2 {
+               compatible = "pwm-backlight";
+               pwms = <&pwm4 0 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+               fb-names = "mxs-lcdif1";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               volume-up {
+                       label = "Volume Up";
+                       gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               volume-down {
+                       label = "Volume Down";
+                       gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+       };
+
+       hannstar_cabc {
+               compatible = "hannstar,cabc";
+               lvds0 {
+                       gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+        pxp_v4l2_out {
+                compatible = "fsl,imx6sx-pxp-v4l2", "fsl,imx6sl-pxp-v4l2";
+                status = "okay";
+        };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vcc_sd3: regulator@0 {
+                       compatible = "regulator-fixed";
+                       reg = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_vcc_sd3>;
+                       regulator-name = "VCC_SD3";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+
+               reg_usb_otg1_vbus: regulator@1 {
+                       compatible = "regulator-fixed";
+                       reg = <1>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb_otg1>;
+                       regulator-name = "usb_otg1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+
+               reg_usb_otg2_vbus: regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <2>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb_otg2>;
+                       regulator-name = "usb_otg2_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+
+               reg_psu_5v: regulator@3 {
+                       compatible = "regulator-fixed";
+                       reg = <3>;
+                       regulator-name = "PSU-5V0";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+               };
+
+               reg_lcd_3v3: regulator@4 {
+                       compatible = "regulator-fixed";
+                       reg = <4>;
+                       regulator-name = "lcd-3v3";
+                       gpio = <&gpio3 27 0>;
+                       enable-active-high;
+                       status = "disabled";
+               };
+
+               reg_peri_3v3: regulator@5 {
+                       compatible = "regulator-fixed";
+                       reg = <5>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_peri_3v3>;
+                       regulator-name = "peri_3v3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+                       regulator-always-on;
+               };
+
+               reg_enet_3v3: regulator@6 {
+                       compatible = "regulator-fixed";
+                       reg = <6>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_enet_3v3>;
+                       regulator-name = "enet_3v3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
+               };
+
+               reg_vref_3v3: regulator@7 {
+                       compatible = "regulator-fixed";
+                       reg = <7>;
+                       regulator-name = "vref-3v3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               reg_pcie: regulator@8 {
+                       compatible = "regulator-fixed";
+                       reg = <8>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_pcie_reg>;
+                       regulator-name = "MPCIE_3V3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio2 1 0>;
+                       regulator-always-on;
+                       enable-active-high;
+               };
+
+               reg_can_en: regulator@9 {
+                       compatible = "regulator-fixed";
+                       reg = <9>;
+                       regulator-name = "can-en";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               reg_can_stby: regulator@10 {
+                       compatible = "regulator-fixed";
+                       reg = <10>;
+                       regulator-name = "can-stby";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+       };
+
+       sound {
+               compatible = "fsl,imx6sx-sdb-wm8962", "fsl,imx-audio-wm8962";
+               model = "wm8962-audio";
+               cpu-dai = <&ssi2>;
+               audio-codec = <&codec>;
+               audio-routing =
+                       "Headphone Jack", "HPOUTL",
+                       "Headphone Jack", "HPOUTR",
+                       "Ext Spk", "SPKOUTL",
+                       "Ext Spk", "SPKOUTR",
+                       "AMIC", "MICBIAS",
+                       "IN3R", "AMIC";
+               mux-int-port = <2>;
+               mux-ext-port = <6>;
+               codec-master;
+               hp-det-gpios = <&gpio1 17 1>;
+       };
+
+       sound-spdif {
+               compatible = "fsl,imx-audio-spdif",
+                          "fsl,imx6sx-sdb-spdif";
+               model = "imx-spdif";
+               spdif-controller = <&spdif>;
+               spdif-out;
+       };
+
+       sii902x_reset: sii902x-reset {
+               compatible = "gpio-reset";
+               reset-gpios = <&gpio3 27 1>;
+               reset-delay-us = <100000>;
+               #reset-cells = <0>;
+               status = "disabled";
+       };
+};
+
+&adc1 {
+       vref-supply = <&reg_vref_3v3>;
+       status = "okay";
+};
+
+&adc2 {
+       vref-supply = <&reg_vref_3v3>;
+       status = "okay";
+};
+
+&audmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux>;
+       status = "okay";
+};
+
+
+&gpc {
+       fsl,ldo-bypass = <1>;
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       phy-supply = <&reg_enet_3v3>;
+       phy-mode = "rgmii";
+       phy-handle = <&ethphy1>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy1: ethernet-phy@1 {
+                       reg = <1>;
+               };
+
+               ethphy2: ethernet-phy@2 {
+                       reg = <2>;
+               };
+       };
+};
+
+&csi1 {
+       status = "okay";
+
+       port {
+               csi1_ep: endpoint {
+                       remote-endpoint = <&ov5640_ep>;
+               };
+       };
+};
+
+&csi2 {
+       status = "okay";
+       port {
+               csi2_ep: endpoint {
+                       remote-endpoint = <&vadc_ep>;
+               };
+       };
+};
+
+&dcic1 {
+       dcic_id = <0>;
+       dcic_mux = "dcic-lcdif1";
+       status = "okay";
+};
+
+&dcic2 {
+       dcic_id = <1>;
+       dcic_mux = "dcic-lvds";
+       status = "okay";
+};
+
+&fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet2>;
+       phy-mode = "rgmii";
+       phy-handle = <&ethphy2>;
+       status = "okay";
+};
+
+&flexcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       xceiver-supply = <&reg_can_stby>;
+       status = "okay";
+};
+
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_can_stby>;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pmic: pfuze100@08 {
+               compatible = "fsl,pfuze200";
+               reg = <0x08>;
+
+               regulators {
+                       sw1a_reg: sw1ab {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw2_reg: sw2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw3a_reg: sw3a {
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw3b_reg: sw3b {
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       swbst_reg: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                       };
+
+                       snvs_reg: vsnvs {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vref_reg: vrefddr {
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vgen1_reg: vgen1 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                               regulator-always-on;
+                       };
+
+                       vgen2_reg: vgen2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen4_reg: vgen4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen5_reg: vgen5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen6_reg: vgen6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       ov5640: ov5640@3c {
+               compatible = "ovti,ov5640";
+               reg = <0x3c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_csi_0>;
+               clocks = <&clks IMX6SX_CLK_CSI>;
+               clock-names = "csi_mclk";
+               AVDD-supply = <&vgen3_reg>;  /* 2.8v */
+               DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
+               pwn-gpios = <&gpio3 28 1>;
+               rst-gpios = <&gpio3 27 0>;
+               csi_id = <0>;
+               mclk = <24000000>;
+               mclk_source = <0>;
+               port {
+                       ov5640_ep: endpoint {
+                               remote-endpoint = <&csi1_ep>;
+                       };
+               };
+       };
+
+       sii902x@39 {
+               compatible = "SiI,sii902x";
+               interrupt-parent = <&gpio4>;
+               interrupts = <21 2>;
+               mode_str ="1280x720M@60";
+               bits-per-pixel = <16>;
+               resets = <&sii902x_reset>;
+               reg = <0x39>;
+               status = "disabled";
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+
+       egalax_ts@04 {
+               compatible = "eeti,egalax_ts";
+               reg = <0x04>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_egalax_int>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <19 2>;
+               wakeup-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+
+       isl29023@44 {
+               compatible = "fsl,isl29023";
+               reg = <0x44>;
+               rext = <499>;
+               interrupt-parent = <&gpio6>;
+               interrupts = <5 1>;
+               shared-interrupt;
+       };
+
+       mag3110@0e {
+               compatible = "fsl,mag3110";
+               reg = <0x0e>;
+               position = <2>;
+               interrupt-parent = <&gpio6>;
+               interrupts = <5 1>;
+               shared-interrupt;
+       };
+
+       mma8451@1c {
+               compatible = "fsl,mma8451";
+               reg = <0x1c>;
+               position = <1>;
+               interrupt-parent = <&gpio6>;
+               interrupts = <2 8>;
+               interrupt-route = <2>;
+       };
+};
+
+&i2c4 {
+        clock-frequency = <100000>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_i2c4>;
+        status = "okay";
+
+       codec: wm8962@1a {
+               compatible = "wlf,wm8962";
+               reg = <0x1a>;
+               clocks = <&clks IMX6SX_CLK_AUDIO>;
+               DCVDD-supply = <&vgen4_reg>;
+               DBVDD-supply = <&vgen4_reg>;
+               AVDD-supply = <&vgen4_reg>;
+               CPVDD-supply = <&vgen4_reg>;
+               MICVDD-supply = <&vgen3_reg>;
+               PLLVDD-supply = <&vgen4_reg>;
+               SPKVDD1-supply = <&reg_psu_5v>;
+               SPKVDD2-supply = <&reg_psu_5v>;
+               amic-mono;
+       };
+};
+
+&lcdif1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lcd>;
+       lcd-supply = <&reg_lcd_3v3>;
+       display = <&display0>;
+       status = "disabled";
+
+       display0: display {
+               bits-per-pixel = <16>;
+               bus-width = <24>;
+
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: timing0 {
+                               clock-frequency = <33500000>;
+                               hactive = <800>;
+                               vactive = <480>;
+                               hback-porch = <89>;
+                               hfront-porch = <164>;
+                               vback-porch = <23>;
+                               vfront-porch = <10>;
+                               hsync-len = <10>;
+                               vsync-len = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
+};
+
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie>;
+       reset-gpio = <&gpio2 0 0>;
+       status = "okay";
+};
+
+&lcdif2 {
+       display = <&display1>;
+       disp-dev = "ldb";
+       status = "okay";
+       display1: display {
+               bits-per-pixel = <16>;
+               bus-width = <18>;
+       };
+};
+&ldb {
+       status = "okay";
+       lvds-channel@0 {
+               fsl,data-mapping = "spwg";
+               fsl,data-width = <18>;
+               crtc = "lcdif2";
+               status = "okay";
+               display-timings {
+                       native-mode = <&timing1>;
+                       timing1: hsd100pxn1 {
+                               clock-frequency = <65000000>;
+                               hactive = <1024>;
+                               vactive = <768>;
+                               hback-porch = <220>;
+                               hfront-porch = <40>;
+                               vback-porch = <21>;
+                               vfront-porch = <7>;
+                               hsync-len = <60>;
+                               vsync-len = <10>;
+                       };
+               };
+       };
+};
+
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+       status = "okay";
+};
+
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+       status = "okay";
+};
+
+&pxp {
+        status = "okay";
+};
+
+&snvs_poweroff {
+       status = "okay";
+};
+
+&spdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spdif>;
+       status = "okay";
+};
+
+&ssi2 {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart5 { /* for bluetooth */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       fsl,uart-has-rtscts;
+       status = "okay";
+       /* for DTE mode, add below change */
+       /* fsl,dte-mode;*/
+       /* pinctrl-0 = <&pinctrl_uart5dte_1>; */
+};
+
+&usbotg1 {
+       vbus-supply = <&reg_usb_otg1_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb_otg1_id>;
+       srp-disable;
+       hnp-disable;
+       adp-disable;
+       status = "okay";
+};
+
+&usbotg2 {
+       vbus-supply = <&reg_usb_otg2_vbus>;
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       non-removable;
+       no-1-8-v;
+       keep-power-in-suspend;
+       enable-sdio-wakeup;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       bus-width = <8>;
+       cd-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>;
+       keep-power-in-suspend;
+       enable-sdio-wakeup;
+       vmmc-supply = <&vcc_sd3>;
+       status = "okay";
+};
+
+&usdhc4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc4>;
+       cd-gpios = <&gpio6 21 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio6 20 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,wdog_b;
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog &pinctrl_can_gpios>;
+
+       imx6x-sdb {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6SX_PAD_SD1_DATA0__GPIO6_IO_2 0x17059
+                               MX6SX_PAD_SD1_DATA3__GPIO6_IO_5 0xb000
+                               MX6SX_PAD_CSI_DATA03__GPIO1_IO_17 0x17059
+                       >;
+               };
+
+               pinctrl_can_gpios: can-gpios {
+                       fsl,pins = <
+                               MX6SX_PAD_QSPI1B_DATA1__GPIO4_IO_25 0x17059
+                               MX6SX_PAD_QSPI1B_DATA3__GPIO4_IO_27 0x17059
+                       >;
+               };
+
+               pinctrl_audmux: audmuxgrp {
+                       fsl,pins = <
+                               MX6SX_PAD_CSI_DATA00__AUDMUX_AUD6_TXC   0x130b0
+                               MX6SX_PAD_CSI_DATA01__AUDMUX_AUD6_TXFS  0x130b0
+                               MX6SX_PAD_CSI_HSYNC__AUDMUX_AUD6_TXD    0x120b0
+                               MX6SX_PAD_CSI_VSYNC__AUDMUX_AUD6_RXD    0x130b0
+                               MX6SX_PAD_CSI_PIXCLK__AUDMUX_MCLK       0x130b0
+                       >;
+               };
+
+               pinctrl_csi_0: csigrp-0 {
+                       fsl,pins = <
+                               MX6SX_PAD_LCD1_DATA07__CSI1_MCLK        0x110b0
+                               MX6SX_PAD_LCD1_DATA06__CSI1_PIXCLK      0x110b0
+                               MX6SX_PAD_LCD1_DATA04__CSI1_VSYNC       0x110b0
+                               MX6SX_PAD_LCD1_DATA05__CSI1_HSYNC       0x110b0
+                               MX6SX_PAD_LCD1_DATA17__CSI1_DATA_0      0x110b0
+                               MX6SX_PAD_LCD1_DATA16__CSI1_DATA_1      0x110b0
+                               MX6SX_PAD_LCD1_DATA15__CSI1_DATA_2      0x110b0
+                               MX6SX_PAD_LCD1_DATA14__CSI1_DATA_3      0x110b0
+                               MX6SX_PAD_LCD1_DATA13__CSI1_DATA_4      0x110b0
+                               MX6SX_PAD_LCD1_DATA12__CSI1_DATA_5      0x110b0
+                               MX6SX_PAD_LCD1_DATA11__CSI1_DATA_6      0x110b0
+                               MX6SX_PAD_LCD1_DATA10__CSI1_DATA_7      0x110b0
+                               MX6SX_PAD_LCD1_DATA09__CSI1_DATA_8      0x110b0
+                               MX6SX_PAD_LCD1_DATA08__CSI1_DATA_9      0x110b0
+                               MX6SX_PAD_LCD1_RESET__GPIO3_IO_27       0x80000000
+                               MX6SX_PAD_LCD1_VSYNC__GPIO3_IO_28       0x80000000
+                       >;
+               };
+
+               pinctrl_egalax_int: egalax_intgrp {
+                       fsl,pins = <
+                               MX6SX_PAD_QSPI1A_DATA3__GPIO4_IO_19 0x80000000
+                       >;
+               };
+
+               pinctrl_enet1: enet1grp {
+                       fsl,pins = <
+                               MX6SX_PAD_ENET1_MDIO__ENET1_MDIO        0xa0b1
+                               MX6SX_PAD_ENET1_MDC__ENET1_MDC          0xa0b1
+                               MX6SX_PAD_RGMII1_TXC__ENET1_RGMII_TXC   0xa0b9
+                               MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0   0xa0b1
+                               MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1   0xa0b1
+                               MX6SX_PAD_RGMII1_TD2__ENET1_TX_DATA_2   0xa0b1
+                               MX6SX_PAD_RGMII1_TD3__ENET1_TX_DATA_3   0xa0b1
+                               MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN    0xa0b1
+                               MX6SX_PAD_RGMII1_RXC__ENET1_RX_CLK      0x3081
+                               MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0   0x3081
+                               MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1   0x3081
+                               MX6SX_PAD_RGMII1_RD2__ENET1_RX_DATA_2   0x3081
+                               MX6SX_PAD_RGMII1_RD3__ENET1_RX_DATA_3   0x3081
+                               MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN    0x3081
+                               MX6SX_PAD_ENET2_RX_CLK__ENET2_REF_CLK_25M       0x91
+                       >;
+               };
+
+               pinctrl_enet_3v3: enet3v3grp {
+                       fsl,pins = <
+                               MX6SX_PAD_ENET2_COL__GPIO2_IO_6         0x80000000
+                       >;
+               };
+
+               pinctrl_enet2: enet2grp {
+                       fsl,pins = <
+                               MX6SX_PAD_RGMII2_TXC__ENET2_RGMII_TXC   0xa0b9
+                               MX6SX_PAD_RGMII2_TD0__ENET2_TX_DATA_0   0xa0b1
+                               MX6SX_PAD_RGMII2_TD1__ENET2_TX_DATA_1   0xa0b1
+                               MX6SX_PAD_RGMII2_TD2__ENET2_TX_DATA_2   0xa0b1
+                               MX6SX_PAD_RGMII2_TD3__ENET2_TX_DATA_3   0xa0b1
+                               MX6SX_PAD_RGMII2_TX_CTL__ENET2_TX_EN    0xa0b1
+                               MX6SX_PAD_RGMII2_RXC__ENET2_RX_CLK      0x3081
+                               MX6SX_PAD_RGMII2_RD0__ENET2_RX_DATA_0   0x3081
+                               MX6SX_PAD_RGMII2_RD1__ENET2_RX_DATA_1   0x3081
+                               MX6SX_PAD_RGMII2_RD2__ENET2_RX_DATA_2   0x3081
+                               MX6SX_PAD_RGMII2_RD3__ENET2_RX_DATA_3   0x3081
+                               MX6SX_PAD_RGMII2_RX_CTL__ENET2_RX_EN    0x3081
+                       >;
+               };
+
+               pinctrl_flexcan1: flexcan1grp {
+                       fsl,pins = <
+                               MX6SX_PAD_QSPI1B_DQS__CAN1_TX           0x1b020
+                               MX6SX_PAD_QSPI1A_SS1_B__CAN1_RX         0x1b020
+                       >;
+               };
+
+               pinctrl_flexcan2: flexcan2grp {
+                       fsl,pins = <
+                               MX6SX_PAD_QSPI1B_SS1_B__CAN2_RX         0x1b020
+                               MX6SX_PAD_QSPI1A_DQS__CAN2_TX           0x1b020
+                       >;
+               };
+
+               pinctrl_gpio_keys: gpio_keysgrp {
+                       fsl,pins = <
+                               MX6SX_PAD_CSI_DATA04__GPIO1_IO_18 0x17059
+                               MX6SX_PAD_CSI_DATA05__GPIO1_IO_19 0x17059
+                       >;
+               };
+
+               pinctrl_i2c1: i2c1grp {
+                       fsl,pins = <
+                               MX6SX_PAD_GPIO1_IO01__I2C1_SDA          0x4001b8b1
+                               MX6SX_PAD_GPIO1_IO00__I2C1_SCL          0x4001b8b1
+                       >;
+               };
+
+               pinctrl_i2c2: i2c2grp {
+                       fsl,pins = <
+                               MX6SX_PAD_GPIO1_IO03__I2C2_SDA 0x4001b8b1
+                               MX6SX_PAD_GPIO1_IO02__I2C2_SCL 0x4001b8b1
+                       >;
+               };
+
+               pinctrl_i2c3: i2c3grp {
+                       fsl,pins = <
+                               MX6SX_PAD_KEY_ROW4__I2C3_SDA 0x4001b8b1
+                               MX6SX_PAD_KEY_COL4__I2C3_SCL 0x4001b8b1
+                       >;
+               };
+
+               pinctrl_i2c4: i2c4grp {
+                       fsl,pins = <
+                               MX6SX_PAD_CSI_DATA07__I2C4_SDA          0x4001b8b1
+                               MX6SX_PAD_CSI_DATA06__I2C4_SCL          0x4001b8b1
+                       >;
+               };
+
+               pinctrl_lcd: lcdgrp {
+                       fsl,pins = <
+                               MX6SX_PAD_LCD1_DATA00__LCDIF1_DATA_0 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA01__LCDIF1_DATA_1 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA02__LCDIF1_DATA_2 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA03__LCDIF1_DATA_3 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA04__LCDIF1_DATA_4 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA05__LCDIF1_DATA_5 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA06__LCDIF1_DATA_6 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA07__LCDIF1_DATA_7 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA08__LCDIF1_DATA_8 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA09__LCDIF1_DATA_9 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA10__LCDIF1_DATA_10 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA11__LCDIF1_DATA_11 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA12__LCDIF1_DATA_12 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA13__LCDIF1_DATA_13 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA14__LCDIF1_DATA_14 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA15__LCDIF1_DATA_15 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA16__LCDIF1_DATA_16 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA17__LCDIF1_DATA_17 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA18__LCDIF1_DATA_18 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA19__LCDIF1_DATA_19 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA20__LCDIF1_DATA_20 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA21__LCDIF1_DATA_21 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA22__LCDIF1_DATA_22 0x4001b0b0
+                               MX6SX_PAD_LCD1_DATA23__LCDIF1_DATA_23 0x4001b0b0
+                               MX6SX_PAD_LCD1_CLK__LCDIF1_CLK  0x4001b0b0
+                               MX6SX_PAD_LCD1_ENABLE__LCDIF1_ENABLE 0x4001b0b0
+                               MX6SX_PAD_LCD1_VSYNC__LCDIF1_VSYNC 0x4001b0b0
+                               MX6SX_PAD_LCD1_HSYNC__LCDIF1_HSYNC 0x4001b0b0
+                               MX6SX_PAD_LCD1_RESET__GPIO3_IO_27 0x4001b0b0
+                       >;
+               };
+
+               pinctrl_mqs: mqsgrp {
+                       fsl,pins = <
+                               MX6SX_PAD_SD2_CLK__MQS_RIGHT 0x120b0
+                               MX6SX_PAD_SD2_CMD__MQS_LEFT  0x120b0
+                       >;
+               };
+
+               pinctrl_pcie: pciegrp {
+                       fsl,pins = <
+                               MX6SX_PAD_ENET1_COL__GPIO2_IO_0 0x10b0
+                       >;
+               };
+
+               pinctrl_pcie_reg: pciereggrp {
+                       fsl,pins = <
+                               MX6SX_PAD_ENET1_CRS__GPIO2_IO_1 0x10b0
+                       >;
+               };
+
+               pinctrl_peri_3v3: peri3v3grp {
+                       fsl,pins = <
+                               MX6SX_PAD_QSPI1A_DATA0__GPIO4_IO_16     0x80000000
+                       >;
+               };
+
+               pinctrl_pwm3: pwm3grp-1 {
+                       fsl,pins = <
+                               MX6SX_PAD_SD1_DATA2__PWM3_OUT 0x110b0
+                       >;
+               };
+
+               pinctrl_pwm4: pwm4grp-1 {
+                       fsl,pins = <
+                               MX6SX_PAD_SD1_DATA1__PWM4_OUT 0x110b0
+                       >;
+               };
+
+               pinctrl_qspi2: qspi2grp {
+                       fsl,pins = <
+                               MX6SX_PAD_NAND_WP_B__QSPI2_A_DATA_0     0x70f1
+                               MX6SX_PAD_NAND_READY_B__QSPI2_A_DATA_1  0x70f1
+                               MX6SX_PAD_NAND_CE0_B__QSPI2_A_DATA_2    0x70f1
+                               MX6SX_PAD_NAND_CE1_B__QSPI2_A_DATA_3    0x70f1
+                               MX6SX_PAD_NAND_CLE__QSPI2_A_SCLK        0x70f1
+                               MX6SX_PAD_NAND_ALE__QSPI2_A_SS0_B       0x70f1
+                               MX6SX_PAD_NAND_DATA01__QSPI2_B_DATA_0   0x70f1
+                               MX6SX_PAD_NAND_DATA00__QSPI2_B_DATA_1   0x70f1
+                               MX6SX_PAD_NAND_WE_B__QSPI2_B_DATA_2     0x70f1
+                               MX6SX_PAD_NAND_RE_B__QSPI2_B_DATA_3     0x70f1
+                               MX6SX_PAD_NAND_DATA02__QSPI2_B_SCLK     0x70f1
+                               MX6SX_PAD_NAND_DATA03__QSPI2_B_SS0_B    0x70f1
+                       >;
+               };
+
+               pinctrl_sai1: sai1grp {
+                        fsl,pins = <
+                                MX6SX_PAD_CSI_DATA00__SAI1_TX_BCLK     0x130b0
+                                MX6SX_PAD_CSI_DATA01__SAI1_TX_SYNC     0x130b0
+                                MX6SX_PAD_CSI_HSYNC__SAI1_TX_DATA_0    0x120b0
+                                MX6SX_PAD_CSI_VSYNC__SAI1_RX_DATA_0    0x130b0
+                                MX6SX_PAD_CSI_PIXCLK__AUDMUX_MCLK      0x130b0
+                        >;
+                };
+
+               pinctrl_spdif: spdifgrp {
+                       fsl,pins = <
+                               MX6SX_PAD_SD4_DATA4__SPDIF_OUT          0x1b0b0
+                       >;
+               };
+
+               pinctrl_vcc_sd3: vccsd3grp {
+                       fsl,pins = <
+                               MX6SX_PAD_KEY_COL1__GPIO2_IO_11         0x17059
+                       >;
+               };
+
+               pinctrl_uart1: uart1grp {
+                       fsl,pins = <
+                               MX6SX_PAD_GPIO1_IO04__UART1_TX          0x1b0b1
+                               MX6SX_PAD_GPIO1_IO05__UART1_RX          0x1b0b1
+                       >;
+               };
+
+               pinctrl_uart5: uart5grp {
+                       fsl,pins = <
+                               MX6SX_PAD_KEY_ROW3__UART5_RX            0x1b0b1
+                               MX6SX_PAD_KEY_COL3__UART5_TX            0x1b0b1
+                               MX6SX_PAD_KEY_ROW2__UART5_CTS_B         0x1b0b1
+                               MX6SX_PAD_KEY_COL2__UART5_RTS_B         0x1b0b1
+                       >;
+               };
+
+               pinctrl_uart5dte_1: uart5dtegrp-1 {
+                       fsl,pins = <
+                               MX6SX_PAD_KEY_ROW3__UART5_TX            0x1b0b1
+                               MX6SX_PAD_KEY_COL3__UART5_RX            0x1b0b1
+                               MX6SX_PAD_KEY_ROW2__UART5_RTS_B         0x1b0b1
+                               MX6SX_PAD_KEY_COL2__UART5_CTS_B         0x1b0b1
+                       >;
+               };
+
+               pinctrl_usb_otg1: usbotg1grp {
+                       fsl,pins = <
+                               MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9        0x10b0
+                       >;
+               };
+
+               pinctrl_usb_otg1_id: usbotg1idgrp {
+                       fsl,pins = <
+                               MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID    0x17059
+                       >;
+               };
+
+               pinctrl_usb_otg2: usbot2ggrp {
+                       fsl,pins = <
+                               MX6SX_PAD_GPIO1_IO12__GPIO1_IO_12       0x10b0
+                       >;
+               };
+
+               pinctrl_usdhc2: usdhc2grp {
+                       fsl,pins = <
+                               MX6SX_PAD_SD2_CMD__USDHC2_CMD           0x17059
+                               MX6SX_PAD_SD2_CLK__USDHC2_CLK           0x10059
+                               MX6SX_PAD_SD2_DATA0__USDHC2_DATA0       0x17059
+                               MX6SX_PAD_SD2_DATA1__USDHC2_DATA1       0x17059
+                               MX6SX_PAD_SD2_DATA2__USDHC2_DATA2       0x17059
+                               MX6SX_PAD_SD2_DATA3__USDHC2_DATA3       0x17059
+                       >;
+               };
+
+               pinctrl_usdhc3: usdhc3grp {
+                       fsl,pins = <
+                               MX6SX_PAD_SD3_CMD__USDHC3_CMD           0x17069
+                               MX6SX_PAD_SD3_CLK__USDHC3_CLK           0x10071
+                               MX6SX_PAD_SD3_DATA0__USDHC3_DATA0       0x17069
+                               MX6SX_PAD_SD3_DATA1__USDHC3_DATA1       0x17069
+                               MX6SX_PAD_SD3_DATA2__USDHC3_DATA2       0x17069
+                               MX6SX_PAD_SD3_DATA3__USDHC3_DATA3       0x17069
+                               MX6SX_PAD_SD3_DATA4__USDHC3_DATA4       0x17069
+                               MX6SX_PAD_SD3_DATA5__USDHC3_DATA5       0x17069
+                               MX6SX_PAD_SD3_DATA6__USDHC3_DATA6       0x17069
+                               MX6SX_PAD_SD3_DATA7__USDHC3_DATA7       0x17069
+                               MX6SX_PAD_KEY_COL0__GPIO2_IO_10         0x17059 /* CD */
+                               MX6SX_PAD_KEY_ROW0__GPIO2_IO_15         0x17059 /* WP */
+                       >;
+               };
+
+               pinctrl_usdhc3_100mhz: usdhc3grp-100mhz {
+                       fsl,pins = <
+                               MX6SX_PAD_SD3_CMD__USDHC3_CMD           0x170b9
+                               MX6SX_PAD_SD3_CLK__USDHC3_CLK           0x100b9
+                               MX6SX_PAD_SD3_DATA0__USDHC3_DATA0       0x170b9
+                               MX6SX_PAD_SD3_DATA1__USDHC3_DATA1       0x170b9
+                               MX6SX_PAD_SD3_DATA2__USDHC3_DATA2       0x170b9
+                               MX6SX_PAD_SD3_DATA3__USDHC3_DATA3       0x170b9
+                               MX6SX_PAD_SD3_DATA4__USDHC3_DATA4       0x170b9
+                               MX6SX_PAD_SD3_DATA5__USDHC3_DATA5       0x170b9
+                               MX6SX_PAD_SD3_DATA6__USDHC3_DATA6       0x170b9
+                               MX6SX_PAD_SD3_DATA7__USDHC3_DATA7       0x170b9
+                       >;
+               };
+
+               pinctrl_usdhc3_200mhz: usdhc3grp-200mhz {
+                       fsl,pins = <
+                               MX6SX_PAD_SD3_CMD__USDHC3_CMD           0x170f9
+                               MX6SX_PAD_SD3_CLK__USDHC3_CLK           0x100f9
+                               MX6SX_PAD_SD3_DATA0__USDHC3_DATA0       0x170f9
+                               MX6SX_PAD_SD3_DATA1__USDHC3_DATA1       0x170f9
+                               MX6SX_PAD_SD3_DATA2__USDHC3_DATA2       0x170f9
+                               MX6SX_PAD_SD3_DATA3__USDHC3_DATA3       0x170f9
+                               MX6SX_PAD_SD3_DATA4__USDHC3_DATA4       0x170f9
+                               MX6SX_PAD_SD3_DATA5__USDHC3_DATA5       0x170f9
+                               MX6SX_PAD_SD3_DATA6__USDHC3_DATA6       0x170f9
+                               MX6SX_PAD_SD3_DATA7__USDHC3_DATA7       0x170f9
+                       >;
+               };
+
+               pinctrl_usdhc4: usdhc4grp {
+                       fsl,pins = <
+                               MX6SX_PAD_SD4_CMD__USDHC4_CMD           0x17059
+                               MX6SX_PAD_SD4_CLK__USDHC4_CLK           0x10059
+                               MX6SX_PAD_SD4_DATA0__USDHC4_DATA0       0x17059
+                               MX6SX_PAD_SD4_DATA1__USDHC4_DATA1       0x17059
+                               MX6SX_PAD_SD4_DATA2__USDHC4_DATA2       0x17059
+                               MX6SX_PAD_SD4_DATA3__USDHC4_DATA3       0x17059
+                               MX6SX_PAD_SD4_DATA7__GPIO6_IO_21        0x17059 /* CD */
+                               MX6SX_PAD_SD4_DATA6__GPIO6_IO_20        0x17059 /* WP */
+                       >;
+               };
+
+               pinctrl_usdhc4_1: usdhc4grp-1 {
+                       fsl,pins = <
+                               MX6SX_PAD_SD4_CMD__USDHC4_CMD           0x17059
+                               MX6SX_PAD_SD4_CLK__USDHC4_CLK           0x10059
+                               MX6SX_PAD_SD4_DATA0__USDHC4_DATA0       0x17059
+                               MX6SX_PAD_SD4_DATA1__USDHC4_DATA1       0x17059
+                               MX6SX_PAD_SD4_DATA2__USDHC4_DATA2       0x17059
+                               MX6SX_PAD_SD4_DATA3__USDHC4_DATA3       0x17059
+                               MX6SX_PAD_SD4_DATA4__USDHC4_DATA4       0x17059
+                               MX6SX_PAD_SD4_DATA5__USDHC4_DATA5       0x17059
+                               MX6SX_PAD_SD4_DATA6__USDHC4_DATA6       0x17059
+                               MX6SX_PAD_SD4_DATA7__USDHC4_DATA7       0x17059
+                       >;
+               };
+
+               pinctrl_usdhc4_1_100mhz: usdhc4grp-1-100mhz {
+                       fsl,pins = <
+                               MX6SX_PAD_SD4_CMD__USDHC4_CMD           0x170b9
+                               MX6SX_PAD_SD4_CLK__USDHC4_CLK           0x100b9
+                               MX6SX_PAD_SD4_DATA0__USDHC4_DATA0       0x170b9
+                               MX6SX_PAD_SD4_DATA1__USDHC4_DATA1       0x170b9
+                               MX6SX_PAD_SD4_DATA2__USDHC4_DATA2       0x170b9
+                               MX6SX_PAD_SD4_DATA3__USDHC4_DATA3       0x170b9
+                               MX6SX_PAD_SD4_DATA4__USDHC4_DATA4       0x170b9
+                               MX6SX_PAD_SD4_DATA5__USDHC4_DATA5       0x170b9
+                               MX6SX_PAD_SD4_DATA6__USDHC4_DATA6       0x170b9
+                               MX6SX_PAD_SD4_DATA7__USDHC4_DATA7       0x170b9
+                       >;
+               };
+
+               pinctrl_usdhc4_1_200mhz: usdhc4grp-1-200mhz {
+                       fsl,pins = <
+                               MX6SX_PAD_SD4_CMD__USDHC4_CMD           0x170f9
+                               MX6SX_PAD_SD4_CLK__USDHC4_CLK           0x100f9
+                               MX6SX_PAD_SD4_DATA0__USDHC4_DATA0       0x170f9
+                               MX6SX_PAD_SD4_DATA1__USDHC4_DATA1       0x170f9
+                               MX6SX_PAD_SD4_DATA2__USDHC4_DATA2       0x170f9
+                               MX6SX_PAD_SD4_DATA3__USDHC4_DATA3       0x170f9
+                               MX6SX_PAD_SD4_DATA4__USDHC4_DATA4       0x170f9
+                               MX6SX_PAD_SD4_DATA5__USDHC4_DATA5       0x170f9
+                               MX6SX_PAD_SD4_DATA6__USDHC4_DATA6       0x170f9
+                               MX6SX_PAD_SD4_DATA7__USDHC4_DATA7       0x170f9
+                       >;
+               };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6SX_PAD_GPIO1_IO13__WDOG1_WDOG_ANY 0x30b0
+                       >;
+               };
+       };
+};
+
+&vadc {
+       vadc_in = <0>;
+       csi_id = <1>;
+       status = "okay";
+       port {
+               vadc_ep: endpoint {
+                       remote-endpoint = <&csi2_ep>;
+               };
+       };
+};
index 1a473e8..4a77efe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 Freescale Semiconductor, Inc.
+ * Copyright 2014-2016 Freescale Semiconductor, Inc.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
                serial3 = &uart4;
                serial4 = &uart5;
                serial5 = &uart6;
-               spi0 = &ecspi1;
-               spi1 = &ecspi2;
-               spi2 = &ecspi3;
-               spi3 = &ecspi4;
-               spi4 = &ecspi5;
+               spi0 = &qspi1;
+               spi1 = &qspi2;
+               spi2 = &ecspi1;
+               spi3 = &ecspi2;
+               spi4 = &ecspi3;
+               spi5 = &ecspi4;
+               spi6 = &ecspi5;
                usbphy0 = &usbphy1;
                usbphy1 = &usbphy2;
+               lcdif0 = &lcdif1;
+               lcdif1 = &lcdif2;
        };
 
        cpus {
                                 <&clks IMX6SX_CLK_PLL2_PFD2>,
                                 <&clks IMX6SX_CLK_STEP>,
                                 <&clks IMX6SX_CLK_PLL1_SW>,
-                                <&clks IMX6SX_CLK_PLL1_SYS>;
+                                <&clks IMX6SX_CLK_PLL1_SYS>,
+                                <&clks IMX6SX_CLK_PLL1>,
+                                <&clks IMX6SX_PLL1_BYPASS>,
+                                <&clks IMX6SX_PLL1_BYPASS_SRC>;
                        clock-names = "arm", "pll2_pfd2_396m", "step",
-                                     "pll1_sw", "pll1_sys";
+                                     "pll1_sw", "pll1_sys", "pll1",
+                                     "pll1_bypass", "pll1_bypass_src";
                        arm-supply = <&reg_arm>;
                        soc-supply = <&reg_soc>;
                };
        };
 
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x14000000>;
+                       linux,cma-default;
+               };
+       };
+
        intc: interrupt-controller@00a01000 {
                compatible = "arm,cortex-a9-gic";
                #interrupt-cells = <3>;
                interrupt-parent = <&gpc>;
                ranges;
 
+               busfreq {
+                       compatible = "fsl,imx_busfreq";
+                       clocks = <&clks IMX6SX_CLK_PLL2_BUS>, <&clks IMX6SX_CLK_PLL2_PFD2>,
+                               <&clks IMX6SX_CLK_PLL2_198M>, <&clks IMX6SX_CLK_ARM>,
+                               <&clks IMX6SX_CLK_PLL3_USB_OTG>, <&clks IMX6SX_CLK_PERIPH>,
+                               <&clks IMX6SX_CLK_PERIPH_PRE>, <&clks IMX6SX_CLK_PERIPH_CLK2>,
+                               <&clks IMX6SX_CLK_PERIPH_CLK2_SEL>, <&clks IMX6SX_CLK_OSC>,
+                               <&clks IMX6SX_CLK_PLL1_SYS>, <&clks IMX6SX_CLK_PERIPH2>,
+                               <&clks IMX6SX_CLK_AHB>, <&clks IMX6SX_CLK_OCRAM_PODF>,
+                               <&clks IMX6SX_CLK_PLL1_SW>, <&clks IMX6SX_CLK_PERIPH2_PRE>,
+                               <&clks IMX6SX_CLK_PERIPH2_CLK2_SEL>, <&clks IMX6SX_CLK_PERIPH2_CLK2>,
+                               <&clks IMX6SX_CLK_STEP>, <&clks IMX6SX_CLK_MMDC_PODF>,
+                               <&clks IMX6SX_CLK_M4>;
+                       clock-names = "pll2_bus", "pll2_pfd2_396m", "pll2_198m", "arm",
+                                       "pll3_usb_otg", "periph", "periph_pre", "periph_clk2",
+                                       "periph_clk2_sel", "osc", "pll1_sys", "periph2",
+                                       "ahb", "ocram", "pll1_sw", "periph2_pre",
+                                       "periph2_clk2_sel", "periph2_clk2", "step", "mmdc",
+                                       "m4";
+                       fsl,max_ddr_freq = <400000000>;
+               };
+
                pmu {
                        compatible = "arm,cortex-a9-pmu";
                        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
                };
 
-               ocram: sram@00900000 {
+               ocrams: sram@008f8000 {
+                       compatible = "fsl,lpm-sram";
+                       reg = <0x008f8000 0x4000>;
+                       clocks = <&clks IMX6SX_CLK_OCRAM_S>;
+               };
+
+               ocrams_ddr: sram@00900000 {
+                       compatible = "fsl,ddr-lpm-sram";
+                       reg = <0x00900000 0x1000>;
+                       clocks = <&clks IMX6SX_CLK_OCRAM>;
+               };
+
+               ocram: sram@00901000 {
                        compatible = "mmio-sram";
+                       reg = <0x00901000 0x1F000>;
+                       clocks = <&clks IMX6SX_CLK_OCRAM>;
+               };
+
+               ocram_mf: sram-mf@00900000 {
+                       compatible = "fsl,mega-fast-sram";
                        reg = <0x00900000 0x20000>;
                        clocks = <&clks IMX6SX_CLK_OCRAM>;
                };
                        arm,data-latency = <4 2 3>;
                };
 
-               gpu: gpu@01800000 {
-                       compatible = "vivante,gc";
-                       reg = <0x01800000 0x4000>;
-                       interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clks IMX6SX_CLK_GPU>,
-                                <&clks IMX6SX_CLK_GPU>,
-                                <&clks IMX6SX_CLK_GPU>;
-                       clock-names = "bus", "core", "shader";
-               };
-
                dma_apbh: dma-apbh@01804000 {
                        compatible = "fsl,imx6sx-dma-apbh", "fsl,imx28-dma-apbh";
                        reg = <0x01804000 0x2000>;
                        clocks = <&clks IMX6SX_CLK_APBH_DMA>;
                };
 
+               caam_sm: caam-sm@00100000 {
+                       compatible = "fsl,imx6q-caam-sm";
+                       reg = <0x00100000 0x3fff>;
+               };
+
+               irq_sec_vio: caam_secvio {
+                       compatible = "fsl,imx6q-caam-secvio";
+                       interrupts = <0 20 0x04>;
+                       secvio_src = <0x8000001d>;
+                       jtag-tamper = "disabled";
+                       watchdog-tamper = "enabled";
+                       internal-boot-tamper = "enabled";
+                       external-pin-tamper = "disabled";
+               };
+
+               gpu: gpu@01800000 {
+                       compatible = "fsl,imx6sx-gpu", "fsl,imx6q-gpu";
+                       reg = <0x01800000 0x4000>, <0x80000000 0x0>,
+                               <0x0 0x8000000>;
+                       reg-names = "iobase_3d", "phys_baseaddr", "contiguous_mem";
+                       interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "irq_3d";
+                       clocks = <&clks IMX6SX_CLK_GPU_AXI_PODF>, <&clks IMX6SX_CLK_GPU>,
+                               <&clks 0>;
+                       clock-names = "gpu3d_axi_clk", "gpu3d_clk",
+                               "gpu3d_shader_clk";
+                       resets = <&src 0>;
+                       reset-names = "gpu3d";
+                       power-domains = <&gpc 1>;
+               };
+
                gpmi: gpmi-nand@01806000{
                        compatible = "fsl,imx6sx-gpmi-nand";
                        #address-cells = <1>;
                                                      "rxtx1", "rxtx2",
                                                      "rxtx3", "rxtx4",
                                                      "rxtx5", "rxtx6",
-                                                     "rxtx7", "spba";
+                                                     "rxtx7", "dma";
                                        status = "disabled";
                                };
 
                                        clocks = <&clks IMX6SX_CLK_ECSPI1>,
                                                 <&clks IMX6SX_CLK_ECSPI1>;
                                        clock-names = "ipg", "per";
+                                       dmas = <&sdma 3 7 1>, <&sdma 4 7 2>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                                        clocks = <&clks IMX6SX_CLK_ECSPI2>,
                                                 <&clks IMX6SX_CLK_ECSPI2>;
                                        clock-names = "ipg", "per";
+                                       dmas = <&sdma 5 7 1>, <&sdma 6 7 2>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                                        clocks = <&clks IMX6SX_CLK_ECSPI3>,
                                                 <&clks IMX6SX_CLK_ECSPI3>;
                                        clock-names = "ipg", "per";
+                                       dmas = <&sdma 7 7 1>, <&sdma 8 7 2>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                                        clocks = <&clks IMX6SX_CLK_ECSPI4>,
                                                 <&clks IMX6SX_CLK_ECSPI4>;
                                        clock-names = "ipg", "per";
+                                       dmas = <&sdma 9 7 1>, <&sdma 10 7 2>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                                uart1: serial@02020000 {
-                                       compatible = "fsl,imx6sx-uart", "fsl,imx21-uart";
+                                       compatible = "fsl,imx6sx-uart",
+                                                    "fsl,imx6q-uart", "fsl,imx21-uart";
                                        reg = <0x02020000 0x4000>;
                                        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6SX_CLK_UART_IPG>,
                                };
 
                                esai: esai@02024000 {
+                                       compatible = "fsl,imx35-esai";
                                        reg = <0x02024000 0x4000>;
                                        interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6SX_CLK_ESAI_IPG>,
                                                 <&clks IMX6SX_CLK_ESAI_IPG>,
                                                 <&clks IMX6SX_CLK_SPBA>;
                                        clock-names = "core", "mem", "extal",
-                                                     "fsys", "spba";
+                                                     "fsys", "dma";
+                                       dmas = <&sdma 23 21 0>,
+                                              <&sdma 24 21 0>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                                        clocks = <&clks IMX6SX_CLK_SSI1_IPG>,
                                                 <&clks IMX6SX_CLK_SSI1>;
                                        clock-names = "ipg", "baud";
-                                       dmas = <&sdma 37 1 0>, <&sdma 38 1 0>;
+                                       dmas = <&sdma 37 22 0>, <&sdma 38 22 0>;
                                        dma-names = "rx", "tx";
                                        fsl,fifo-depth = <15>;
                                        status = "disabled";
                                        clocks = <&clks IMX6SX_CLK_SSI2_IPG>,
                                                 <&clks IMX6SX_CLK_SSI2>;
                                        clock-names = "ipg", "baud";
-                                       dmas = <&sdma 41 1 0>, <&sdma 42 1 0>;
+                                       dmas = <&sdma 41 22 0>, <&sdma 42 22 0>;
                                        dma-names = "rx", "tx";
                                        fsl,fifo-depth = <15>;
                                        status = "disabled";
                                        clocks = <&clks IMX6SX_CLK_SSI3_IPG>,
                                                 <&clks IMX6SX_CLK_SSI3>;
                                        clock-names = "ipg", "baud";
-                                       dmas = <&sdma 45 1 0>, <&sdma 46 1 0>;
+                                       dmas = <&sdma 45 22 0>, <&sdma 46 22 0>;
                                        dma-names = "rx", "tx";
                                        fsl,fifo-depth = <15>;
                                        status = "disabled";
                                };
 
                                asrc: asrc@02034000 {
+                                       compatible = "fsl,imx53-asrc";
                                        reg = <0x02034000 0x4000>;
                                        interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-                                       clocks = <&clks IMX6SX_CLK_ASRC_MEM>,
-                                                <&clks IMX6SX_CLK_ASRC_IPG>,
-                                                <&clks IMX6SX_CLK_SPDIF>,
-                                                <&clks IMX6SX_CLK_SPBA>;
-                                       clock-names = "mem", "ipg", "asrck", "spba";
-                                       dmas = <&sdma 17 20 1>, <&sdma 18 20 1>,
-                                              <&sdma 19 20 1>, <&sdma 20 20 1>,
-                                              <&sdma 21 20 1>, <&sdma 22 20 1>;
+                                       clocks = <&clks IMX6SX_CLK_ASRC_IPG>,
+                                               <&clks IMX6SX_CLK_ASRC_MEM>, <&clks 0>,
+                                               <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
+                                               <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
+                                               <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
+                                               <&clks IMX6SX_CLK_SPDIF>, <&clks 0>, <&clks 0>,
+                                               <&clks IMX6SX_CLK_SPBA>;
+                                       clock-names = "mem", "ipg", "asrck_0",
+                                               "asrck_1", "asrck_2", "asrck_3", "asrck_4",
+                                               "asrck_5", "asrck_6", "asrck_7", "asrck_8",
+                                               "asrck_9", "asrck_a", "asrck_b", "asrck_c",
+                                               "asrck_d", "asrck_e", "asrck_f", "dma";
+                                       dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>,
+                                               <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>;
                                        dma-names = "rxa", "rxb", "rxc",
                                                    "txa", "txb", "txc";
+                                       fsl,asrc-rate  = <48000>;
+                                       fsl,asrc-width = <16>;
                                        status = "okay";
                                };
                        };
                                clocks = <&clks IMX6SX_CLK_CAN1_IPG>,
                                         <&clks IMX6SX_CLK_CAN1_SERIAL>;
                                clock-names = "ipg", "per";
+                               stop-mode = <&gpr 0x10 1 0x10 17>;
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX6SX_CLK_CAN2_IPG>,
                                         <&clks IMX6SX_CLK_CAN2_SERIAL>;
                                clock-names = "ipg", "per";
+                               stop-mode = <&gpr 0x10 2 0x10 18>;
                                status = "disabled";
                        };
 
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
-                               gpio-ranges = <&iomuxc 0 5 26>;
                        };
 
                        gpio2: gpio@020a0000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
-                               gpio-ranges = <&iomuxc 0 31 20>;
                        };
 
                        gpio3: gpio@020a4000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
-                               gpio-ranges = <&iomuxc 0 51 29>;
                        };
 
                        gpio4: gpio@020a8000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
-                               gpio-ranges = <&iomuxc 0 80 32>;
                        };
 
                        gpio5: gpio@020ac000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
-                               gpio-ranges = <&iomuxc 0 112 24>;
                        };
 
                        gpio6: gpio@020b0000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
-                               gpio-ranges = <&iomuxc 0 136 12>, <&iomuxc 12 158 11>;
                        };
 
                        gpio7: gpio@020b4000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
-                               gpio-ranges = <&iomuxc 0 148 10>, <&iomuxc 10 169 2>;
+                       };
+
+                       mqs: mqs {
+                               compatible = "fsl,imx6sx-mqs";
+                               gpr = <&gpr>;
+                               status = "disabled";
                        };
 
                        kpp: kpp@020b8000 {
                                             <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
 
-                               regulator-1p1 {
+                               regulator-1p1@110 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd1p1";
                                        regulator-min-microvolt = <800000>;
                                        anatop-min-bit-val = <4>;
                                        anatop-min-voltage = <800000>;
                                        anatop-max-voltage = <1375000>;
+                                       anatop-enable-bit = <0>;
                                };
 
-                               regulator-3p0 {
+                               reg_3p0: regulator-3p0@120 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd3p0";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <3150000>;
-                                       regulator-always-on;
+                                       regulator-min-microvolt = <2625000>;
+                                       regulator-max-microvolt = <3400000>;
                                        anatop-reg-offset = <0x120>;
                                        anatop-vol-bit-shift = <8>;
                                        anatop-vol-bit-width = <5>;
                                        anatop-min-bit-val = <0>;
                                        anatop-min-voltage = <2625000>;
                                        anatop-max-voltage = <3400000>;
+                                       anatop-enable-bit = <0>;
                                };
 
-                               regulator-2p5 {
+                               regulator-2p5@130 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd2p5";
                                        regulator-min-microvolt = <2100000>;
                                        anatop-min-bit-val = <0>;
                                        anatop-min-voltage = <2100000>;
                                        anatop-max-voltage = <2875000>;
+                                       anatop-enable-bit = <0>;
                                };
 
-                               reg_arm: regulator-vddcore {
+                               reg_arm: regulator-vddcore@140 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddarm";
                                        regulator-min-microvolt = <725000>;
                                        anatop-max-voltage = <1450000>;
                                };
 
-                               reg_pcie: regulator-vddpcie {
+                               reg_pcie_phy: regulator-vddpcie-phy@140 {
                                        compatible = "fsl,anatop-regulator";
-                                       regulator-name = "vddpcie";
+                                       regulator-name = "vddpcie-phy";
                                        regulator-min-microvolt = <725000>;
                                        regulator-max-microvolt = <1450000>;
                                        anatop-reg-offset = <0x140>;
                                        anatop-max-voltage = <1450000>;
                                };
 
-                               reg_soc: regulator-vddsoc {
+                               reg_soc: regulator-vddsoc@140 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddsoc";
                                        regulator-min-microvolt = <725000>;
                                reg = <0x020c9000 0x1000>;
                                interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_USBPHY1>;
+                               phy-3p0-supply = <&reg_3p0>;
                                fsl,anatop = <&anatop>;
                        };
 
                                reg = <0x020ca000 0x1000>;
                                interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_USBPHY2>;
+                               phy-3p0-supply = <&reg_3p0>;
                                fsl,anatop = <&anatop>;
                        };
 
+                       usbphy_nop1: usbphy_nop1 {
+                               compatible = "usb-nop-xceiv";
+                               clocks = <&clks IMX6SX_CLK_USBPHY1>;
+                               clock-names = "main_clk";
+                       };
+
+                       caam_snvs: caam-snvs@020cc000 {
+                               compatible = "fsl,imx6q-caam-snvs";
+                               reg = <0x020cc000 0x4000>;
+                       };
+
                        snvs: snvs@020cc000 {
                                compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
                                reg = <0x020cc000 0x4000>;
                                        compatible = "syscon-poweroff";
                                        regmap = <&snvs>;
                                        offset = <0x38>;
-                                       mask = <0x60>;
+                                       mask = <0x61>;
                                        status = "disabled";
                                };
 
                                        regmap = <&snvs>;
                                        interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
                                        linux,keycode = <KEY_POWER>;
-                                       wakeup-source;
+                                       wakeup;
                                };
                        };
 
                                #interrupt-cells = <3>;
                                interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&intc>;
+                               fsl,mf-mix-wakeup-irq = <0x7c00000 0x3d00 0x0 0x400240>;
+                               clocks = <&clks IMX6SX_CLK_GPU>, <&clks IMX6SX_CLK_IPG>,
+                                       <&clks IMX6SX_CLK_PXP_AXI>, <&clks IMX6SX_CLK_DISPLAY_AXI>,
+                                       <&clks IMX6SX_CLK_LCDIF1_PIX>, <&clks IMX6SX_CLK_LCDIF_APB>,
+                                       <&clks IMX6SX_CLK_LCDIF2_PIX>, <&clks IMX6SX_CLK_CSI>,
+                                       <&clks IMX6SX_CLK_VADC>;
+                               clock-names = "gpu3d_core", "ipg", "pxp_axi", "disp_axi", "lcdif1_pix",
+                                               "lcdif_axi", "lcdif2_pix", "csi_mclk";
+                               pcie-phy-supply = <&reg_pcie_phy>;
+                               #power-domain-cells = <1>;
                        };
 
                        iomuxc: iomuxc@020e0000 {
                                reg = <0x020e4000 0x4000>;
                        };
 
+                       ldb: ldb@020e0014 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx6sx-ldb", "fsl,imx53-ldb";
+                               gpr = <&gpr>;
+                               status = "disabled";
+                               clocks = <&clks IMX6SX_CLK_LDB_DI0>,
+                                        <&clks IMX6SX_CLK_LCDIF1_SEL>,
+                                        <&clks IMX6SX_CLK_LCDIF2_SEL>,
+                                        <&clks IMX6SX_CLK_LDB_DI0_DIV_3_5>,
+                                        <&clks IMX6SX_CLK_LDB_DI0_DIV_7>,
+                                        <&clks IMX6SX_CLK_LDB_DI0_DIV_SEL>;
+                               clock-names = "ldb_di0",
+                                             "di0_sel",
+                                             "di1_sel",
+                                             "ldb_di0_div_3_5",
+                                             "ldb_di0_div_7",
+                                             "ldb_di0_div_sel";
+                               lvds-channel@0 {
+                                       reg = <0>;
+                                       status = "disabled";
+                               };
+                       };
+
                        sdma: sdma@020ec000 {
-                               compatible = "fsl,imx6sx-sdma", "fsl,imx6q-sdma";
+                               compatible = "fsl,imx6sx-sdma", "fsl,imx35-sdma";
                                reg = <0x020ec000 0x4000>;
                                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_SDMA>,
 
                        crypto: caam@2100000 {
                                compatible = "fsl,sec-v4.0";
-                               fsl,sec-era = <4>;
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               reg = <0x2100000 0x10000>;
-                               ranges = <0 0x2100000 0x10000>;
-                               interrupt-parent = <&intc>;
-                               clocks = <&clks IMX6SX_CLK_CAAM_MEM>,
-                                        <&clks IMX6SX_CLK_CAAM_ACLK>,
-                                        <&clks IMX6SX_CLK_CAAM_IPG>,
-                                        <&clks IMX6SX_CLK_EIM_SLOW>;
-                               clock-names = "mem", "aclk", "ipg", "emi_slow";
+                               reg = <0x2100000 0x40000>;
+                               ranges = <0 0x2100000 0x40000>;
+                               clocks = <&clks IMX6SX_CLK_CAAM_MEM>, <&clks IMX6SX_CLK_CAAM_ACLK>,
+                                        <&clks IMX6SX_CLK_CAAM_IPG> ,<&clks IMX6SX_CLK_EIM_SLOW>;
+                               clock-names = "caam_mem", "caam_aclk", "caam_ipg", "caam_emi_slow";
 
                                sec_jr0: jr0@1000 {
                                        compatible = "fsl,sec-v4.0-job-ring";
                                clocks = <&clks IMX6SX_CLK_USBOH3>;
                                fsl,usbmisc = <&usbmisc 2>;
                                phy_type = "hsic";
+                               fsl,usbphy = <&usbphy_nop1>;
                                fsl,anatop = <&anatop>;
                                dr_mode = "host";
                                ahb-burst-config = <0x0>;
                                              "enet_clk_ref", "enet_out";
                                fsl,num-tx-queues=<3>;
                                fsl,num-rx-queues=<3>;
+                               stop-mode = <&gpr 0x10 3>;
+                               fsl,wakeup_irq = <0>;
                                status = "disabled";
                         };
 
                        mlb: mlb@0218c000 {
+                               compatible = "fsl,imx6sx-mlb50";
                                reg = <0x0218c000 0x4000>;
                                interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_MLB>;
+                               clock-names = "mlb";
+                               iram = <&ocram>;
                                status = "disabled";
                        };
 
                                         <&clks IMX6SX_CLK_ENET_PTP>;
                                clock-names = "ipg", "ahb", "ptp",
                                              "enet_clk_ref", "enet_out";
+                               fsl,num-tx-queues=<3>;
+                               fsl,num-rx-queues=<3>;
+                               stop-mode = <&gpr 0x10 4>;
+                               fsl,wakeup_irq = <0>;
                                status = "disabled";
                        };
 
                        };
 
                        ocotp: ocotp@021bc000 {
-                               compatible = "fsl,imx6sx-ocotp", "syscon";
+                               compatible = "fsl,imx6sx-ocotp", "fsl,imx6q-ocotp", "syscon";
                                reg = <0x021bc000 0x4000>;
                                clocks = <&clks IMX6SX_CLK_OCOTP>;
                        };
 
+                       romcp@021ac000 {
+                                       compatible = "fsl,imx6sx-romcp", "syscon";
+                                       reg = <0x021ac000 0x4000>;
+                       };
+
                        sai1: sai@021d4000 {
                                compatible = "fsl,imx6sx-sai";
                                reg = <0x021d4000 0x4000>;
                                interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_SAI1_IPG>,
+                                        <&clks IMX6SX_CLK_DUMMY>,
                                         <&clks IMX6SX_CLK_SAI1>,
                                         <&clks 0>, <&clks 0>;
-                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
+                               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
                                dma-names = "rx", "tx";
                                dmas = <&sdma 31 24 0>, <&sdma 32 24 0>;
+                               dma-source = <&gpr 0 15 0 16>;
                                status = "disabled";
                        };
 
                                reg = <0x021dc000 0x4000>;
                                interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_SAI2_IPG>,
+                                        <&clks IMX6SX_CLK_DUMMY>,
                                         <&clks IMX6SX_CLK_SAI2>,
                                         <&clks 0>, <&clks 0>;
-                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
+                               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
                                dma-names = "rx", "tx";
-                               dmas = <&sdma 33 24 0>, <&sdma 34 24 0>;
+                               dmas = <&sdma 33 23 0>, <&sdma 34 23 0>;
+                               dma-source = <&gpr 0 17 0 18>;
                                status = "disabled";
                        };
 
                                status = "disabled";
                        };
 
+                       qspi_m4: qspi-m4 {
+                               compatible = "fsl,imx6sx-qspi-m4-restore";
+                               reg = <0x021e4000 0x4000>;
+                               status = "disabled";
+                       };
+
                        uart2: serial@021e8000 {
-                               compatible = "fsl,imx6sx-uart", "fsl,imx21-uart";
+                               compatible = "fsl,imx6sx-uart",
+                                            "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021e8000 0x4000>;
                                interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_UART_IPG>,
                        };
 
                        uart3: serial@021ec000 {
-                               compatible = "fsl,imx6sx-uart", "fsl,imx21-uart";
+                               compatible = "fsl,imx6sx-uart",
+                                            "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021ec000 0x4000>;
                                interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_UART_IPG>,
                        };
 
                        uart4: serial@021f0000 {
-                               compatible = "fsl,imx6sx-uart", "fsl,imx21-uart";
+                               compatible = "fsl,imx6sx-uart",
+                                            "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021f0000 0x4000>;
                                interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_UART_IPG>,
                        };
 
                        uart5: serial@021f4000 {
-                               compatible = "fsl,imx6sx-uart", "fsl,imx21-uart";
+                               compatible = "fsl,imx6sx-uart",
+                                            "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021f4000 0x4000>;
                                interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_UART_IPG>,
                                clocks = <&clks IMX6SX_CLK_I2C4>;
                                status = "disabled";
                        };
+
+                       qosc: qosc@021fc000 {
+                               compatible = "fsl,imx6sx-qosc";
+                               reg = <0x021fc000 0x4000>;
+                       };
                };
 
                aips3: aips-bus@02200000 {
                                ranges;
 
                                csi1: csi@02214000 {
+                                       compatible = "fsl,imx6s-csi";
                                        reg = <0x02214000 0x4000>;
                                        interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6SX_CLK_DISPLAY_AXI>,
                                                 <&clks IMX6SX_CLK_CSI>,
                                                 <&clks IMX6SX_CLK_DCIC1>;
-                                       clock-names = "disp-axi", "csi_mclk", "dcic";
+                                       clock-names = "disp-axi", "csi_mclk", "disp_dcic";
+                                       power-domains = <&gpc 2>;
+                                       status = "disabled";
+                               };
+
+                               dcic1: dcic@0220c000 {
+                                       compatible = "fsl,imx6sx-dcic";
+                                       reg = <0x0220c000 0x4000>;
+                                       interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&clks IMX6SX_CLK_DCIC1>,
+                                               <&clks IMX6SX_CLK_DISPLAY_AXI>;
+                                       clock-names = "dcic", "disp-axi";
+                                       gpr = <&gpr>;
+                                       status = "disabled";
+                               };
+
+                               dcic2: dcic@02210000 {
+                                       compatible = "fsl,imx6sx-dcic";
+                                       reg = <0x02210000 0x4000>;
+                                       interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&clks IMX6SX_CLK_DCIC2>,
+                                               <&clks IMX6SX_CLK_DISPLAY_AXI>;
+                                       clock-names = "dcic", "disp-axi";
+                                       gpr = <&gpr>;
                                        status = "disabled";
                                };
 
                                pxp: pxp@02218000 {
+                                       compatible = "fsl,imx6sx-pxp-dma", "fsl,imx6sl-pxp-dma", "fsl,imx6dl-pxp-dma";
                                        reg = <0x02218000 0x4000>;
                                        interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6SX_CLK_PXP_AXI>,
                                                 <&clks IMX6SX_CLK_DISPLAY_AXI>;
                                        clock-names = "pxp-axi", "disp-axi";
+                                       power-domains = <&gpc 2>;
                                        status = "disabled";
                                };
 
                                csi2: csi@0221c000 {
+                                       compatible = "fsl,imx6s-csi";
                                        reg = <0x0221c000 0x4000>;
                                        interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6SX_CLK_DISPLAY_AXI>,
                                                 <&clks IMX6SX_CLK_CSI>,
                                                 <&clks IMX6SX_CLK_DCIC2>;
-                                       clock-names = "disp-axi", "csi_mclk", "dcic";
+                                       clock-names = "disp-axi", "csi_mclk", "disp_dcic";
+                                       power-domains = <&gpc 2>;
                                        status = "disabled";
                                };
 
                                                 <&clks IMX6SX_CLK_LCDIF_APB>,
                                                 <&clks IMX6SX_CLK_DISPLAY_AXI>;
                                        clock-names = "pix", "axi", "disp_axi";
+                                       power-domains = <&gpc 2>;
                                        status = "disabled";
                                };
 
                                                 <&clks IMX6SX_CLK_LCDIF_APB>,
                                                 <&clks IMX6SX_CLK_DISPLAY_AXI>;
                                        clock-names = "pix", "axi", "disp_axi";
+                                       power-domains = <&gpc 2>;
                                        status = "disabled";
                                };
 
                                vadc: vadc@02228000 {
+                                       compatible = "fsl,imx6sx-vadc";
                                        reg = <0x02228000 0x4000>, <0x0222c000 0x4000>;
                                        reg-names = "vadc-vafe", "vadc-vdec";
                                        clocks = <&clks IMX6SX_CLK_VADC>,
                                                 <&clks IMX6SX_CLK_CSI>;
                                        clock-names = "vadc", "csi";
+                                       power-domains = <&gpc 2>;
+                                       gpr = <&gpr>;
                                        status = "disabled";
                                };
                        };
                                reg = <0x02280000 0x4000>;
                                interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_IPG>;
+                               num-channels = <4>;
                                clock-names = "adc";
-                               fsl,adck-max-frequency = <30000000>, <40000000>,
-                                                        <20000000>;
                                status = "disabled";
                         };
 
                                reg = <0x02284000 0x4000>;
                                interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_IPG>;
+                               num-channels = <4>;
                                clock-names = "adc";
-                               fsl,adck-max-frequency = <30000000>, <40000000>,
-                                                        <20000000>;
                                status = "disabled";
                         };
 
                                status = "disabled";
                        };
 
+                       sema4: sema4@02290000 { /* sema4 */
+                               compatible = "fsl,imx6sx-sema4";
+                               reg = <0x02290000 0x4000>;
+                               interrupts = <0 116 0x04>;
+                               status = "okay";
+                       };
+
+                       mu: mu@02294000 { /* mu */
+                               compatible = "fsl,imx6sx-mu";
+                               reg = <0x02294000 0x4000>;
+                               interrupts = <0 90 0x04>;
+                               status = "okay";
+                       };
+
+                       rpmsg: rpmsg{
+                               compatible = "fsl,imx6sx-rpmsg";
+                               status = "disabled";
+                       };
+
                        uart6: serial@022a0000 {
-                               compatible = "fsl,imx6sx-uart", "fsl,imx21-uart";
+                               compatible = "fsl,imx6sx-uart",
+                                            "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x022a0000 0x4000>;
                                interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_UART_IPG>,
 
                pcie: pcie@0x08000000 {
                        compatible = "fsl,imx6sx-pcie", "snps,dw-pcie";
-                       reg = <0x08ffc000 0x4000>; /* DBI */
+                       reg = <0x08ffc000 0x4000>, <0x08f00000 0x80000>;
+                       reg-names = "dbi", "config";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
-                                 /* configuration space */
-                       ranges = <0x00000800 0 0x08f00000 0x08f00000 0 0x00080000
-                                 /* downstream I/O */
-                                 0x81000000 0 0          0x08f80000 0 0x00010000
-                                 /* non-prefetchable memory */
-                                 0x82000000 0 0x08000000 0x08000000 0 0x00f00000>;
+                       ranges = <0x81000000 0 0          0x08f80000 0 0x00010000 /* downstream I/O */
+                                 0x82000000 0 0x08000000 0x08000000 0 0x00f00000>; /* non-prefetchable memory */
                        num-lanes = <1>;
-                       interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clks IMX6SX_CLK_PCIE_REF_125M>,
-                                <&clks IMX6SX_CLK_PCIE_AXI>,
+                       interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &intc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &intc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clks IMX6SX_CLK_PCIE_AXI>,
                                 <&clks IMX6SX_CLK_LVDS1_OUT>,
+                                <&clks IMX6SX_CLK_PCIE_REF_125M>,
                                 <&clks IMX6SX_CLK_DISPLAY_AXI>;
-                       clock-names = "pcie_ref_125m", "pcie_axi",
-                                     "lvds_gate", "display_axi";
+                       clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_inbound_axi";
+                       pcie-phy-supply = <&reg_pcie_phy>;
+                       power-domains = <&gpc 2>;
                        status = "disabled";
                };
        };
-
-       gpu-subsystem {
-               compatible = "fsl,imx-gpu-subsystem";
-               cores = <&gpu>;
-       };
 };
index 36f0324..a248f92 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 Freescale Semiconductor, Inc.
+ * Copyright (C) 2014-2015 Freescale Semiconductor, Inc.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
 #define IMX6SX_PLL6_BYPASS             262
 #define IMX6SX_PLL7_BYPASS             263
 #define IMX6SX_CLK_SPDIF_GCLK          264
-#define IMX6SX_CLK_CLK_END             265
+#define IMX6SX_CLK_LVDS2_SEL           265
+#define IMX6SX_CLK_LVDS2_OUT           266
+#define IMX6SX_CLK_LVDS2_IN            267
+#define IMX6SX_CLK_ANACLK2             268
+#define IMX6SX_CLK_CLK_END             269
 
 #endif /* __DT_BINDINGS_CLOCK_IMX6SX_H */