]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'imx-mxs/for-next'
authorThierry Reding <treding@nvidia.com>
Thu, 24 Oct 2013 13:00:55 +0000 (15:00 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 24 Oct 2013 13:00:55 +0000 (15:00 +0200)
Conflicts:
arch/arm/mach-imx/mach-imx6q.c

87 files changed:
Documentation/devicetree/bindings/clock/imx6q-clock.txt
Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt
arch/arm/Kconfig.debug
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/imx23-evk.dts
arch/arm/boot/dts/imx23-olinuxino.dts
arch/arm/boot/dts/imx23-pinfunc.h [new file with mode: 0644]
arch/arm/boot/dts/imx23-stmp378x_devb.dts
arch/arm/boot/dts/imx23.dtsi
arch/arm/boot/dts/imx27-apf27dev.dts
arch/arm/boot/dts/imx27.dtsi
arch/arm/boot/dts/imx28-apf28.dts
arch/arm/boot/dts/imx28-apf28dev.dts
arch/arm/boot/dts/imx28-apx4devkit.dts
arch/arm/boot/dts/imx28-cfa10036.dts
arch/arm/boot/dts/imx28-cfa10037.dts
arch/arm/boot/dts/imx28-cfa10049.dts
arch/arm/boot/dts/imx28-cfa10055.dts
arch/arm/boot/dts/imx28-cfa10056.dts
arch/arm/boot/dts/imx28-cfa10057.dts
arch/arm/boot/dts/imx28-cfa10058.dts
arch/arm/boot/dts/imx28-evk.dts
arch/arm/boot/dts/imx28-m28cu3.dts [new file with mode: 0644]
arch/arm/boot/dts/imx28-m28evk.dts
arch/arm/boot/dts/imx28-pinfunc.h [new file with mode: 0644]
arch/arm/boot/dts/imx28-sps1.dts
arch/arm/boot/dts/imx28-tx28.dts
arch/arm/boot/dts/imx28.dtsi
arch/arm/boot/dts/imx51-apf51dev.dts
arch/arm/boot/dts/imx51-babbage.dts
arch/arm/boot/dts/imx51.dtsi
arch/arm/boot/dts/imx53-qsb.dts
arch/arm/boot/dts/imx53.dtsi
arch/arm/boot/dts/imx6dl-gw51xx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-gw52xx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-gw53xx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-gw54xx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-gw51xx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-gw52xx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-gw53xx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-gw5400-a.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-gw54xx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-pinfunc.h
arch/arm/boot/dts/imx6q-sabrelite.dts
arch/arm/boot/dts/imx6q-udoo.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-gw51xx.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-gw53xx.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
arch/arm/boot/dts/imx6qdl-sabresd.dtsi
arch/arm/boot/dts/imx6qdl-wandboard.dtsi
arch/arm/boot/dts/imx6qdl.dtsi
arch/arm/boot/dts/imx6sl-evk.dts
arch/arm/boot/dts/imx6sl.dtsi
arch/arm/boot/dts/mxs-pinfunc.h [new file with mode: 0644]
arch/arm/boot/dts/vf610-cosmic.dts [new file with mode: 0644]
arch/arm/boot/dts/vf610-twr.dts
arch/arm/boot/dts/vf610.dtsi
arch/arm/configs/imx_v6_v7_defconfig
arch/arm/configs/mxs_defconfig
arch/arm/include/debug/vf.S [new file with mode: 0644]
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/Makefile
arch/arm/mach-imx/anatop.c
arch/arm/mach-imx/clk-imx51-imx53.c
arch/arm/mach-imx/clk-imx6q.c
arch/arm/mach-imx/clk-imx6sl.c
arch/arm/mach-imx/common.h
arch/arm/mach-imx/cpu.c
arch/arm/mach-imx/epit.c
arch/arm/mach-imx/gpc.c
arch/arm/mach-imx/hotplug.c
arch/arm/mach-imx/mach-armadillo5x0.c
arch/arm/mach-imx/mach-imx6q.c
arch/arm/mach-imx/mach-imx6sl.c
arch/arm/mach-imx/mach-mx31_3ds.c
arch/arm/mach-imx/mach-pcm037.c
arch/arm/mach-imx/mm-imx5.c
arch/arm/mach-imx/mx31lilly-db.c
arch/arm/mach-imx/mxc.h
arch/arm/mach-imx/pm-imx6q.c
arch/arm/mach-imx/src.c
arch/arm/mach-imx/system.c
arch/arm/mach-imx/time.c
arch/arm/mach-mxs/mach-mxs.c
include/linux/mfd/syscon/imx6q-iomuxc-gpr.h

index 5a90a724b52069c793b65c8d20899cc304818abd..6aab72bf67ea96280796eda3251e4a9e634f0a92 100644 (file)
@@ -215,6 +215,11 @@ clocks and IDs.
        cko2                    200
        cko                     201
        vdoa                    202
+       pll4_audio_div          203
+       lvds1_sel               204
+       lvds2_sel               205
+       lvds1_gate              206
+       lvds2_gate              207
 
 Examples:
 
index 3077370c89af75c22b60fd59f83ea1dc841eea37..1e70a8aff2600ec72eba7e5f707da425aa19fc4e 100644 (file)
@@ -59,16 +59,16 @@ Required subnode-properties:
 
 Optional subnode-properties:
 - fsl,drive-strength: Integer.
-    0: mA
-    1: mA
-    2: 12 mA
-    3: 16 mA
+    0: MXS_DRIVE_4mA
+    1: MXS_DRIVE_8mA
+    2: MXS_DRIVE_12mA
+    3: MXS_DRIVE_16mA
 - fsl,voltage: Integer.
-    0: 1.8 V
-    1: 3.3 V
+    0: MXS_VOLTAGE_LOW  - 1.8 V
+    1: MXS_VOLTAGE_HIGH - 3.3 V
 - fsl,pull-up: Integer.
-    0: Disable the internal pull-up
-    1: Enable the internal pull-up
+    0: MXS_PULL_DISABLE - Disable the internal pull-up
+    1: MXS_PULL_ENABLE  - Enable the internal pull-up
 
 Note that when enabling the pull-up, the internal pad keeper gets disabled.
 Also, some pins doesn't have a pull up, in that case, setting the fsl,pull-up
@@ -85,23 +85,32 @@ pinctrl@80018000 {
        mmc0_8bit_pins_a: mmc0-8bit@0 {
                reg = <0>;
                fsl,pinmux-ids = <
-                       0x2000 0x2010 0x2020 0x2030
-                       0x2040 0x2050 0x2060 0x2070
-                       0x2080 0x2090 0x20a0>;
-               fsl,drive-strength = <1>;
-               fsl,voltage = <1>;
-               fsl,pull-up = <1>;
+                       MX28_PAD_SSP0_DATA0__SSP0_D0
+                       MX28_PAD_SSP0_DATA1__SSP0_D1
+                       MX28_PAD_SSP0_DATA2__SSP0_D2
+                       MX28_PAD_SSP0_DATA3__SSP0_D3
+                       MX28_PAD_SSP0_DATA4__SSP0_D4
+                       MX28_PAD_SSP0_DATA5__SSP0_D5
+                       MX28_PAD_SSP0_DATA6__SSP0_D6
+                       MX28_PAD_SSP0_DATA7__SSP0_D7
+                       MX28_PAD_SSP0_CMD__SSP0_CMD
+                       MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT
+                       MX28_PAD_SSP0_SCK__SSP0_SCK
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_ENABLE>;
        };
 
        mmc_cd_cfg: mmc-cd-cfg {
-               fsl,pinmux-ids = <0x2090>;
-               fsl,pull-up = <0>;
+               fsl,pinmux-ids = <MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
        };
 
        mmc_sck_cfg: mmc-sck-cfg {
-               fsl,pinmux-ids = <0x20a0>;
-               fsl,drive-strength = <2>;
-               fsl,pull-up = <0>;
+               fsl,pinmux-ids = <MX28_PAD_SSP0_SCK__SSP0_SCK>;
+               fsl,drive-strength = <MXS_DRIVE_12mA>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
        };
 };
 
@@ -112,811 +121,7 @@ adjusting the configuration for pins card-detection and clock from what group
 node mmc0-8bit defines.  Only the configuration properties to be adjusted need
 to be listed in the config nodes.
 
-Valid values for i.MX28 pinmux-id:
-
-pinmux                                         id
-------                                         --
-MX28_PAD_GPMI_D00__GPMI_D0                     0x0000
-MX28_PAD_GPMI_D01__GPMI_D1                     0x0010
-MX28_PAD_GPMI_D02__GPMI_D2                     0x0020
-MX28_PAD_GPMI_D03__GPMI_D3                     0x0030
-MX28_PAD_GPMI_D04__GPMI_D4                     0x0040
-MX28_PAD_GPMI_D05__GPMI_D5                     0x0050
-MX28_PAD_GPMI_D06__GPMI_D6                     0x0060
-MX28_PAD_GPMI_D07__GPMI_D7                     0x0070
-MX28_PAD_GPMI_CE0N__GPMI_CE0N                  0x0100
-MX28_PAD_GPMI_CE1N__GPMI_CE1N                  0x0110
-MX28_PAD_GPMI_CE2N__GPMI_CE2N                  0x0120
-MX28_PAD_GPMI_CE3N__GPMI_CE3N                  0x0130
-MX28_PAD_GPMI_RDY0__GPMI_READY0                        0x0140
-MX28_PAD_GPMI_RDY1__GPMI_READY1                        0x0150
-MX28_PAD_GPMI_RDY2__GPMI_READY2                        0x0160
-MX28_PAD_GPMI_RDY3__GPMI_READY3                        0x0170
-MX28_PAD_GPMI_RDN__GPMI_RDN                    0x0180
-MX28_PAD_GPMI_WRN__GPMI_WRN                    0x0190
-MX28_PAD_GPMI_ALE__GPMI_ALE                    0x01a0
-MX28_PAD_GPMI_CLE__GPMI_CLE                    0x01b0
-MX28_PAD_GPMI_RESETN__GPMI_RESETN              0x01c0
-MX28_PAD_LCD_D00__LCD_D0                       0x1000
-MX28_PAD_LCD_D01__LCD_D1                       0x1010
-MX28_PAD_LCD_D02__LCD_D2                       0x1020
-MX28_PAD_LCD_D03__LCD_D3                       0x1030
-MX28_PAD_LCD_D04__LCD_D4                       0x1040
-MX28_PAD_LCD_D05__LCD_D5                       0x1050
-MX28_PAD_LCD_D06__LCD_D6                       0x1060
-MX28_PAD_LCD_D07__LCD_D7                       0x1070
-MX28_PAD_LCD_D08__LCD_D8                       0x1080
-MX28_PAD_LCD_D09__LCD_D9                       0x1090
-MX28_PAD_LCD_D10__LCD_D10                      0x10a0
-MX28_PAD_LCD_D11__LCD_D11                      0x10b0
-MX28_PAD_LCD_D12__LCD_D12                      0x10c0
-MX28_PAD_LCD_D13__LCD_D13                      0x10d0
-MX28_PAD_LCD_D14__LCD_D14                      0x10e0
-MX28_PAD_LCD_D15__LCD_D15                      0x10f0
-MX28_PAD_LCD_D16__LCD_D16                      0x1100
-MX28_PAD_LCD_D17__LCD_D17                      0x1110
-MX28_PAD_LCD_D18__LCD_D18                      0x1120
-MX28_PAD_LCD_D19__LCD_D19                      0x1130
-MX28_PAD_LCD_D20__LCD_D20                      0x1140
-MX28_PAD_LCD_D21__LCD_D21                      0x1150
-MX28_PAD_LCD_D22__LCD_D22                      0x1160
-MX28_PAD_LCD_D23__LCD_D23                      0x1170
-MX28_PAD_LCD_RD_E__LCD_RD_E                    0x1180
-MX28_PAD_LCD_WR_RWN__LCD_WR_RWN                        0x1190
-MX28_PAD_LCD_RS__LCD_RS                                0x11a0
-MX28_PAD_LCD_CS__LCD_CS                                0x11b0
-MX28_PAD_LCD_VSYNC__LCD_VSYNC                  0x11c0
-MX28_PAD_LCD_HSYNC__LCD_HSYNC                  0x11d0
-MX28_PAD_LCD_DOTCLK__LCD_DOTCLK                        0x11e0
-MX28_PAD_LCD_ENABLE__LCD_ENABLE                        0x11f0
-MX28_PAD_SSP0_DATA0__SSP0_D0                   0x2000
-MX28_PAD_SSP0_DATA1__SSP0_D1                   0x2010
-MX28_PAD_SSP0_DATA2__SSP0_D2                   0x2020
-MX28_PAD_SSP0_DATA3__SSP0_D3                   0x2030
-MX28_PAD_SSP0_DATA4__SSP0_D4                   0x2040
-MX28_PAD_SSP0_DATA5__SSP0_D5                   0x2050
-MX28_PAD_SSP0_DATA6__SSP0_D6                   0x2060
-MX28_PAD_SSP0_DATA7__SSP0_D7                   0x2070
-MX28_PAD_SSP0_CMD__SSP0_CMD                    0x2080
-MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT         0x2090
-MX28_PAD_SSP0_SCK__SSP0_SCK                    0x20a0
-MX28_PAD_SSP1_SCK__SSP1_SCK                    0x20c0
-MX28_PAD_SSP1_CMD__SSP1_CMD                    0x20d0
-MX28_PAD_SSP1_DATA0__SSP1_D0                   0x20e0
-MX28_PAD_SSP1_DATA3__SSP1_D3                   0x20f0
-MX28_PAD_SSP2_SCK__SSP2_SCK                    0x2100
-MX28_PAD_SSP2_MOSI__SSP2_CMD                   0x2110
-MX28_PAD_SSP2_MISO__SSP2_D0                    0x2120
-MX28_PAD_SSP2_SS0__SSP2_D3                     0x2130
-MX28_PAD_SSP2_SS1__SSP2_D4                     0x2140
-MX28_PAD_SSP2_SS2__SSP2_D5                     0x2150
-MX28_PAD_SSP3_SCK__SSP3_SCK                    0x2180
-MX28_PAD_SSP3_MOSI__SSP3_CMD                   0x2190
-MX28_PAD_SSP3_MISO__SSP3_D0                    0x21a0
-MX28_PAD_SSP3_SS0__SSP3_D3                     0x21b0
-MX28_PAD_AUART0_RX__AUART0_RX                  0x3000
-MX28_PAD_AUART0_TX__AUART0_TX                  0x3010
-MX28_PAD_AUART0_CTS__AUART0_CTS                        0x3020
-MX28_PAD_AUART0_RTS__AUART0_RTS                        0x3030
-MX28_PAD_AUART1_RX__AUART1_RX                  0x3040
-MX28_PAD_AUART1_TX__AUART1_TX                  0x3050
-MX28_PAD_AUART1_CTS__AUART1_CTS                        0x3060
-MX28_PAD_AUART1_RTS__AUART1_RTS                        0x3070
-MX28_PAD_AUART2_RX__AUART2_RX                  0x3080
-MX28_PAD_AUART2_TX__AUART2_TX                  0x3090
-MX28_PAD_AUART2_CTS__AUART2_CTS                        0x30a0
-MX28_PAD_AUART2_RTS__AUART2_RTS                        0x30b0
-MX28_PAD_AUART3_RX__AUART3_RX                  0x30c0
-MX28_PAD_AUART3_TX__AUART3_TX                  0x30d0
-MX28_PAD_AUART3_CTS__AUART3_CTS                        0x30e0
-MX28_PAD_AUART3_RTS__AUART3_RTS                        0x30f0
-MX28_PAD_PWM0__PWM_0                           0x3100
-MX28_PAD_PWM1__PWM_1                           0x3110
-MX28_PAD_PWM2__PWM_2                           0x3120
-MX28_PAD_SAIF0_MCLK__SAIF0_MCLK                        0x3140
-MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK              0x3150
-MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK            0x3160
-MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0            0x3170
-MX28_PAD_I2C0_SCL__I2C0_SCL                    0x3180
-MX28_PAD_I2C0_SDA__I2C0_SDA                    0x3190
-MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0            0x31a0
-MX28_PAD_SPDIF__SPDIF_TX                       0x31b0
-MX28_PAD_PWM3__PWM_3                           0x31c0
-MX28_PAD_PWM4__PWM_4                           0x31d0
-MX28_PAD_LCD_RESET__LCD_RESET                  0x31e0
-MX28_PAD_ENET0_MDC__ENET0_MDC                  0x4000
-MX28_PAD_ENET0_MDIO__ENET0_MDIO                        0x4010
-MX28_PAD_ENET0_RX_EN__ENET0_RX_EN              0x4020
-MX28_PAD_ENET0_RXD0__ENET0_RXD0                        0x4030
-MX28_PAD_ENET0_RXD1__ENET0_RXD1                        0x4040
-MX28_PAD_ENET0_TX_CLK__ENET0_TX_CLK            0x4050
-MX28_PAD_ENET0_TX_EN__ENET0_TX_EN              0x4060
-MX28_PAD_ENET0_TXD0__ENET0_TXD0                        0x4070
-MX28_PAD_ENET0_TXD1__ENET0_TXD1                        0x4080
-MX28_PAD_ENET0_RXD2__ENET0_RXD2                        0x4090
-MX28_PAD_ENET0_RXD3__ENET0_RXD3                        0x40a0
-MX28_PAD_ENET0_TXD2__ENET0_TXD2                        0x40b0
-MX28_PAD_ENET0_TXD3__ENET0_TXD3                        0x40c0
-MX28_PAD_ENET0_RX_CLK__ENET0_RX_CLK            0x40d0
-MX28_PAD_ENET0_COL__ENET0_COL                  0x40e0
-MX28_PAD_ENET0_CRS__ENET0_CRS                  0x40f0
-MX28_PAD_ENET_CLK__CLKCTRL_ENET                        0x4100
-MX28_PAD_JTAG_RTCK__JTAG_RTCK                  0x4140
-MX28_PAD_EMI_D00__EMI_DATA0                    0x5000
-MX28_PAD_EMI_D01__EMI_DATA1                    0x5010
-MX28_PAD_EMI_D02__EMI_DATA2                    0x5020
-MX28_PAD_EMI_D03__EMI_DATA3                    0x5030
-MX28_PAD_EMI_D04__EMI_DATA4                    0x5040
-MX28_PAD_EMI_D05__EMI_DATA5                    0x5050
-MX28_PAD_EMI_D06__EMI_DATA6                    0x5060
-MX28_PAD_EMI_D07__EMI_DATA7                    0x5070
-MX28_PAD_EMI_D08__EMI_DATA8                    0x5080
-MX28_PAD_EMI_D09__EMI_DATA9                    0x5090
-MX28_PAD_EMI_D10__EMI_DATA10                   0x50a0
-MX28_PAD_EMI_D11__EMI_DATA11                   0x50b0
-MX28_PAD_EMI_D12__EMI_DATA12                   0x50c0
-MX28_PAD_EMI_D13__EMI_DATA13                   0x50d0
-MX28_PAD_EMI_D14__EMI_DATA14                   0x50e0
-MX28_PAD_EMI_D15__EMI_DATA15                   0x50f0
-MX28_PAD_EMI_ODT0__EMI_ODT0                    0x5100
-MX28_PAD_EMI_DQM0__EMI_DQM0                    0x5110
-MX28_PAD_EMI_ODT1__EMI_ODT1                    0x5120
-MX28_PAD_EMI_DQM1__EMI_DQM1                    0x5130
-MX28_PAD_EMI_DDR_OPEN_FB__EMI_DDR_OPEN_FEEDBACK        0x5140
-MX28_PAD_EMI_CLK__EMI_CLK                      0x5150
-MX28_PAD_EMI_DQS0__EMI_DQS0                    0x5160
-MX28_PAD_EMI_DQS1__EMI_DQS1                    0x5170
-MX28_PAD_EMI_DDR_OPEN__EMI_DDR_OPEN            0x51a0
-MX28_PAD_EMI_A00__EMI_ADDR0                    0x6000
-MX28_PAD_EMI_A01__EMI_ADDR1                    0x6010
-MX28_PAD_EMI_A02__EMI_ADDR2                    0x6020
-MX28_PAD_EMI_A03__EMI_ADDR3                    0x6030
-MX28_PAD_EMI_A04__EMI_ADDR4                    0x6040
-MX28_PAD_EMI_A05__EMI_ADDR5                    0x6050
-MX28_PAD_EMI_A06__EMI_ADDR6                    0x6060
-MX28_PAD_EMI_A07__EMI_ADDR7                    0x6070
-MX28_PAD_EMI_A08__EMI_ADDR8                    0x6080
-MX28_PAD_EMI_A09__EMI_ADDR9                    0x6090
-MX28_PAD_EMI_A10__EMI_ADDR10                   0x60a0
-MX28_PAD_EMI_A11__EMI_ADDR11                   0x60b0
-MX28_PAD_EMI_A12__EMI_ADDR12                   0x60c0
-MX28_PAD_EMI_A13__EMI_ADDR13                   0x60d0
-MX28_PAD_EMI_A14__EMI_ADDR14                   0x60e0
-MX28_PAD_EMI_BA0__EMI_BA0                      0x6100
-MX28_PAD_EMI_BA1__EMI_BA1                      0x6110
-MX28_PAD_EMI_BA2__EMI_BA2                      0x6120
-MX28_PAD_EMI_CASN__EMI_CASN                    0x6130
-MX28_PAD_EMI_RASN__EMI_RASN                    0x6140
-MX28_PAD_EMI_WEN__EMI_WEN                      0x6150
-MX28_PAD_EMI_CE0N__EMI_CE0N                    0x6160
-MX28_PAD_EMI_CE1N__EMI_CE1N                    0x6170
-MX28_PAD_EMI_CKE__EMI_CKE                      0x6180
-MX28_PAD_GPMI_D00__SSP1_D0                     0x0001
-MX28_PAD_GPMI_D01__SSP1_D1                     0x0011
-MX28_PAD_GPMI_D02__SSP1_D2                     0x0021
-MX28_PAD_GPMI_D03__SSP1_D3                     0x0031
-MX28_PAD_GPMI_D04__SSP1_D4                     0x0041
-MX28_PAD_GPMI_D05__SSP1_D5                     0x0051
-MX28_PAD_GPMI_D06__SSP1_D6                     0x0061
-MX28_PAD_GPMI_D07__SSP1_D7                     0x0071
-MX28_PAD_GPMI_CE0N__SSP3_D0                    0x0101
-MX28_PAD_GPMI_CE1N__SSP3_D3                    0x0111
-MX28_PAD_GPMI_CE2N__CAN1_TX                    0x0121
-MX28_PAD_GPMI_CE3N__CAN1_RX                    0x0131
-MX28_PAD_GPMI_RDY0__SSP1_CARD_DETECT           0x0141
-MX28_PAD_GPMI_RDY1__SSP1_CMD                   0x0151
-MX28_PAD_GPMI_RDY2__CAN0_TX                    0x0161
-MX28_PAD_GPMI_RDY3__CAN0_RX                    0x0171
-MX28_PAD_GPMI_RDN__SSP3_SCK                    0x0181
-MX28_PAD_GPMI_WRN__SSP1_SCK                    0x0191
-MX28_PAD_GPMI_ALE__SSP3_D1                     0x01a1
-MX28_PAD_GPMI_CLE__SSP3_D2                     0x01b1
-MX28_PAD_GPMI_RESETN__SSP3_CMD                 0x01c1
-MX28_PAD_LCD_D03__ETM_DA8                      0x1031
-MX28_PAD_LCD_D04__ETM_DA9                      0x1041
-MX28_PAD_LCD_D08__ETM_DA3                      0x1081
-MX28_PAD_LCD_D09__ETM_DA4                      0x1091
-MX28_PAD_LCD_D20__ENET1_1588_EVENT2_OUT                0x1141
-MX28_PAD_LCD_D21__ENET1_1588_EVENT2_IN         0x1151
-MX28_PAD_LCD_D22__ENET1_1588_EVENT3_OUT                0x1161
-MX28_PAD_LCD_D23__ENET1_1588_EVENT3_IN         0x1171
-MX28_PAD_LCD_RD_E__LCD_VSYNC                   0x1181
-MX28_PAD_LCD_WR_RWN__LCD_HSYNC                 0x1191
-MX28_PAD_LCD_RS__LCD_DOTCLK                    0x11a1
-MX28_PAD_LCD_CS__LCD_ENABLE                    0x11b1
-MX28_PAD_LCD_VSYNC__SAIF1_SDATA0               0x11c1
-MX28_PAD_LCD_HSYNC__SAIF1_SDATA1               0x11d1
-MX28_PAD_LCD_DOTCLK__SAIF1_MCLK                        0x11e1
-MX28_PAD_SSP0_DATA4__SSP2_D0                   0x2041
-MX28_PAD_SSP0_DATA5__SSP2_D3                   0x2051
-MX28_PAD_SSP0_DATA6__SSP2_CMD                  0x2061
-MX28_PAD_SSP0_DATA7__SSP2_SCK                  0x2071
-MX28_PAD_SSP1_SCK__SSP2_D1                     0x20c1
-MX28_PAD_SSP1_CMD__SSP2_D2                     0x20d1
-MX28_PAD_SSP1_DATA0__SSP2_D6                   0x20e1
-MX28_PAD_SSP1_DATA3__SSP2_D7                   0x20f1
-MX28_PAD_SSP2_SCK__AUART2_RX                   0x2101
-MX28_PAD_SSP2_MOSI__AUART2_TX                  0x2111
-MX28_PAD_SSP2_MISO__AUART3_RX                  0x2121
-MX28_PAD_SSP2_SS0__AUART3_TX                   0x2131
-MX28_PAD_SSP2_SS1__SSP2_D1                     0x2141
-MX28_PAD_SSP2_SS2__SSP2_D2                     0x2151
-MX28_PAD_SSP3_SCK__AUART4_TX                   0x2181
-MX28_PAD_SSP3_MOSI__AUART4_RX                  0x2191
-MX28_PAD_SSP3_MISO__AUART4_RTS                 0x21a1
-MX28_PAD_SSP3_SS0__AUART4_CTS                  0x21b1
-MX28_PAD_AUART0_RX__I2C0_SCL                   0x3001
-MX28_PAD_AUART0_TX__I2C0_SDA                   0x3011
-MX28_PAD_AUART0_CTS__AUART4_RX                 0x3021
-MX28_PAD_AUART0_RTS__AUART4_TX                 0x3031
-MX28_PAD_AUART1_RX__SSP2_CARD_DETECT           0x3041
-MX28_PAD_AUART1_TX__SSP3_CARD_DETECT           0x3051
-MX28_PAD_AUART1_CTS__USB0_OVERCURRENT          0x3061
-MX28_PAD_AUART1_RTS__USB0_ID                   0x3071
-MX28_PAD_AUART2_RX__SSP3_D1                    0x3081
-MX28_PAD_AUART2_TX__SSP3_D2                    0x3091
-MX28_PAD_AUART2_CTS__I2C1_SCL                  0x30a1
-MX28_PAD_AUART2_RTS__I2C1_SDA                  0x30b1
-MX28_PAD_AUART3_RX__CAN0_TX                    0x30c1
-MX28_PAD_AUART3_TX__CAN0_RX                    0x30d1
-MX28_PAD_AUART3_CTS__CAN1_TX                   0x30e1
-MX28_PAD_AUART3_RTS__CAN1_RX                   0x30f1
-MX28_PAD_PWM0__I2C1_SCL                                0x3101
-MX28_PAD_PWM1__I2C1_SDA                                0x3111
-MX28_PAD_PWM2__USB0_ID                         0x3121
-MX28_PAD_SAIF0_MCLK__PWM_3                     0x3141
-MX28_PAD_SAIF0_LRCLK__PWM_4                    0x3151
-MX28_PAD_SAIF0_BITCLK__PWM_5                   0x3161
-MX28_PAD_SAIF0_SDATA0__PWM_6                   0x3171
-MX28_PAD_I2C0_SCL__TIMROT_ROTARYA              0x3181
-MX28_PAD_I2C0_SDA__TIMROT_ROTARYB              0x3191
-MX28_PAD_SAIF1_SDATA0__PWM_7                   0x31a1
-MX28_PAD_LCD_RESET__LCD_VSYNC                  0x31e1
-MX28_PAD_ENET0_MDC__GPMI_CE4N                  0x4001
-MX28_PAD_ENET0_MDIO__GPMI_CE5N                 0x4011
-MX28_PAD_ENET0_RX_EN__GPMI_CE6N                        0x4021
-MX28_PAD_ENET0_RXD0__GPMI_CE7N                 0x4031
-MX28_PAD_ENET0_RXD1__GPMI_READY4               0x4041
-MX28_PAD_ENET0_TX_CLK__HSADC_TRIGGER           0x4051
-MX28_PAD_ENET0_TX_EN__GPMI_READY5              0x4061
-MX28_PAD_ENET0_TXD0__GPMI_READY6               0x4071
-MX28_PAD_ENET0_TXD1__GPMI_READY7               0x4081
-MX28_PAD_ENET0_RXD2__ENET1_RXD0                        0x4091
-MX28_PAD_ENET0_RXD3__ENET1_RXD1                        0x40a1
-MX28_PAD_ENET0_TXD2__ENET1_TXD0                        0x40b1
-MX28_PAD_ENET0_TXD3__ENET1_TXD1                        0x40c1
-MX28_PAD_ENET0_RX_CLK__ENET0_RX_ER             0x40d1
-MX28_PAD_ENET0_COL__ENET1_TX_EN                        0x40e1
-MX28_PAD_ENET0_CRS__ENET1_RX_EN                        0x40f1
-MX28_PAD_GPMI_CE2N__ENET0_RX_ER                        0x0122
-MX28_PAD_GPMI_CE3N__SAIF1_MCLK                 0x0132
-MX28_PAD_GPMI_RDY0__USB0_ID                    0x0142
-MX28_PAD_GPMI_RDY2__ENET0_TX_ER                        0x0162
-MX28_PAD_GPMI_RDY3__HSADC_TRIGGER              0x0172
-MX28_PAD_GPMI_ALE__SSP3_D4                     0x01a2
-MX28_PAD_GPMI_CLE__SSP3_D5                     0x01b2
-MX28_PAD_LCD_D00__ETM_DA0                      0x1002
-MX28_PAD_LCD_D01__ETM_DA1                      0x1012
-MX28_PAD_LCD_D02__ETM_DA2                      0x1022
-MX28_PAD_LCD_D03__ETM_DA3                      0x1032
-MX28_PAD_LCD_D04__ETM_DA4                      0x1042
-MX28_PAD_LCD_D05__ETM_DA5                      0x1052
-MX28_PAD_LCD_D06__ETM_DA6                      0x1062
-MX28_PAD_LCD_D07__ETM_DA7                      0x1072
-MX28_PAD_LCD_D08__ETM_DA8                      0x1082
-MX28_PAD_LCD_D09__ETM_DA9                      0x1092
-MX28_PAD_LCD_D10__ETM_DA10                     0x10a2
-MX28_PAD_LCD_D11__ETM_DA11                     0x10b2
-MX28_PAD_LCD_D12__ETM_DA12                     0x10c2
-MX28_PAD_LCD_D13__ETM_DA13                     0x10d2
-MX28_PAD_LCD_D14__ETM_DA14                     0x10e2
-MX28_PAD_LCD_D15__ETM_DA15                     0x10f2
-MX28_PAD_LCD_D16__ETM_DA7                      0x1102
-MX28_PAD_LCD_D17__ETM_DA6                      0x1112
-MX28_PAD_LCD_D18__ETM_DA5                      0x1122
-MX28_PAD_LCD_D19__ETM_DA4                      0x1132
-MX28_PAD_LCD_D20__ETM_DA3                      0x1142
-MX28_PAD_LCD_D21__ETM_DA2                      0x1152
-MX28_PAD_LCD_D22__ETM_DA1                      0x1162
-MX28_PAD_LCD_D23__ETM_DA0                      0x1172
-MX28_PAD_LCD_RD_E__ETM_TCTL                    0x1182
-MX28_PAD_LCD_WR_RWN__ETM_TCLK                  0x1192
-MX28_PAD_LCD_HSYNC__ETM_TCTL                   0x11d2
-MX28_PAD_LCD_DOTCLK__ETM_TCLK                  0x11e2
-MX28_PAD_SSP1_SCK__ENET0_1588_EVENT2_OUT       0x20c2
-MX28_PAD_SSP1_CMD__ENET0_1588_EVENT2_IN                0x20d2
-MX28_PAD_SSP1_DATA0__ENET0_1588_EVENT3_OUT     0x20e2
-MX28_PAD_SSP1_DATA3__ENET0_1588_EVENT3_IN      0x20f2
-MX28_PAD_SSP2_SCK__SAIF0_SDATA1                        0x2102
-MX28_PAD_SSP2_MOSI__SAIF0_SDATA2               0x2112
-MX28_PAD_SSP2_MISO__SAIF1_SDATA1               0x2122
-MX28_PAD_SSP2_SS0__SAIF1_SDATA2                        0x2132
-MX28_PAD_SSP2_SS1__USB1_OVERCURRENT            0x2142
-MX28_PAD_SSP2_SS2__USB0_OVERCURRENT            0x2152
-MX28_PAD_SSP3_SCK__ENET1_1588_EVENT0_OUT       0x2182
-MX28_PAD_SSP3_MOSI__ENET1_1588_EVENT0_IN       0x2192
-MX28_PAD_SSP3_MISO__ENET1_1588_EVENT1_OUT      0x21a2
-MX28_PAD_SSP3_SS0__ENET1_1588_EVENT1_IN                0x21b2
-MX28_PAD_AUART0_RX__DUART_CTS                  0x3002
-MX28_PAD_AUART0_TX__DUART_RTS                  0x3012
-MX28_PAD_AUART0_CTS__DUART_RX                  0x3022
-MX28_PAD_AUART0_RTS__DUART_TX                  0x3032
-MX28_PAD_AUART1_RX__PWM_0                      0x3042
-MX28_PAD_AUART1_TX__PWM_1                      0x3052
-MX28_PAD_AUART1_CTS__TIMROT_ROTARYA            0x3062
-MX28_PAD_AUART1_RTS__TIMROT_ROTARYB            0x3072
-MX28_PAD_AUART2_RX__SSP3_D4                    0x3082
-MX28_PAD_AUART2_TX__SSP3_D5                    0x3092
-MX28_PAD_AUART2_CTS__SAIF1_BITCLK              0x30a2
-MX28_PAD_AUART2_RTS__SAIF1_LRCLK               0x30b2
-MX28_PAD_AUART3_RX__ENET0_1588_EVENT0_OUT      0x30c2
-MX28_PAD_AUART3_TX__ENET0_1588_EVENT0_IN       0x30d2
-MX28_PAD_AUART3_CTS__ENET0_1588_EVENT1_OUT     0x30e2
-MX28_PAD_AUART3_RTS__ENET0_1588_EVENT1_IN      0x30f2
-MX28_PAD_PWM0__DUART_RX                                0x3102
-MX28_PAD_PWM1__DUART_TX                                0x3112
-MX28_PAD_PWM2__USB1_OVERCURRENT                        0x3122
-MX28_PAD_SAIF0_MCLK__AUART4_CTS                        0x3142
-MX28_PAD_SAIF0_LRCLK__AUART4_RTS               0x3152
-MX28_PAD_SAIF0_BITCLK__AUART4_RX               0x3162
-MX28_PAD_SAIF0_SDATA0__AUART4_TX               0x3172
-MX28_PAD_I2C0_SCL__DUART_RX                    0x3182
-MX28_PAD_I2C0_SDA__DUART_TX                    0x3192
-MX28_PAD_SAIF1_SDATA0__SAIF0_SDATA1            0x31a2
-MX28_PAD_SPDIF__ENET1_RX_ER                    0x31b2
-MX28_PAD_ENET0_MDC__SAIF0_SDATA1               0x4002
-MX28_PAD_ENET0_MDIO__SAIF0_SDATA2              0x4012
-MX28_PAD_ENET0_RX_EN__SAIF1_SDATA1             0x4022
-MX28_PAD_ENET0_RXD0__SAIF1_SDATA2              0x4032
-MX28_PAD_ENET0_TX_CLK__ENET0_1588_EVENT2_OUT   0x4052
-MX28_PAD_ENET0_RXD2__ENET0_1588_EVENT0_OUT     0x4092
-MX28_PAD_ENET0_RXD3__ENET0_1588_EVENT0_IN      0x40a2
-MX28_PAD_ENET0_TXD2__ENET0_1588_EVENT1_OUT     0x40b2
-MX28_PAD_ENET0_TXD3__ENET0_1588_EVENT1_IN      0x40c2
-MX28_PAD_ENET0_RX_CLK__ENET0_1588_EVENT2_IN    0x40d2
-MX28_PAD_ENET0_COL__ENET0_1588_EVENT3_OUT      0x40e2
-MX28_PAD_ENET0_CRS__ENET0_1588_EVENT3_IN       0x40f2
-MX28_PAD_GPMI_D00__GPIO_0_0                    0x0003
-MX28_PAD_GPMI_D01__GPIO_0_1                    0x0013
-MX28_PAD_GPMI_D02__GPIO_0_2                    0x0023
-MX28_PAD_GPMI_D03__GPIO_0_3                    0x0033
-MX28_PAD_GPMI_D04__GPIO_0_4                    0x0043
-MX28_PAD_GPMI_D05__GPIO_0_5                    0x0053
-MX28_PAD_GPMI_D06__GPIO_0_6                    0x0063
-MX28_PAD_GPMI_D07__GPIO_0_7                    0x0073
-MX28_PAD_GPMI_CE0N__GPIO_0_16                  0x0103
-MX28_PAD_GPMI_CE1N__GPIO_0_17                  0x0113
-MX28_PAD_GPMI_CE2N__GPIO_0_18                  0x0123
-MX28_PAD_GPMI_CE3N__GPIO_0_19                  0x0133
-MX28_PAD_GPMI_RDY0__GPIO_0_20                  0x0143
-MX28_PAD_GPMI_RDY1__GPIO_0_21                  0x0153
-MX28_PAD_GPMI_RDY2__GPIO_0_22                  0x0163
-MX28_PAD_GPMI_RDY3__GPIO_0_23                  0x0173
-MX28_PAD_GPMI_RDN__GPIO_0_24                   0x0183
-MX28_PAD_GPMI_WRN__GPIO_0_25                   0x0193
-MX28_PAD_GPMI_ALE__GPIO_0_26                   0x01a3
-MX28_PAD_GPMI_CLE__GPIO_0_27                   0x01b3
-MX28_PAD_GPMI_RESETN__GPIO_0_28                        0x01c3
-MX28_PAD_LCD_D00__GPIO_1_0                     0x1003
-MX28_PAD_LCD_D01__GPIO_1_1                     0x1013
-MX28_PAD_LCD_D02__GPIO_1_2                     0x1023
-MX28_PAD_LCD_D03__GPIO_1_3                     0x1033
-MX28_PAD_LCD_D04__GPIO_1_4                     0x1043
-MX28_PAD_LCD_D05__GPIO_1_5                     0x1053
-MX28_PAD_LCD_D06__GPIO_1_6                     0x1063
-MX28_PAD_LCD_D07__GPIO_1_7                     0x1073
-MX28_PAD_LCD_D08__GPIO_1_8                     0x1083
-MX28_PAD_LCD_D09__GPIO_1_9                     0x1093
-MX28_PAD_LCD_D10__GPIO_1_10                    0x10a3
-MX28_PAD_LCD_D11__GPIO_1_11                    0x10b3
-MX28_PAD_LCD_D12__GPIO_1_12                    0x10c3
-MX28_PAD_LCD_D13__GPIO_1_13                    0x10d3
-MX28_PAD_LCD_D14__GPIO_1_14                    0x10e3
-MX28_PAD_LCD_D15__GPIO_1_15                    0x10f3
-MX28_PAD_LCD_D16__GPIO_1_16                    0x1103
-MX28_PAD_LCD_D17__GPIO_1_17                    0x1113
-MX28_PAD_LCD_D18__GPIO_1_18                    0x1123
-MX28_PAD_LCD_D19__GPIO_1_19                    0x1133
-MX28_PAD_LCD_D20__GPIO_1_20                    0x1143
-MX28_PAD_LCD_D21__GPIO_1_21                    0x1153
-MX28_PAD_LCD_D22__GPIO_1_22                    0x1163
-MX28_PAD_LCD_D23__GPIO_1_23                    0x1173
-MX28_PAD_LCD_RD_E__GPIO_1_24                   0x1183
-MX28_PAD_LCD_WR_RWN__GPIO_1_25                 0x1193
-MX28_PAD_LCD_RS__GPIO_1_26                     0x11a3
-MX28_PAD_LCD_CS__GPIO_1_27                     0x11b3
-MX28_PAD_LCD_VSYNC__GPIO_1_28                  0x11c3
-MX28_PAD_LCD_HSYNC__GPIO_1_29                  0x11d3
-MX28_PAD_LCD_DOTCLK__GPIO_1_30                 0x11e3
-MX28_PAD_LCD_ENABLE__GPIO_1_31                 0x11f3
-MX28_PAD_SSP0_DATA0__GPIO_2_0                  0x2003
-MX28_PAD_SSP0_DATA1__GPIO_2_1                  0x2013
-MX28_PAD_SSP0_DATA2__GPIO_2_2                  0x2023
-MX28_PAD_SSP0_DATA3__GPIO_2_3                  0x2033
-MX28_PAD_SSP0_DATA4__GPIO_2_4                  0x2043
-MX28_PAD_SSP0_DATA5__GPIO_2_5                  0x2053
-MX28_PAD_SSP0_DATA6__GPIO_2_6                  0x2063
-MX28_PAD_SSP0_DATA7__GPIO_2_7                  0x2073
-MX28_PAD_SSP0_CMD__GPIO_2_8                    0x2083
-MX28_PAD_SSP0_DETECT__GPIO_2_9                 0x2093
-MX28_PAD_SSP0_SCK__GPIO_2_10                   0x20a3
-MX28_PAD_SSP1_SCK__GPIO_2_12                   0x20c3
-MX28_PAD_SSP1_CMD__GPIO_2_13                   0x20d3
-MX28_PAD_SSP1_DATA0__GPIO_2_14                 0x20e3
-MX28_PAD_SSP1_DATA3__GPIO_2_15                 0x20f3
-MX28_PAD_SSP2_SCK__GPIO_2_16                   0x2103
-MX28_PAD_SSP2_MOSI__GPIO_2_17                  0x2113
-MX28_PAD_SSP2_MISO__GPIO_2_18                  0x2123
-MX28_PAD_SSP2_SS0__GPIO_2_19                   0x2133
-MX28_PAD_SSP2_SS1__GPIO_2_20                   0x2143
-MX28_PAD_SSP2_SS2__GPIO_2_21                   0x2153
-MX28_PAD_SSP3_SCK__GPIO_2_24                   0x2183
-MX28_PAD_SSP3_MOSI__GPIO_2_25                  0x2193
-MX28_PAD_SSP3_MISO__GPIO_2_26                  0x21a3
-MX28_PAD_SSP3_SS0__GPIO_2_27                   0x21b3
-MX28_PAD_AUART0_RX__GPIO_3_0                   0x3003
-MX28_PAD_AUART0_TX__GPIO_3_1                   0x3013
-MX28_PAD_AUART0_CTS__GPIO_3_2                  0x3023
-MX28_PAD_AUART0_RTS__GPIO_3_3                  0x3033
-MX28_PAD_AUART1_RX__GPIO_3_4                   0x3043
-MX28_PAD_AUART1_TX__GPIO_3_5                   0x3053
-MX28_PAD_AUART1_CTS__GPIO_3_6                  0x3063
-MX28_PAD_AUART1_RTS__GPIO_3_7                  0x3073
-MX28_PAD_AUART2_RX__GPIO_3_8                   0x3083
-MX28_PAD_AUART2_TX__GPIO_3_9                   0x3093
-MX28_PAD_AUART2_CTS__GPIO_3_10                 0x30a3
-MX28_PAD_AUART2_RTS__GPIO_3_11                 0x30b3
-MX28_PAD_AUART3_RX__GPIO_3_12                  0x30c3
-MX28_PAD_AUART3_TX__GPIO_3_13                  0x30d3
-MX28_PAD_AUART3_CTS__GPIO_3_14                 0x30e3
-MX28_PAD_AUART3_RTS__GPIO_3_15                 0x30f3
-MX28_PAD_PWM0__GPIO_3_16                       0x3103
-MX28_PAD_PWM1__GPIO_3_17                       0x3113
-MX28_PAD_PWM2__GPIO_3_18                       0x3123
-MX28_PAD_SAIF0_MCLK__GPIO_3_20                 0x3143
-MX28_PAD_SAIF0_LRCLK__GPIO_3_21                        0x3153
-MX28_PAD_SAIF0_BITCLK__GPIO_3_22               0x3163
-MX28_PAD_SAIF0_SDATA0__GPIO_3_23               0x3173
-MX28_PAD_I2C0_SCL__GPIO_3_24                   0x3183
-MX28_PAD_I2C0_SDA__GPIO_3_25                   0x3193
-MX28_PAD_SAIF1_SDATA0__GPIO_3_26               0x31a3
-MX28_PAD_SPDIF__GPIO_3_27                      0x31b3
-MX28_PAD_PWM3__GPIO_3_28                       0x31c3
-MX28_PAD_PWM4__GPIO_3_29                       0x31d3
-MX28_PAD_LCD_RESET__GPIO_3_30                  0x31e3
-MX28_PAD_ENET0_MDC__GPIO_4_0                   0x4003
-MX28_PAD_ENET0_MDIO__GPIO_4_1                  0x4013
-MX28_PAD_ENET0_RX_EN__GPIO_4_2                 0x4023
-MX28_PAD_ENET0_RXD0__GPIO_4_3                  0x4033
-MX28_PAD_ENET0_RXD1__GPIO_4_4                  0x4043
-MX28_PAD_ENET0_TX_CLK__GPIO_4_5                        0x4053
-MX28_PAD_ENET0_TX_EN__GPIO_4_6                 0x4063
-MX28_PAD_ENET0_TXD0__GPIO_4_7                  0x4073
-MX28_PAD_ENET0_TXD1__GPIO_4_8                  0x4083
-MX28_PAD_ENET0_RXD2__GPIO_4_9                  0x4093
-MX28_PAD_ENET0_RXD3__GPIO_4_10                 0x40a3
-MX28_PAD_ENET0_TXD2__GPIO_4_11                 0x40b3
-MX28_PAD_ENET0_TXD3__GPIO_4_12                 0x40c3
-MX28_PAD_ENET0_RX_CLK__GPIO_4_13               0x40d3
-MX28_PAD_ENET0_COL__GPIO_4_14                  0x40e3
-MX28_PAD_ENET0_CRS__GPIO_4_15                  0x40f3
-MX28_PAD_ENET_CLK__GPIO_4_16                   0x4103
-MX28_PAD_JTAG_RTCK__GPIO_4_20                  0x4143
-
-Valid values for i.MX23 pinmux-id:
-
-pinmux                                         id
-------                                         --
-MX23_PAD_GPMI_D00__GPMI_D00                    0x0000
-MX23_PAD_GPMI_D01__GPMI_D01                    0x0010
-MX23_PAD_GPMI_D02__GPMI_D02                    0x0020
-MX23_PAD_GPMI_D03__GPMI_D03                    0x0030
-MX23_PAD_GPMI_D04__GPMI_D04                    0x0040
-MX23_PAD_GPMI_D05__GPMI_D05                    0x0050
-MX23_PAD_GPMI_D06__GPMI_D06                    0x0060
-MX23_PAD_GPMI_D07__GPMI_D07                    0x0070
-MX23_PAD_GPMI_D08__GPMI_D08                    0x0080
-MX23_PAD_GPMI_D09__GPMI_D09                    0x0090
-MX23_PAD_GPMI_D10__GPMI_D10                    0x00a0
-MX23_PAD_GPMI_D11__GPMI_D11                    0x00b0
-MX23_PAD_GPMI_D12__GPMI_D12                    0x00c0
-MX23_PAD_GPMI_D13__GPMI_D13                    0x00d0
-MX23_PAD_GPMI_D14__GPMI_D14                    0x00e0
-MX23_PAD_GPMI_D15__GPMI_D15                    0x00f0
-MX23_PAD_GPMI_CLE__GPMI_CLE                    0x0100
-MX23_PAD_GPMI_ALE__GPMI_ALE                    0x0110
-MX23_PAD_GPMI_CE2N__GPMI_CE2N                  0x0120
-MX23_PAD_GPMI_RDY0__GPMI_RDY0                  0x0130
-MX23_PAD_GPMI_RDY1__GPMI_RDY1                  0x0140
-MX23_PAD_GPMI_RDY2__GPMI_RDY2                  0x0150
-MX23_PAD_GPMI_RDY3__GPMI_RDY3                  0x0160
-MX23_PAD_GPMI_WPN__GPMI_WPN                    0x0170
-MX23_PAD_GPMI_WRN__GPMI_WRN                    0x0180
-MX23_PAD_GPMI_RDN__GPMI_RDN                    0x0190
-MX23_PAD_AUART1_CTS__AUART1_CTS                        0x01a0
-MX23_PAD_AUART1_RTS__AUART1_RTS                        0x01b0
-MX23_PAD_AUART1_RX__AUART1_RX                  0x01c0
-MX23_PAD_AUART1_TX__AUART1_TX                  0x01d0
-MX23_PAD_I2C_SCL__I2C_SCL                      0x01e0
-MX23_PAD_I2C_SDA__I2C_SDA                      0x01f0
-MX23_PAD_LCD_D00__LCD_D00                      0x1000
-MX23_PAD_LCD_D01__LCD_D01                      0x1010
-MX23_PAD_LCD_D02__LCD_D02                      0x1020
-MX23_PAD_LCD_D03__LCD_D03                      0x1030
-MX23_PAD_LCD_D04__LCD_D04                      0x1040
-MX23_PAD_LCD_D05__LCD_D05                      0x1050
-MX23_PAD_LCD_D06__LCD_D06                      0x1060
-MX23_PAD_LCD_D07__LCD_D07                      0x1070
-MX23_PAD_LCD_D08__LCD_D08                      0x1080
-MX23_PAD_LCD_D09__LCD_D09                      0x1090
-MX23_PAD_LCD_D10__LCD_D10                      0x10a0
-MX23_PAD_LCD_D11__LCD_D11                      0x10b0
-MX23_PAD_LCD_D12__LCD_D12                      0x10c0
-MX23_PAD_LCD_D13__LCD_D13                      0x10d0
-MX23_PAD_LCD_D14__LCD_D14                      0x10e0
-MX23_PAD_LCD_D15__LCD_D15                      0x10f0
-MX23_PAD_LCD_D16__LCD_D16                      0x1100
-MX23_PAD_LCD_D17__LCD_D17                      0x1110
-MX23_PAD_LCD_RESET__LCD_RESET                  0x1120
-MX23_PAD_LCD_RS__LCD_RS                                0x1130
-MX23_PAD_LCD_WR__LCD_WR                                0x1140
-MX23_PAD_LCD_CS__LCD_CS                                0x1150
-MX23_PAD_LCD_DOTCK__LCD_DOTCK                  0x1160
-MX23_PAD_LCD_ENABLE__LCD_ENABLE                        0x1170
-MX23_PAD_LCD_HSYNC__LCD_HSYNC                  0x1180
-MX23_PAD_LCD_VSYNC__LCD_VSYNC                  0x1190
-MX23_PAD_PWM0__PWM0                            0x11a0
-MX23_PAD_PWM1__PWM1                            0x11b0
-MX23_PAD_PWM2__PWM2                            0x11c0
-MX23_PAD_PWM3__PWM3                            0x11d0
-MX23_PAD_PWM4__PWM4                            0x11e0
-MX23_PAD_SSP1_CMD__SSP1_CMD                    0x2000
-MX23_PAD_SSP1_DETECT__SSP1_DETECT              0x2010
-MX23_PAD_SSP1_DATA0__SSP1_DATA0                        0x2020
-MX23_PAD_SSP1_DATA1__SSP1_DATA1                        0x2030
-MX23_PAD_SSP1_DATA2__SSP1_DATA2                        0x2040
-MX23_PAD_SSP1_DATA3__SSP1_DATA3                        0x2050
-MX23_PAD_SSP1_SCK__SSP1_SCK                    0x2060
-MX23_PAD_ROTARYA__ROTARYA                      0x2070
-MX23_PAD_ROTARYB__ROTARYB                      0x2080
-MX23_PAD_EMI_A00__EMI_A00                      0x2090
-MX23_PAD_EMI_A01__EMI_A01                      0x20a0
-MX23_PAD_EMI_A02__EMI_A02                      0x20b0
-MX23_PAD_EMI_A03__EMI_A03                      0x20c0
-MX23_PAD_EMI_A04__EMI_A04                      0x20d0
-MX23_PAD_EMI_A05__EMI_A05                      0x20e0
-MX23_PAD_EMI_A06__EMI_A06                      0x20f0
-MX23_PAD_EMI_A07__EMI_A07                      0x2100
-MX23_PAD_EMI_A08__EMI_A08                      0x2110
-MX23_PAD_EMI_A09__EMI_A09                      0x2120
-MX23_PAD_EMI_A10__EMI_A10                      0x2130
-MX23_PAD_EMI_A11__EMI_A11                      0x2140
-MX23_PAD_EMI_A12__EMI_A12                      0x2150
-MX23_PAD_EMI_BA0__EMI_BA0                      0x2160
-MX23_PAD_EMI_BA1__EMI_BA1                      0x2170
-MX23_PAD_EMI_CASN__EMI_CASN                    0x2180
-MX23_PAD_EMI_CE0N__EMI_CE0N                    0x2190
-MX23_PAD_EMI_CE1N__EMI_CE1N                    0x21a0
-MX23_PAD_GPMI_CE1N__GPMI_CE1N                  0x21b0
-MX23_PAD_GPMI_CE0N__GPMI_CE0N                  0x21c0
-MX23_PAD_EMI_CKE__EMI_CKE                      0x21d0
-MX23_PAD_EMI_RASN__EMI_RASN                    0x21e0
-MX23_PAD_EMI_WEN__EMI_WEN                      0x21f0
-MX23_PAD_EMI_D00__EMI_D00                      0x3000
-MX23_PAD_EMI_D01__EMI_D01                      0x3010
-MX23_PAD_EMI_D02__EMI_D02                      0x3020
-MX23_PAD_EMI_D03__EMI_D03                      0x3030
-MX23_PAD_EMI_D04__EMI_D04                      0x3040
-MX23_PAD_EMI_D05__EMI_D05                      0x3050
-MX23_PAD_EMI_D06__EMI_D06                      0x3060
-MX23_PAD_EMI_D07__EMI_D07                      0x3070
-MX23_PAD_EMI_D08__EMI_D08                      0x3080
-MX23_PAD_EMI_D09__EMI_D09                      0x3090
-MX23_PAD_EMI_D10__EMI_D10                      0x30a0
-MX23_PAD_EMI_D11__EMI_D11                      0x30b0
-MX23_PAD_EMI_D12__EMI_D12                      0x30c0
-MX23_PAD_EMI_D13__EMI_D13                      0x30d0
-MX23_PAD_EMI_D14__EMI_D14                      0x30e0
-MX23_PAD_EMI_D15__EMI_D15                      0x30f0
-MX23_PAD_EMI_DQM0__EMI_DQM0                    0x3100
-MX23_PAD_EMI_DQM1__EMI_DQM1                    0x3110
-MX23_PAD_EMI_DQS0__EMI_DQS0                    0x3120
-MX23_PAD_EMI_DQS1__EMI_DQS1                    0x3130
-MX23_PAD_EMI_CLK__EMI_CLK                      0x3140
-MX23_PAD_EMI_CLKN__EMI_CLKN                    0x3150
-MX23_PAD_GPMI_D00__LCD_D8                      0x0001
-MX23_PAD_GPMI_D01__LCD_D9                      0x0011
-MX23_PAD_GPMI_D02__LCD_D10                     0x0021
-MX23_PAD_GPMI_D03__LCD_D11                     0x0031
-MX23_PAD_GPMI_D04__LCD_D12                     0x0041
-MX23_PAD_GPMI_D05__LCD_D13                     0x0051
-MX23_PAD_GPMI_D06__LCD_D14                     0x0061
-MX23_PAD_GPMI_D07__LCD_D15                     0x0071
-MX23_PAD_GPMI_D08__LCD_D18                     0x0081
-MX23_PAD_GPMI_D09__LCD_D19                     0x0091
-MX23_PAD_GPMI_D10__LCD_D20                     0x00a1
-MX23_PAD_GPMI_D11__LCD_D21                     0x00b1
-MX23_PAD_GPMI_D12__LCD_D22                     0x00c1
-MX23_PAD_GPMI_D13__LCD_D23                     0x00d1
-MX23_PAD_GPMI_D14__AUART2_RX                   0x00e1
-MX23_PAD_GPMI_D15__AUART2_TX                   0x00f1
-MX23_PAD_GPMI_CLE__LCD_D16                     0x0101
-MX23_PAD_GPMI_ALE__LCD_D17                     0x0111
-MX23_PAD_GPMI_CE2N__ATA_A2                     0x0121
-MX23_PAD_AUART1_RTS__IR_CLK                    0x01b1
-MX23_PAD_AUART1_RX__IR_RX                      0x01c1
-MX23_PAD_AUART1_TX__IR_TX                      0x01d1
-MX23_PAD_I2C_SCL__GPMI_RDY2                    0x01e1
-MX23_PAD_I2C_SDA__GPMI_CE2N                    0x01f1
-MX23_PAD_LCD_D00__ETM_DA8                      0x1001
-MX23_PAD_LCD_D01__ETM_DA9                      0x1011
-MX23_PAD_LCD_D02__ETM_DA10                     0x1021
-MX23_PAD_LCD_D03__ETM_DA11                     0x1031
-MX23_PAD_LCD_D04__ETM_DA12                     0x1041
-MX23_PAD_LCD_D05__ETM_DA13                     0x1051
-MX23_PAD_LCD_D06__ETM_DA14                     0x1061
-MX23_PAD_LCD_D07__ETM_DA15                     0x1071
-MX23_PAD_LCD_D08__ETM_DA0                      0x1081
-MX23_PAD_LCD_D09__ETM_DA1                      0x1091
-MX23_PAD_LCD_D10__ETM_DA2                      0x10a1
-MX23_PAD_LCD_D11__ETM_DA3                      0x10b1
-MX23_PAD_LCD_D12__ETM_DA4                      0x10c1
-MX23_PAD_LCD_D13__ETM_DA5                      0x10d1
-MX23_PAD_LCD_D14__ETM_DA6                      0x10e1
-MX23_PAD_LCD_D15__ETM_DA7                      0x10f1
-MX23_PAD_LCD_RESET__ETM_TCTL                   0x1121
-MX23_PAD_LCD_RS__ETM_TCLK                      0x1131
-MX23_PAD_LCD_DOTCK__GPMI_RDY3                  0x1161
-MX23_PAD_LCD_ENABLE__I2C_SCL                   0x1171
-MX23_PAD_LCD_HSYNC__I2C_SDA                    0x1181
-MX23_PAD_LCD_VSYNC__LCD_BUSY                   0x1191
-MX23_PAD_PWM0__ROTARYA                         0x11a1
-MX23_PAD_PWM1__ROTARYB                         0x11b1
-MX23_PAD_PWM2__GPMI_RDY3                       0x11c1
-MX23_PAD_PWM3__ETM_TCTL                                0x11d1
-MX23_PAD_PWM4__ETM_TCLK                                0x11e1
-MX23_PAD_SSP1_DETECT__GPMI_CE3N                        0x2011
-MX23_PAD_SSP1_DATA1__I2C_SCL                   0x2031
-MX23_PAD_SSP1_DATA2__I2C_SDA                   0x2041
-MX23_PAD_ROTARYA__AUART2_RTS                   0x2071
-MX23_PAD_ROTARYB__AUART2_CTS                   0x2081
-MX23_PAD_GPMI_D00__SSP2_DATA0                  0x0002
-MX23_PAD_GPMI_D01__SSP2_DATA1                  0x0012
-MX23_PAD_GPMI_D02__SSP2_DATA2                  0x0022
-MX23_PAD_GPMI_D03__SSP2_DATA3                  0x0032
-MX23_PAD_GPMI_D04__SSP2_DATA4                  0x0042
-MX23_PAD_GPMI_D05__SSP2_DATA5                  0x0052
-MX23_PAD_GPMI_D06__SSP2_DATA6                  0x0062
-MX23_PAD_GPMI_D07__SSP2_DATA7                  0x0072
-MX23_PAD_GPMI_D08__SSP1_DATA4                  0x0082
-MX23_PAD_GPMI_D09__SSP1_DATA5                  0x0092
-MX23_PAD_GPMI_D10__SSP1_DATA6                  0x00a2
-MX23_PAD_GPMI_D11__SSP1_DATA7                  0x00b2
-MX23_PAD_GPMI_D15__GPMI_CE3N                   0x00f2
-MX23_PAD_GPMI_RDY0__SSP2_DETECT                        0x0132
-MX23_PAD_GPMI_RDY1__SSP2_CMD                   0x0142
-MX23_PAD_GPMI_WRN__SSP2_SCK                    0x0182
-MX23_PAD_AUART1_CTS__SSP1_DATA4                        0x01a2
-MX23_PAD_AUART1_RTS__SSP1_DATA5                        0x01b2
-MX23_PAD_AUART1_RX__SSP1_DATA6                 0x01c2
-MX23_PAD_AUART1_TX__SSP1_DATA7                 0x01d2
-MX23_PAD_I2C_SCL__AUART1_TX                    0x01e2
-MX23_PAD_I2C_SDA__AUART1_RX                    0x01f2
-MX23_PAD_LCD_D08__SAIF2_SDATA0                 0x1082
-MX23_PAD_LCD_D09__SAIF1_SDATA0                 0x1092
-MX23_PAD_LCD_D10__SAIF_MCLK_BITCLK             0x10a2
-MX23_PAD_LCD_D11__SAIF_LRCLK                   0x10b2
-MX23_PAD_LCD_D12__SAIF2_SDATA1                 0x10c2
-MX23_PAD_LCD_D13__SAIF2_SDATA2                 0x10d2
-MX23_PAD_LCD_D14__SAIF1_SDATA2                 0x10e2
-MX23_PAD_LCD_D15__SAIF1_SDATA1                 0x10f2
-MX23_PAD_LCD_D16__SAIF_ALT_BITCLK              0x1102
-MX23_PAD_LCD_RESET__GPMI_CE3N                  0x1122
-MX23_PAD_PWM0__DUART_RX                                0x11a2
-MX23_PAD_PWM1__DUART_TX                                0x11b2
-MX23_PAD_PWM3__AUART1_CTS                      0x11d2
-MX23_PAD_PWM4__AUART1_RTS                      0x11e2
-MX23_PAD_SSP1_CMD__JTAG_TDO                    0x2002
-MX23_PAD_SSP1_DETECT__USB_OTG_ID               0x2012
-MX23_PAD_SSP1_DATA0__JTAG_TDI                  0x2022
-MX23_PAD_SSP1_DATA1__JTAG_TCLK                 0x2032
-MX23_PAD_SSP1_DATA2__JTAG_RTCK                 0x2042
-MX23_PAD_SSP1_DATA3__JTAG_TMS                  0x2052
-MX23_PAD_SSP1_SCK__JTAG_TRST                   0x2062
-MX23_PAD_ROTARYA__SPDIF                                0x2072
-MX23_PAD_ROTARYB__GPMI_CE3N                    0x2082
-MX23_PAD_GPMI_D00__GPIO_0_0                    0x0003
-MX23_PAD_GPMI_D01__GPIO_0_1                    0x0013
-MX23_PAD_GPMI_D02__GPIO_0_2                    0x0023
-MX23_PAD_GPMI_D03__GPIO_0_3                    0x0033
-MX23_PAD_GPMI_D04__GPIO_0_4                    0x0043
-MX23_PAD_GPMI_D05__GPIO_0_5                    0x0053
-MX23_PAD_GPMI_D06__GPIO_0_6                    0x0063
-MX23_PAD_GPMI_D07__GPIO_0_7                    0x0073
-MX23_PAD_GPMI_D08__GPIO_0_8                    0x0083
-MX23_PAD_GPMI_D09__GPIO_0_9                    0x0093
-MX23_PAD_GPMI_D10__GPIO_0_10                   0x00a3
-MX23_PAD_GPMI_D11__GPIO_0_11                   0x00b3
-MX23_PAD_GPMI_D12__GPIO_0_12                   0x00c3
-MX23_PAD_GPMI_D13__GPIO_0_13                   0x00d3
-MX23_PAD_GPMI_D14__GPIO_0_14                   0x00e3
-MX23_PAD_GPMI_D15__GPIO_0_15                   0x00f3
-MX23_PAD_GPMI_CLE__GPIO_0_16                   0x0103
-MX23_PAD_GPMI_ALE__GPIO_0_17                   0x0113
-MX23_PAD_GPMI_CE2N__GPIO_0_18                  0x0123
-MX23_PAD_GPMI_RDY0__GPIO_0_19                  0x0133
-MX23_PAD_GPMI_RDY1__GPIO_0_20                  0x0143
-MX23_PAD_GPMI_RDY2__GPIO_0_21                  0x0153
-MX23_PAD_GPMI_RDY3__GPIO_0_22                  0x0163
-MX23_PAD_GPMI_WPN__GPIO_0_23                   0x0173
-MX23_PAD_GPMI_WRN__GPIO_0_24                   0x0183
-MX23_PAD_GPMI_RDN__GPIO_0_25                   0x0193
-MX23_PAD_AUART1_CTS__GPIO_0_26                 0x01a3
-MX23_PAD_AUART1_RTS__GPIO_0_27                 0x01b3
-MX23_PAD_AUART1_RX__GPIO_0_28                  0x01c3
-MX23_PAD_AUART1_TX__GPIO_0_29                  0x01d3
-MX23_PAD_I2C_SCL__GPIO_0_30                    0x01e3
-MX23_PAD_I2C_SDA__GPIO_0_31                    0x01f3
-MX23_PAD_LCD_D00__GPIO_1_0                     0x1003
-MX23_PAD_LCD_D01__GPIO_1_1                     0x1013
-MX23_PAD_LCD_D02__GPIO_1_2                     0x1023
-MX23_PAD_LCD_D03__GPIO_1_3                     0x1033
-MX23_PAD_LCD_D04__GPIO_1_4                     0x1043
-MX23_PAD_LCD_D05__GPIO_1_5                     0x1053
-MX23_PAD_LCD_D06__GPIO_1_6                     0x1063
-MX23_PAD_LCD_D07__GPIO_1_7                     0x1073
-MX23_PAD_LCD_D08__GPIO_1_8                     0x1083
-MX23_PAD_LCD_D09__GPIO_1_9                     0x1093
-MX23_PAD_LCD_D10__GPIO_1_10                    0x10a3
-MX23_PAD_LCD_D11__GPIO_1_11                    0x10b3
-MX23_PAD_LCD_D12__GPIO_1_12                    0x10c3
-MX23_PAD_LCD_D13__GPIO_1_13                    0x10d3
-MX23_PAD_LCD_D14__GPIO_1_14                    0x10e3
-MX23_PAD_LCD_D15__GPIO_1_15                    0x10f3
-MX23_PAD_LCD_D16__GPIO_1_16                    0x1103
-MX23_PAD_LCD_D17__GPIO_1_17                    0x1113
-MX23_PAD_LCD_RESET__GPIO_1_18                  0x1123
-MX23_PAD_LCD_RS__GPIO_1_19                     0x1133
-MX23_PAD_LCD_WR__GPIO_1_20                     0x1143
-MX23_PAD_LCD_CS__GPIO_1_21                     0x1153
-MX23_PAD_LCD_DOTCK__GPIO_1_22                  0x1163
-MX23_PAD_LCD_ENABLE__GPIO_1_23                 0x1173
-MX23_PAD_LCD_HSYNC__GPIO_1_24                  0x1183
-MX23_PAD_LCD_VSYNC__GPIO_1_25                  0x1193
-MX23_PAD_PWM0__GPIO_1_26                       0x11a3
-MX23_PAD_PWM1__GPIO_1_27                       0x11b3
-MX23_PAD_PWM2__GPIO_1_28                       0x11c3
-MX23_PAD_PWM3__GPIO_1_29                       0x11d3
-MX23_PAD_PWM4__GPIO_1_30                       0x11e3
-MX23_PAD_SSP1_CMD__GPIO_2_0                    0x2003
-MX23_PAD_SSP1_DETECT__GPIO_2_1                 0x2013
-MX23_PAD_SSP1_DATA0__GPIO_2_2                  0x2023
-MX23_PAD_SSP1_DATA1__GPIO_2_3                  0x2033
-MX23_PAD_SSP1_DATA2__GPIO_2_4                  0x2043
-MX23_PAD_SSP1_DATA3__GPIO_2_5                  0x2053
-MX23_PAD_SSP1_SCK__GPIO_2_6                    0x2063
-MX23_PAD_ROTARYA__GPIO_2_7                     0x2073
-MX23_PAD_ROTARYB__GPIO_2_8                     0x2083
-MX23_PAD_EMI_A00__GPIO_2_9                     0x2093
-MX23_PAD_EMI_A01__GPIO_2_10                    0x20a3
-MX23_PAD_EMI_A02__GPIO_2_11                    0x20b3
-MX23_PAD_EMI_A03__GPIO_2_12                    0x20c3
-MX23_PAD_EMI_A04__GPIO_2_13                    0x20d3
-MX23_PAD_EMI_A05__GPIO_2_14                    0x20e3
-MX23_PAD_EMI_A06__GPIO_2_15                    0x20f3
-MX23_PAD_EMI_A07__GPIO_2_16                    0x2103
-MX23_PAD_EMI_A08__GPIO_2_17                    0x2113
-MX23_PAD_EMI_A09__GPIO_2_18                    0x2123
-MX23_PAD_EMI_A10__GPIO_2_19                    0x2133
-MX23_PAD_EMI_A11__GPIO_2_20                    0x2143
-MX23_PAD_EMI_A12__GPIO_2_21                    0x2153
-MX23_PAD_EMI_BA0__GPIO_2_22                    0x2163
-MX23_PAD_EMI_BA1__GPIO_2_23                    0x2173
-MX23_PAD_EMI_CASN__GPIO_2_24                   0x2183
-MX23_PAD_EMI_CE0N__GPIO_2_25                   0x2193
-MX23_PAD_EMI_CE1N__GPIO_2_26                   0x21a3
-MX23_PAD_GPMI_CE1N__GPIO_2_27                  0x21b3
-MX23_PAD_GPMI_CE0N__GPIO_2_28                  0x21c3
-MX23_PAD_EMI_CKE__GPIO_2_29                    0x21d3
-MX23_PAD_EMI_RASN__GPIO_2_30                   0x21e3
-MX23_PAD_EMI_WEN__GPIO_2_31                    0x21f3
+Valid values for i.MX28/i.MX23 pinmux-id are defined in
+arch/arm/boot/dts/imx28-pinfunc.h and arch/arm/boot/dts/imx23-pinfunc.h.
+The definitions for the padconfig properties can be found in
+arch/arm/boot/dts/mxs-pinfunc.h.
index 2b3206824353f612d3c72e81eae0b1a157f9d1c7..1ee020eec620a999d5284b666426c34b8667c1d3 100644 (file)
@@ -386,6 +386,13 @@ choice
                  when u-boot hands over to the kernel, the system
                  silently crashes, with no serial output at all.
 
+       config DEBUG_VF_UART
+               bool "Vybrid UART"
+               depends on SOC_VF610
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on Vybrid based platforms.
+
        config DEBUG_NOMADIK_UART
                bool "Kernel low-level debugging messages via NOMADIK UART"
                depends on ARCH_NOMADIK
@@ -921,6 +928,7 @@ config DEBUG_LL_INCLUDE
        default "debug/tegra.S" if DEBUG_TEGRA_UART
        default "debug/ux500.S" if DEBUG_UX500_UART
        default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT
+       default "debug/vf.S" if DEBUG_VF_UART
        default "debug/vt8500.S" if DEBUG_VT8500_UART0
        default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
        default "mach/debug-macro.S"
index 405c9eca170e0d82aa513f061f870131acf2157c..f5d26e6821e6a0bac9a0a1da50e18ccf75632d0b 100644 (file)
@@ -135,17 +135,28 @@ dtb-$(CONFIG_ARCH_MXC) += \
        imx53-mba53.dtb \
        imx53-qsb.dtb \
        imx53-smd.dtb \
+       imx6dl-gw51xx.dtb \
+       imx6dl-gw52xx.dtb \
+       imx6dl-gw53xx.dtb \
+       imx6dl-gw54xx.dtb \
        imx6dl-sabreauto.dtb \
        imx6dl-sabresd.dtb \
        imx6dl-wandboard.dtb \
        imx6q-arm2.dtb \
+       imx6q-gw51xx.dtb \
+       imx6q-gw52xx.dtb \
+       imx6q-gw53xx.dtb \
+       imx6q-gw5400-a.dtb \
+       imx6q-gw54xx.dtb \
        imx6q-phytec-pbab01.dtb \
        imx6q-sabreauto.dtb \
        imx6q-sabrelite.dtb \
        imx6q-sabresd.dtb \
        imx6q-sbc6x.dtb \
+       imx6q-udoo.dtb \
        imx6q-wandboard.dtb \
        imx6sl-evk.dtb \
+       vf610-cosmic.dtb \
        vf610-twr.dtb
 dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
        imx23-olinuxino.dtb \
@@ -161,6 +172,7 @@ dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
        imx28-cfa10057.dtb \
        imx28-cfa10058.dtb \
        imx28-evk.dtb \
+       imx28-m28cu3.dtb \
        imx28-m28evk.dtb \
        imx28-sps1.dtb \
        imx28-tx28.dtb
index 185c7c01102ad755541e420faa77ee708fdab498..1f026adefd451e594628d1855acf949f9cd7d7cf 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /dts-v1/;
-/include/ "imx23.dtsi"
+#include "imx23.dtsi"
 
 / {
        model = "Freescale i.MX23 Evaluation Kit";
                                hog_pins_a: hog@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1123 /* MX23_PAD_LCD_RESET__GPIO_1_18 */
-                                               0x11d3 /* MX23_PAD_PWM3__GPIO_1_29 */
-                                               0x11e3 /* MX23_PAD_PWM4__GPIO_1_30 */
-                                               0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */
+                                               MX23_PAD_LCD_RESET__GPIO_1_18
+                                               MX23_PAD_PWM3__GPIO_1_29
+                                               MX23_PAD_PWM4__GPIO_1_30
+                                               MX23_PAD_SSP1_DETECT__SSP1_DETECT
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
 
index fc766ae12e24526fcbb5e0e79508acd3a0721f51..526bfdbd87f9f84f08747c6c045c059a657d2cbc 100644 (file)
@@ -12,7 +12,7 @@
  */
 
 /dts-v1/;
-/include/ "imx23.dtsi"
+#include "imx23.dtsi"
 
 / {
        model = "i.MX23 Olinuxino Low Cost Board";
                                hog_pins_a: hog@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */
+                                               MX23_PAD_GPMI_ALE__GPIO_0_17
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                led_pin_gpio2_1: led_gpio2_1@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */
+                                               MX23_PAD_SSP1_DETECT__GPIO_2_1
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
 
diff --git a/arch/arm/boot/dts/imx23-pinfunc.h b/arch/arm/boot/dts/imx23-pinfunc.h
new file mode 100644 (file)
index 0000000..5c0f32c
--- /dev/null
@@ -0,0 +1,333 @@
+/*
+ * Header providing constants for i.MX23 pinctrl bindings.
+ *
+ * Copyright (C) 2013 Lothar Waßmann <LW@KARO-electronics.de>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#ifndef __DT_BINDINGS_MX23_PINCTRL_H__
+#define __DT_BINDINGS_MX23_PINCTRL_H__
+
+#include "mxs-pinfunc.h"
+
+#define MX23_PAD_GPMI_D00__GPMI_D00                    0x0000
+#define MX23_PAD_GPMI_D01__GPMI_D01                    0x0010
+#define MX23_PAD_GPMI_D02__GPMI_D02                    0x0020
+#define MX23_PAD_GPMI_D03__GPMI_D03                    0x0030
+#define MX23_PAD_GPMI_D04__GPMI_D04                    0x0040
+#define MX23_PAD_GPMI_D05__GPMI_D05                    0x0050
+#define MX23_PAD_GPMI_D06__GPMI_D06                    0x0060
+#define MX23_PAD_GPMI_D07__GPMI_D07                    0x0070
+#define MX23_PAD_GPMI_D08__GPMI_D08                    0x0080
+#define MX23_PAD_GPMI_D09__GPMI_D09                    0x0090
+#define MX23_PAD_GPMI_D10__GPMI_D10                    0x00a0
+#define MX23_PAD_GPMI_D11__GPMI_D11                    0x00b0
+#define MX23_PAD_GPMI_D12__GPMI_D12                    0x00c0
+#define MX23_PAD_GPMI_D13__GPMI_D13                    0x00d0
+#define MX23_PAD_GPMI_D14__GPMI_D14                    0x00e0
+#define MX23_PAD_GPMI_D15__GPMI_D15                    0x00f0
+#define MX23_PAD_GPMI_CLE__GPMI_CLE                    0x0100
+#define MX23_PAD_GPMI_ALE__GPMI_ALE                    0x0110
+#define MX23_PAD_GPMI_CE2N__GPMI_CE2N                  0x0120
+#define MX23_PAD_GPMI_RDY0__GPMI_RDY0                  0x0130
+#define MX23_PAD_GPMI_RDY1__GPMI_RDY1                  0x0140
+#define MX23_PAD_GPMI_RDY2__GPMI_RDY2                  0x0150
+#define MX23_PAD_GPMI_RDY3__GPMI_RDY3                  0x0160
+#define MX23_PAD_GPMI_WPN__GPMI_WPN                    0x0170
+#define MX23_PAD_GPMI_WRN__GPMI_WRN                    0x0180
+#define MX23_PAD_GPMI_RDN__GPMI_RDN                    0x0190
+#define MX23_PAD_AUART1_CTS__AUART1_CTS                        0x01a0
+#define MX23_PAD_AUART1_RTS__AUART1_RTS                        0x01b0
+#define MX23_PAD_AUART1_RX__AUART1_RX                  0x01c0
+#define MX23_PAD_AUART1_TX__AUART1_TX                  0x01d0
+#define MX23_PAD_I2C_SCL__I2C_SCL                      0x01e0
+#define MX23_PAD_I2C_SDA__I2C_SDA                      0x01f0
+#define MX23_PAD_LCD_D00__LCD_D00                      0x1000
+#define MX23_PAD_LCD_D01__LCD_D01                      0x1010
+#define MX23_PAD_LCD_D02__LCD_D02                      0x1020
+#define MX23_PAD_LCD_D03__LCD_D03                      0x1030
+#define MX23_PAD_LCD_D04__LCD_D04                      0x1040
+#define MX23_PAD_LCD_D05__LCD_D05                      0x1050
+#define MX23_PAD_LCD_D06__LCD_D06                      0x1060
+#define MX23_PAD_LCD_D07__LCD_D07                      0x1070
+#define MX23_PAD_LCD_D08__LCD_D08                      0x1080
+#define MX23_PAD_LCD_D09__LCD_D09                      0x1090
+#define MX23_PAD_LCD_D10__LCD_D10                      0x10a0
+#define MX23_PAD_LCD_D11__LCD_D11                      0x10b0
+#define MX23_PAD_LCD_D12__LCD_D12                      0x10c0
+#define MX23_PAD_LCD_D13__LCD_D13                      0x10d0
+#define MX23_PAD_LCD_D14__LCD_D14                      0x10e0
+#define MX23_PAD_LCD_D15__LCD_D15                      0x10f0
+#define MX23_PAD_LCD_D16__LCD_D16                      0x1100
+#define MX23_PAD_LCD_D17__LCD_D17                      0x1110
+#define MX23_PAD_LCD_RESET__LCD_RESET                  0x1120
+#define MX23_PAD_LCD_RS__LCD_RS                                0x1130
+#define MX23_PAD_LCD_WR__LCD_WR                                0x1140
+#define MX23_PAD_LCD_CS__LCD_CS                                0x1150
+#define MX23_PAD_LCD_DOTCK__LCD_DOTCK                  0x1160
+#define MX23_PAD_LCD_ENABLE__LCD_ENABLE                        0x1170
+#define MX23_PAD_LCD_HSYNC__LCD_HSYNC                  0x1180
+#define MX23_PAD_LCD_VSYNC__LCD_VSYNC                  0x1190
+#define MX23_PAD_PWM0__PWM0                            0x11a0
+#define MX23_PAD_PWM1__PWM1                            0x11b0
+#define MX23_PAD_PWM2__PWM2                            0x11c0
+#define MX23_PAD_PWM3__PWM3                            0x11d0
+#define MX23_PAD_PWM4__PWM4                            0x11e0
+#define MX23_PAD_SSP1_CMD__SSP1_CMD                    0x2000
+#define MX23_PAD_SSP1_DETECT__SSP1_DETECT              0x2010
+#define MX23_PAD_SSP1_DATA0__SSP1_DATA0                        0x2020
+#define MX23_PAD_SSP1_DATA1__SSP1_DATA1                        0x2030
+#define MX23_PAD_SSP1_DATA2__SSP1_DATA2                        0x2040
+#define MX23_PAD_SSP1_DATA3__SSP1_DATA3                        0x2050
+#define MX23_PAD_SSP1_SCK__SSP1_SCK                    0x2060
+#define MX23_PAD_ROTARYA__ROTARYA                      0x2070
+#define MX23_PAD_ROTARYB__ROTARYB                      0x2080
+#define MX23_PAD_EMI_A00__EMI_A00                      0x2090
+#define MX23_PAD_EMI_A01__EMI_A01                      0x20a0
+#define MX23_PAD_EMI_A02__EMI_A02                      0x20b0
+#define MX23_PAD_EMI_A03__EMI_A03                      0x20c0
+#define MX23_PAD_EMI_A04__EMI_A04                      0x20d0
+#define MX23_PAD_EMI_A05__EMI_A05                      0x20e0
+#define MX23_PAD_EMI_A06__EMI_A06                      0x20f0
+#define MX23_PAD_EMI_A07__EMI_A07                      0x2100
+#define MX23_PAD_EMI_A08__EMI_A08                      0x2110
+#define MX23_PAD_EMI_A09__EMI_A09                      0x2120
+#define MX23_PAD_EMI_A10__EMI_A10                      0x2130
+#define MX23_PAD_EMI_A11__EMI_A11                      0x2140
+#define MX23_PAD_EMI_A12__EMI_A12                      0x2150
+#define MX23_PAD_EMI_BA0__EMI_BA0                      0x2160
+#define MX23_PAD_EMI_BA1__EMI_BA1                      0x2170
+#define MX23_PAD_EMI_CASN__EMI_CASN                    0x2180
+#define MX23_PAD_EMI_CE0N__EMI_CE0N                    0x2190
+#define MX23_PAD_EMI_CE1N__EMI_CE1N                    0x21a0
+#define MX23_PAD_GPMI_CE1N__GPMI_CE1N                  0x21b0
+#define MX23_PAD_GPMI_CE0N__GPMI_CE0N                  0x21c0
+#define MX23_PAD_EMI_CKE__EMI_CKE                      0x21d0
+#define MX23_PAD_EMI_RASN__EMI_RASN                    0x21e0
+#define MX23_PAD_EMI_WEN__EMI_WEN                      0x21f0
+#define MX23_PAD_EMI_D00__EMI_D00                      0x3000
+#define MX23_PAD_EMI_D01__EMI_D01                      0x3010
+#define MX23_PAD_EMI_D02__EMI_D02                      0x3020
+#define MX23_PAD_EMI_D03__EMI_D03                      0x3030
+#define MX23_PAD_EMI_D04__EMI_D04                      0x3040
+#define MX23_PAD_EMI_D05__EMI_D05                      0x3050
+#define MX23_PAD_EMI_D06__EMI_D06                      0x3060
+#define MX23_PAD_EMI_D07__EMI_D07                      0x3070
+#define MX23_PAD_EMI_D08__EMI_D08                      0x3080
+#define MX23_PAD_EMI_D09__EMI_D09                      0x3090
+#define MX23_PAD_EMI_D10__EMI_D10                      0x30a0
+#define MX23_PAD_EMI_D11__EMI_D11                      0x30b0
+#define MX23_PAD_EMI_D12__EMI_D12                      0x30c0
+#define MX23_PAD_EMI_D13__EMI_D13                      0x30d0
+#define MX23_PAD_EMI_D14__EMI_D14                      0x30e0
+#define MX23_PAD_EMI_D15__EMI_D15                      0x30f0
+#define MX23_PAD_EMI_DQM0__EMI_DQM0                    0x3100
+#define MX23_PAD_EMI_DQM1__EMI_DQM1                    0x3110
+#define MX23_PAD_EMI_DQS0__EMI_DQS0                    0x3120
+#define MX23_PAD_EMI_DQS1__EMI_DQS1                    0x3130
+#define MX23_PAD_EMI_CLK__EMI_CLK                      0x3140
+#define MX23_PAD_EMI_CLKN__EMI_CLKN                    0x3150
+#define MX23_PAD_GPMI_D00__LCD_D8                      0x0001
+#define MX23_PAD_GPMI_D01__LCD_D9                      0x0011
+#define MX23_PAD_GPMI_D02__LCD_D10                     0x0021
+#define MX23_PAD_GPMI_D03__LCD_D11                     0x0031
+#define MX23_PAD_GPMI_D04__LCD_D12                     0x0041
+#define MX23_PAD_GPMI_D05__LCD_D13                     0x0051
+#define MX23_PAD_GPMI_D06__LCD_D14                     0x0061
+#define MX23_PAD_GPMI_D07__LCD_D15                     0x0071
+#define MX23_PAD_GPMI_D08__LCD_D18                     0x0081
+#define MX23_PAD_GPMI_D09__LCD_D19                     0x0091
+#define MX23_PAD_GPMI_D10__LCD_D20                     0x00a1
+#define MX23_PAD_GPMI_D11__LCD_D21                     0x00b1
+#define MX23_PAD_GPMI_D12__LCD_D22                     0x00c1
+#define MX23_PAD_GPMI_D13__LCD_D23                     0x00d1
+#define MX23_PAD_GPMI_D14__AUART2_RX                   0x00e1
+#define MX23_PAD_GPMI_D15__AUART2_TX                   0x00f1
+#define MX23_PAD_GPMI_CLE__LCD_D16                     0x0101
+#define MX23_PAD_GPMI_ALE__LCD_D17                     0x0111
+#define MX23_PAD_GPMI_CE2N__ATA_A2                     0x0121
+#define MX23_PAD_AUART1_RTS__IR_CLK                    0x01b1
+#define MX23_PAD_AUART1_RX__IR_RX                      0x01c1
+#define MX23_PAD_AUART1_TX__IR_TX                      0x01d1
+#define MX23_PAD_I2C_SCL__GPMI_RDY2                    0x01e1
+#define MX23_PAD_I2C_SDA__GPMI_CE2N                    0x01f1
+#define MX23_PAD_LCD_D00__ETM_DA8                      0x1001
+#define MX23_PAD_LCD_D01__ETM_DA9                      0x1011
+#define MX23_PAD_LCD_D02__ETM_DA10                     0x1021
+#define MX23_PAD_LCD_D03__ETM_DA11                     0x1031
+#define MX23_PAD_LCD_D04__ETM_DA12                     0x1041
+#define MX23_PAD_LCD_D05__ETM_DA13                     0x1051
+#define MX23_PAD_LCD_D06__ETM_DA14                     0x1061
+#define MX23_PAD_LCD_D07__ETM_DA15                     0x1071
+#define MX23_PAD_LCD_D08__ETM_DA0                      0x1081
+#define MX23_PAD_LCD_D09__ETM_DA1                      0x1091
+#define MX23_PAD_LCD_D10__ETM_DA2                      0x10a1
+#define MX23_PAD_LCD_D11__ETM_DA3                      0x10b1
+#define MX23_PAD_LCD_D12__ETM_DA4                      0x10c1
+#define MX23_PAD_LCD_D13__ETM_DA5                      0x10d1
+#define MX23_PAD_LCD_D14__ETM_DA6                      0x10e1
+#define MX23_PAD_LCD_D15__ETM_DA7                      0x10f1
+#define MX23_PAD_LCD_RESET__ETM_TCTL                   0x1121
+#define MX23_PAD_LCD_RS__ETM_TCLK                      0x1131
+#define MX23_PAD_LCD_DOTCK__GPMI_RDY3                  0x1161
+#define MX23_PAD_LCD_ENABLE__I2C_SCL                   0x1171
+#define MX23_PAD_LCD_HSYNC__I2C_SDA                    0x1181
+#define MX23_PAD_LCD_VSYNC__LCD_BUSY                   0x1191
+#define MX23_PAD_PWM0__ROTARYA                         0x11a1
+#define MX23_PAD_PWM1__ROTARYB                         0x11b1
+#define MX23_PAD_PWM2__GPMI_RDY3                       0x11c1
+#define MX23_PAD_PWM3__ETM_TCTL                                0x11d1
+#define MX23_PAD_PWM4__ETM_TCLK                                0x11e1
+#define MX23_PAD_SSP1_DETECT__GPMI_CE3N                        0x2011
+#define MX23_PAD_SSP1_DATA1__I2C_SCL                   0x2031
+#define MX23_PAD_SSP1_DATA2__I2C_SDA                   0x2041
+#define MX23_PAD_ROTARYA__AUART2_RTS                   0x2071
+#define MX23_PAD_ROTARYB__AUART2_CTS                   0x2081
+#define MX23_PAD_GPMI_D00__SSP2_DATA0                  0x0002
+#define MX23_PAD_GPMI_D01__SSP2_DATA1                  0x0012
+#define MX23_PAD_GPMI_D02__SSP2_DATA2                  0x0022
+#define MX23_PAD_GPMI_D03__SSP2_DATA3                  0x0032
+#define MX23_PAD_GPMI_D04__SSP2_DATA4                  0x0042
+#define MX23_PAD_GPMI_D05__SSP2_DATA5                  0x0052
+#define MX23_PAD_GPMI_D06__SSP2_DATA6                  0x0062
+#define MX23_PAD_GPMI_D07__SSP2_DATA7                  0x0072
+#define MX23_PAD_GPMI_D08__SSP1_DATA4                  0x0082
+#define MX23_PAD_GPMI_D09__SSP1_DATA5                  0x0092
+#define MX23_PAD_GPMI_D10__SSP1_DATA6                  0x00a2
+#define MX23_PAD_GPMI_D11__SSP1_DATA7                  0x00b2
+#define MX23_PAD_GPMI_D15__GPMI_CE3N                   0x00f2
+#define MX23_PAD_GPMI_RDY0__SSP2_DETECT                        0x0132
+#define MX23_PAD_GPMI_RDY1__SSP2_CMD                   0x0142
+#define MX23_PAD_GPMI_WRN__SSP2_SCK                    0x0182
+#define MX23_PAD_AUART1_CTS__SSP1_DATA4                        0x01a2
+#define MX23_PAD_AUART1_RTS__SSP1_DATA5                        0x01b2
+#define MX23_PAD_AUART1_RX__SSP1_DATA6                 0x01c2
+#define MX23_PAD_AUART1_TX__SSP1_DATA7                 0x01d2
+#define MX23_PAD_I2C_SCL__AUART1_TX                    0x01e2
+#define MX23_PAD_I2C_SDA__AUART1_RX                    0x01f2
+#define MX23_PAD_LCD_D08__SAIF2_SDATA0                 0x1082
+#define MX23_PAD_LCD_D09__SAIF1_SDATA0                 0x1092
+#define MX23_PAD_LCD_D10__SAIF_MCLK_BITCLK             0x10a2
+#define MX23_PAD_LCD_D11__SAIF_LRCLK                   0x10b2
+#define MX23_PAD_LCD_D12__SAIF2_SDATA1                 0x10c2
+#define MX23_PAD_LCD_D13__SAIF2_SDATA2                 0x10d2
+#define MX23_PAD_LCD_D14__SAIF1_SDATA2                 0x10e2
+#define MX23_PAD_LCD_D15__SAIF1_SDATA1                 0x10f2
+#define MX23_PAD_LCD_D16__SAIF_ALT_BITCLK              0x1102
+#define MX23_PAD_LCD_RESET__GPMI_CE3N                  0x1122
+#define MX23_PAD_PWM0__DUART_RX                                0x11a2
+#define MX23_PAD_PWM1__DUART_TX                                0x11b2
+#define MX23_PAD_PWM3__AUART1_CTS                      0x11d2
+#define MX23_PAD_PWM4__AUART1_RTS                      0x11e2
+#define MX23_PAD_SSP1_CMD__JTAG_TDO                    0x2002
+#define MX23_PAD_SSP1_DETECT__USB_OTG_ID               0x2012
+#define MX23_PAD_SSP1_DATA0__JTAG_TDI                  0x2022
+#define MX23_PAD_SSP1_DATA1__JTAG_TCLK                 0x2032
+#define MX23_PAD_SSP1_DATA2__JTAG_RTCK                 0x2042
+#define MX23_PAD_SSP1_DATA3__JTAG_TMS                  0x2052
+#define MX23_PAD_SSP1_SCK__JTAG_TRST                   0x2062
+#define MX23_PAD_ROTARYA__SPDIF                                0x2072
+#define MX23_PAD_ROTARYB__GPMI_CE3N                    0x2082
+#define MX23_PAD_GPMI_D00__GPIO_0_0                    0x0003
+#define MX23_PAD_GPMI_D01__GPIO_0_1                    0x0013
+#define MX23_PAD_GPMI_D02__GPIO_0_2                    0x0023
+#define MX23_PAD_GPMI_D03__GPIO_0_3                    0x0033
+#define MX23_PAD_GPMI_D04__GPIO_0_4                    0x0043
+#define MX23_PAD_GPMI_D05__GPIO_0_5                    0x0053
+#define MX23_PAD_GPMI_D06__GPIO_0_6                    0x0063
+#define MX23_PAD_GPMI_D07__GPIO_0_7                    0x0073
+#define MX23_PAD_GPMI_D08__GPIO_0_8                    0x0083
+#define MX23_PAD_GPMI_D09__GPIO_0_9                    0x0093
+#define MX23_PAD_GPMI_D10__GPIO_0_10                   0x00a3
+#define MX23_PAD_GPMI_D11__GPIO_0_11                   0x00b3
+#define MX23_PAD_GPMI_D12__GPIO_0_12                   0x00c3
+#define MX23_PAD_GPMI_D13__GPIO_0_13                   0x00d3
+#define MX23_PAD_GPMI_D14__GPIO_0_14                   0x00e3
+#define MX23_PAD_GPMI_D15__GPIO_0_15                   0x00f3
+#define MX23_PAD_GPMI_CLE__GPIO_0_16                   0x0103
+#define MX23_PAD_GPMI_ALE__GPIO_0_17                   0x0113
+#define MX23_PAD_GPMI_CE2N__GPIO_0_18                  0x0123
+#define MX23_PAD_GPMI_RDY0__GPIO_0_19                  0x0133
+#define MX23_PAD_GPMI_RDY1__GPIO_0_20                  0x0143
+#define MX23_PAD_GPMI_RDY2__GPIO_0_21                  0x0153
+#define MX23_PAD_GPMI_RDY3__GPIO_0_22                  0x0163
+#define MX23_PAD_GPMI_WPN__GPIO_0_23                   0x0173
+#define MX23_PAD_GPMI_WRN__GPIO_0_24                   0x0183
+#define MX23_PAD_GPMI_RDN__GPIO_0_25                   0x0193
+#define MX23_PAD_AUART1_CTS__GPIO_0_26                 0x01a3
+#define MX23_PAD_AUART1_RTS__GPIO_0_27                 0x01b3
+#define MX23_PAD_AUART1_RX__GPIO_0_28                  0x01c3
+#define MX23_PAD_AUART1_TX__GPIO_0_29                  0x01d3
+#define MX23_PAD_I2C_SCL__GPIO_0_30                    0x01e3
+#define MX23_PAD_I2C_SDA__GPIO_0_31                    0x01f3
+#define MX23_PAD_LCD_D00__GPIO_1_0                     0x1003
+#define MX23_PAD_LCD_D01__GPIO_1_1                     0x1013
+#define MX23_PAD_LCD_D02__GPIO_1_2                     0x1023
+#define MX23_PAD_LCD_D03__GPIO_1_3                     0x1033
+#define MX23_PAD_LCD_D04__GPIO_1_4                     0x1043
+#define MX23_PAD_LCD_D05__GPIO_1_5                     0x1053
+#define MX23_PAD_LCD_D06__GPIO_1_6                     0x1063
+#define MX23_PAD_LCD_D07__GPIO_1_7                     0x1073
+#define MX23_PAD_LCD_D08__GPIO_1_8                     0x1083
+#define MX23_PAD_LCD_D09__GPIO_1_9                     0x1093
+#define MX23_PAD_LCD_D10__GPIO_1_10                    0x10a3
+#define MX23_PAD_LCD_D11__GPIO_1_11                    0x10b3
+#define MX23_PAD_LCD_D12__GPIO_1_12                    0x10c3
+#define MX23_PAD_LCD_D13__GPIO_1_13                    0x10d3
+#define MX23_PAD_LCD_D14__GPIO_1_14                    0x10e3
+#define MX23_PAD_LCD_D15__GPIO_1_15                    0x10f3
+#define MX23_PAD_LCD_D16__GPIO_1_16                    0x1103
+#define MX23_PAD_LCD_D17__GPIO_1_17                    0x1113
+#define MX23_PAD_LCD_RESET__GPIO_1_18                  0x1123
+#define MX23_PAD_LCD_RS__GPIO_1_19                     0x1133
+#define MX23_PAD_LCD_WR__GPIO_1_20                     0x1143
+#define MX23_PAD_LCD_CS__GPIO_1_21                     0x1153
+#define MX23_PAD_LCD_DOTCK__GPIO_1_22                  0x1163
+#define MX23_PAD_LCD_ENABLE__GPIO_1_23                 0x1173
+#define MX23_PAD_LCD_HSYNC__GPIO_1_24                  0x1183
+#define MX23_PAD_LCD_VSYNC__GPIO_1_25                  0x1193
+#define MX23_PAD_PWM0__GPIO_1_26                       0x11a3
+#define MX23_PAD_PWM1__GPIO_1_27                       0x11b3
+#define MX23_PAD_PWM2__GPIO_1_28                       0x11c3
+#define MX23_PAD_PWM3__GPIO_1_29                       0x11d3
+#define MX23_PAD_PWM4__GPIO_1_30                       0x11e3
+#define MX23_PAD_SSP1_CMD__GPIO_2_0                    0x2003
+#define MX23_PAD_SSP1_DETECT__GPIO_2_1                 0x2013
+#define MX23_PAD_SSP1_DATA0__GPIO_2_2                  0x2023
+#define MX23_PAD_SSP1_DATA1__GPIO_2_3                  0x2033
+#define MX23_PAD_SSP1_DATA2__GPIO_2_4                  0x2043
+#define MX23_PAD_SSP1_DATA3__GPIO_2_5                  0x2053
+#define MX23_PAD_SSP1_SCK__GPIO_2_6                    0x2063
+#define MX23_PAD_ROTARYA__GPIO_2_7                     0x2073
+#define MX23_PAD_ROTARYB__GPIO_2_8                     0x2083
+#define MX23_PAD_EMI_A00__GPIO_2_9                     0x2093
+#define MX23_PAD_EMI_A01__GPIO_2_10                    0x20a3
+#define MX23_PAD_EMI_A02__GPIO_2_11                    0x20b3
+#define MX23_PAD_EMI_A03__GPIO_2_12                    0x20c3
+#define MX23_PAD_EMI_A04__GPIO_2_13                    0x20d3
+#define MX23_PAD_EMI_A05__GPIO_2_14                    0x20e3
+#define MX23_PAD_EMI_A06__GPIO_2_15                    0x20f3
+#define MX23_PAD_EMI_A07__GPIO_2_16                    0x2103
+#define MX23_PAD_EMI_A08__GPIO_2_17                    0x2113
+#define MX23_PAD_EMI_A09__GPIO_2_18                    0x2123
+#define MX23_PAD_EMI_A10__GPIO_2_19                    0x2133
+#define MX23_PAD_EMI_A11__GPIO_2_20                    0x2143
+#define MX23_PAD_EMI_A12__GPIO_2_21                    0x2153
+#define MX23_PAD_EMI_BA0__GPIO_2_22                    0x2163
+#define MX23_PAD_EMI_BA1__GPIO_2_23                    0x2173
+#define MX23_PAD_EMI_CASN__GPIO_2_24                   0x2183
+#define MX23_PAD_EMI_CE0N__GPIO_2_25                   0x2193
+#define MX23_PAD_EMI_CE1N__GPIO_2_26                   0x21a3
+#define MX23_PAD_GPMI_CE1N__GPIO_2_27                  0x21b3
+#define MX23_PAD_GPMI_CE0N__GPIO_2_28                  0x21c3
+#define MX23_PAD_EMI_CKE__GPIO_2_29                    0x21d3
+#define MX23_PAD_EMI_RASN__GPIO_2_30                   0x21e3
+#define MX23_PAD_EMI_WEN__GPIO_2_31                    0x21f3
+
+#endif /* __DT_BINDINGS_MX23_PINCTRL_H__ */
index 85c3864b6a56a92de2a85d52ddb35bcc1ce15c4f..cb64e2b191ea1ae48098c1c79ced4afe6f57b521 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /dts-v1/;
-/include/ "imx23.dtsi"
+#include "imx23.dtsi"
 
 / {
        model = "Freescale STMP378x Development Board";
                                hog_pins_a: hog@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x11d3 /* MX23_PAD_PWM3__GPIO_1_29 */
-                                               0x11e3 /* MX23_PAD_PWM4__GPIO_1_30 */
+                                               MX23_PAD_PWM3__GPIO_1_29
+                                               MX23_PAD_PWM4__GPIO_1_30
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
                };
index 07caf767d4289557d8696362fdb1c77f783f0a52..c96ceaef7ddf565b448f5b3ba707ff80824d3cf2 100644 (file)
@@ -9,7 +9,8 @@
  * http://www.gnu.org/copyleft/gpl.html
  */
 
-/include/ "skeleton.dtsi"
+#include "skeleton.dtsi"
+#include "imx23-pinfunc.h"
 
 / {
        interrupt-parent = <&icoll>;
                                duart_pins_a: duart@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x11a2 /* MX23_PAD_PWM0__DUART_RX */
-                                               0x11b2 /* MX23_PAD_PWM1__DUART_TX */
+                                               MX23_PAD_PWM0__DUART_RX
+                                               MX23_PAD_PWM1__DUART_TX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart0_pins_a: auart0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x01c0 /* MX23_PAD_AUART1_RX__AUART1_RX */
-                                               0x01d0 /* MX23_PAD_AUART1_TX__AUART1_TX */
-                                               0x01a0 /* MX23_PAD_AUART1_CTS__AUART1_CTS */
-                                               0x01b0 /* MX23_PAD_AUART1_RTS__AUART1_RTS */
+                                               MX23_PAD_AUART1_RX__AUART1_RX
+                                               MX23_PAD_AUART1_TX__AUART1_TX
+                                               MX23_PAD_AUART1_CTS__AUART1_CTS
+                                               MX23_PAD_AUART1_RTS__AUART1_RTS
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart0_2pins_a: auart0-2pins@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x01e2 /* MX23_PAD_I2C_SCL__AUART1_TX */
-                                               0x01f2 /* MX23_PAD_I2C_SDA__AUART1_RX */
+                                               MX23_PAD_I2C_SCL__AUART1_TX
+                                               MX23_PAD_I2C_SDA__AUART1_RX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                gpmi_pins_a: gpmi-nand@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0000 /* MX23_PAD_GPMI_D00__GPMI_D00 */
-                                               0x0010 /* MX23_PAD_GPMI_D01__GPMI_D01 */
-                                               0x0020 /* MX23_PAD_GPMI_D02__GPMI_D02 */
-                                               0x0030 /* MX23_PAD_GPMI_D03__GPMI_D03 */
-                                               0x0040 /* MX23_PAD_GPMI_D04__GPMI_D04 */
-                                               0x0050 /* MX23_PAD_GPMI_D05__GPMI_D05 */
-                                               0x0060 /* MX23_PAD_GPMI_D06__GPMI_D06 */
-                                               0x0070 /* MX23_PAD_GPMI_D07__GPMI_D07 */
-                                               0x0100 /* MX23_PAD_GPMI_CLE__GPMI_CLE */
-                                               0x0110 /* MX23_PAD_GPMI_ALE__GPMI_ALE */
-                                               0x0130 /* MX23_PAD_GPMI_RDY0__GPMI_RDY0 */
-                                               0x0140 /* MX23_PAD_GPMI_RDY1__GPMI_RDY1 */
-                                               0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */
-                                               0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */
-                                               0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */
-                                               0x21b0 /* MX23_PAD_GPMI_CE1N__GPMI_CE1N */
-                                               0x21c0 /* MX23_PAD_GPMI_CE0N__GPMI_CE0N */
+                                               MX23_PAD_GPMI_D00__GPMI_D00
+                                               MX23_PAD_GPMI_D01__GPMI_D01
+                                               MX23_PAD_GPMI_D02__GPMI_D02
+                                               MX23_PAD_GPMI_D03__GPMI_D03
+                                               MX23_PAD_GPMI_D04__GPMI_D04
+                                               MX23_PAD_GPMI_D05__GPMI_D05
+                                               MX23_PAD_GPMI_D06__GPMI_D06
+                                               MX23_PAD_GPMI_D07__GPMI_D07
+                                               MX23_PAD_GPMI_CLE__GPMI_CLE
+                                               MX23_PAD_GPMI_ALE__GPMI_ALE
+                                               MX23_PAD_GPMI_RDY0__GPMI_RDY0
+                                               MX23_PAD_GPMI_RDY1__GPMI_RDY1
+                                               MX23_PAD_GPMI_WPN__GPMI_WPN
+                                               MX23_PAD_GPMI_WRN__GPMI_WRN
+                                               MX23_PAD_GPMI_RDN__GPMI_RDN
+                                               MX23_PAD_GPMI_CE1N__GPMI_CE1N
+                                               MX23_PAD_GPMI_CE0N__GPMI_CE0N
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                gpmi_pins_fixup: gpmi-pins-fixup {
                                        fsl,pinmux-ids = <
-                                               0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */
-                                               0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */
-                                               0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */
+                                               MX23_PAD_GPMI_WPN__GPMI_WPN
+                                               MX23_PAD_GPMI_WRN__GPMI_WRN
+                                               MX23_PAD_GPMI_RDN__GPMI_RDN
                                        >;
-                                       fsl,drive-strength = <2>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
                                };
 
                                mmc0_4bit_pins_a: mmc0-4bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */
-                                               0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */
-                                               0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */
-                                               0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */
-                                               0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */
-                                               0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */
+                                               MX23_PAD_SSP1_DATA0__SSP1_DATA0
+                                               MX23_PAD_SSP1_DATA1__SSP1_DATA1
+                                               MX23_PAD_SSP1_DATA2__SSP1_DATA2
+                                               MX23_PAD_SSP1_DATA3__SSP1_DATA3
+                                               MX23_PAD_SSP1_CMD__SSP1_CMD
+                                               MX23_PAD_SSP1_SCK__SSP1_SCK
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                mmc0_8bit_pins_a: mmc0-8bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */
-                                               0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */
-                                               0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */
-                                               0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */
-                                               0x0082 /* MX23_PAD_GPMI_D08__SSP1_DATA4 */
-                                               0x0092 /* MX23_PAD_GPMI_D09__SSP1_DATA5 */
-                                               0x00a2 /* MX23_PAD_GPMI_D10__SSP1_DATA6 */
-                                               0x00b2 /* MX23_PAD_GPMI_D11__SSP1_DATA7 */
-                                               0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */
-                                               0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */
-                                               0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */
+                                               MX23_PAD_SSP1_DATA0__SSP1_DATA0
+                                               MX23_PAD_SSP1_DATA1__SSP1_DATA1
+                                               MX23_PAD_SSP1_DATA2__SSP1_DATA2
+                                               MX23_PAD_SSP1_DATA3__SSP1_DATA3
+                                               MX23_PAD_GPMI_D08__SSP1_DATA4
+                                               MX23_PAD_GPMI_D09__SSP1_DATA5
+                                               MX23_PAD_GPMI_D10__SSP1_DATA6
+                                               MX23_PAD_GPMI_D11__SSP1_DATA7
+                                               MX23_PAD_SSP1_CMD__SSP1_CMD
+                                               MX23_PAD_SSP1_DETECT__SSP1_DETECT
+                                               MX23_PAD_SSP1_SCK__SSP1_SCK
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                mmc0_pins_fixup: mmc0-pins-fixup {
                                        fsl,pinmux-ids = <
-                                               0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */
-                                               0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */
+                                               MX23_PAD_SSP1_DETECT__SSP1_DETECT
+                                               MX23_PAD_SSP1_SCK__SSP1_SCK
                                        >;
-                                       fsl,pull-up = <0>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                pwm2_pins_a: pwm2@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x11c0 /* MX23_PAD_PWM2__PWM2 */
+                                               MX23_PAD_PWM2__PWM2
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_24bit_pins_a: lcdif-24bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1000 /* MX23_PAD_LCD_D00__LCD_D0 */
-                                               0x1010 /* MX23_PAD_LCD_D01__LCD_D1 */
-                                               0x1020 /* MX23_PAD_LCD_D02__LCD_D2 */
-                                               0x1030 /* MX23_PAD_LCD_D03__LCD_D3 */
-                                               0x1040 /* MX23_PAD_LCD_D04__LCD_D4 */
-                                               0x1050 /* MX23_PAD_LCD_D05__LCD_D5 */
-                                               0x1060 /* MX23_PAD_LCD_D06__LCD_D6 */
-                                               0x1070 /* MX23_PAD_LCD_D07__LCD_D7 */
-                                               0x1080 /* MX23_PAD_LCD_D08__LCD_D8 */
-                                               0x1090 /* MX23_PAD_LCD_D09__LCD_D9 */
-                                               0x10a0 /* MX23_PAD_LCD_D10__LCD_D10 */
-                                               0x10b0 /* MX23_PAD_LCD_D11__LCD_D11 */
-                                               0x10c0 /* MX23_PAD_LCD_D12__LCD_D12 */
-                                               0x10d0 /* MX23_PAD_LCD_D13__LCD_D13 */
-                                               0x10e0 /* MX23_PAD_LCD_D14__LCD_D14 */
-                                               0x10f0 /* MX23_PAD_LCD_D15__LCD_D15 */
-                                               0x1100 /* MX23_PAD_LCD_D16__LCD_D16 */
-                                               0x1110 /* MX23_PAD_LCD_D17__LCD_D17 */
-                                               0x0081 /* MX23_PAD_GPMI_D08__LCD_D18 */
-                                               0x0091 /* MX23_PAD_GPMI_D09__LCD_D19 */
-                                               0x00a1 /* MX23_PAD_GPMI_D10__LCD_D20 */
-                                               0x00b1 /* MX23_PAD_GPMI_D11__LCD_D21 */
-                                               0x00c1 /* MX23_PAD_GPMI_D12__LCD_D22 */
-                                               0x00d1 /* MX23_PAD_GPMI_D13__LCD_D23 */
-                                               0x1160 /* MX23_PAD_LCD_DOTCK__LCD_DOTCK */
-                                               0x1170 /* MX23_PAD_LCD_ENABLE__LCD_ENABLE */
-                                               0x1180 /* MX23_PAD_LCD_HSYNC__LCD_HSYNC */
-                                               0x1190 /* MX23_PAD_LCD_VSYNC__LCD_VSYNC */
+                                               MX23_PAD_LCD_D00__LCD_D00
+                                               MX23_PAD_LCD_D01__LCD_D01
+                                               MX23_PAD_LCD_D02__LCD_D02
+                                               MX23_PAD_LCD_D03__LCD_D03
+                                               MX23_PAD_LCD_D04__LCD_D04
+                                               MX23_PAD_LCD_D05__LCD_D05
+                                               MX23_PAD_LCD_D06__LCD_D06
+                                               MX23_PAD_LCD_D07__LCD_D07
+                                               MX23_PAD_LCD_D08__LCD_D08
+                                               MX23_PAD_LCD_D09__LCD_D09
+                                               MX23_PAD_LCD_D10__LCD_D10
+                                               MX23_PAD_LCD_D11__LCD_D11
+                                               MX23_PAD_LCD_D12__LCD_D12
+                                               MX23_PAD_LCD_D13__LCD_D13
+                                               MX23_PAD_LCD_D14__LCD_D14
+                                               MX23_PAD_LCD_D15__LCD_D15
+                                               MX23_PAD_LCD_D16__LCD_D16
+                                               MX23_PAD_LCD_D17__LCD_D17
+                                               MX23_PAD_GPMI_D08__LCD_D18
+                                               MX23_PAD_GPMI_D09__LCD_D19
+                                               MX23_PAD_GPMI_D10__LCD_D20
+                                               MX23_PAD_GPMI_D11__LCD_D21
+                                               MX23_PAD_GPMI_D12__LCD_D22
+                                               MX23_PAD_GPMI_D13__LCD_D23
+                                               MX23_PAD_LCD_DOTCK__LCD_DOTCK
+                                               MX23_PAD_LCD_ENABLE__LCD_ENABLE
+                                               MX23_PAD_LCD_HSYNC__LCD_HSYNC
+                                               MX23_PAD_LCD_VSYNC__LCD_VSYNC
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                spi2_pins_a: spi2@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0182 /* MX23_PAD_GPMI_WRN__SSP2_SCK */
-                                               0x0142 /* MX23_PAD_GPMI_RDY1__SSP2_CMD */
-                                               0x0002 /* MX23_PAD_GPMI_D00__SSP2_DATA0 */
-                                               0x0032 /* MX23_PAD_GPMI_D03__SSP2_DATA3 */
+                                               MX23_PAD_GPMI_WRN__SSP2_SCK
+                                               MX23_PAD_GPMI_RDY1__SSP2_CMD
+                                               MX23_PAD_GPMI_D00__SSP2_DATA0
+                                               MX23_PAD_GPMI_D03__SSP2_DATA3
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
                        };
 
index 2a377ca1881a9a40004a951a1a8310a02d434727..47c8c26012e4d24661124f15ff8396f428136797 100644 (file)
        model = "Armadeus Systems APF27Dev docking/development board";
        compatible = "armadeus,imx27-apf27dev", "armadeus,imx27-apf27", "fsl,imx27";
 
+       display: display {
+               model = "Chimei-LW700AT9003";
+               native-mode = <&timing0>;
+               bits-per-pixel = <16>;  /* non-standard but required */
+               fsl,pcr = <0xfae80083>; /* non-standard but required */
+               display-timings {
+                       timing0: 640x480 {
+                               clock-frequency = <33000033>;
+                               hactive = <800>;
+                               vactive = <640>;
+                               hback-porch = <96>;
+                               hfront-porch = <96>;
+                               vback-porch = <20>;
+                               vfront-porch = <21>;
+                               hsync-len = <64>;
+                               vsync-len = <4>;
+                       };
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
        status = "okay";
 };
 
+&fb {
+       display = <&display>;
+       fsl,dmacr = <0x00020010>;
+       status = "okay";
+};
+
 &i2c1 {
        clock-frequency = <400000>;
        status = "okay";
index b7a1c6d950b984b44efd65c100c05024c80c1b4a..826231eb44466f9187a564b3a587c7b18d686b28 100644 (file)
                        };
 
                        pwm: pwm@10006000 {
+                               #pwm-cells = <2>;
                                compatible = "fsl,imx27-pwm";
                                reg = <0x10006000 0x1000>;
                                interrupts = <23>;
index 7eb075876c4ca0358b661f8fe045052c5cead5ac..7198fe3798c62b52c2c86f5d2f895cc5179571fe 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /dts-v1/;
-/include/ "imx28.dtsi"
+#include "imx28.dtsi"
 
 / {
        model = "Armadeus Systems APF28 module";
index b602494c152b3a82a89c544adffb761cf2a64820..e2efd8d89c4fb82bca3602274380c7a81a515518 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /* APF28Dev is a docking board for the APF28 SOM */
-/include/ "imx28-apf28.dts"
+#include "imx28-apf28.dts"
 
 / {
        model = "Armadeus Systems APF28Dev docking/development board";
                                hog_pins_apf28dev: hog@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1103 /* MX28_PAD_LCD_D16__GPIO_1_16 */
-                                               0x1113 /* MX28_PAD_LCD_D17__GPIO_1_17 */
-                                               0x1123 /* MX28_PAD_LCD_D18__GPIO_1_18 */
-                                               0x1133 /* MX28_PAD_LCD_D19__GPIO_1_19 */
-                                               0x1143 /* MX28_PAD_LCD_D20__GPIO_1_20 */
-                                               0x1153 /* MX28_PAD_LCD_D21__GPIO_1_21 */
-                                               0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */
+                                               MX28_PAD_LCD_D16__GPIO_1_16
+                                               MX28_PAD_LCD_D17__GPIO_1_17
+                                               MX28_PAD_LCD_D18__GPIO_1_18
+                                               MX28_PAD_LCD_D19__GPIO_1_19
+                                               MX28_PAD_LCD_D20__GPIO_1_20
+                                               MX28_PAD_LCD_D21__GPIO_1_21
+                                               MX28_PAD_LCD_D22__GPIO_1_22
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_apf28dev: lcdif-apf28dev@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
-                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
-                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
-                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                               MX28_PAD_LCD_RD_E__LCD_VSYNC
+                                               MX28_PAD_LCD_WR_RWN__LCD_HSYNC
+                                               MX28_PAD_LCD_RS__LCD_DOTCLK
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
 
index 0e7fed47bd8d2941292ce8b7411036cf46883f44..6f254ca816cbd42b3ff80d61c3bfdb86c6f8438d 100644 (file)
@@ -1,5 +1,5 @@
 /dts-v1/;
-/include/ "imx28.dtsi"
+#include "imx28.dtsi"
 
 / {
        model = "Bluegiga APX4 Development Kit";
                                hog_pins_a: hog@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0113 /* MX28_PAD_GPMI_CE1N__GPIO_0_17 */
-                                               0x0153 /* MX28_PAD_GPMI_RDY1__GPIO_0_21 */
-                                               0x2123 /* MX28_PAD_SSP2_MISO__GPIO_2_18 */
-                                               0x2131 /* MX28_PAD_SSP2_SS0__GPIO_2_19 */
-                                               0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */
-                                               0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */
-                                               0x4143 /* MX28_PAD_JTAG_RTCK__GPIO_4_20 */
+                                               MX28_PAD_GPMI_CE1N__GPIO_0_17
+                                               MX28_PAD_GPMI_RDY1__GPIO_0_21
+                                               MX28_PAD_SSP2_MISO__GPIO_2_18
+                                               MX28_PAD_SSP2_SS0__AUART3_TX /* was: 0x2131 - MX28_PAD_SSP2_SS0__GPIO_2_19 */
+                                               MX28_PAD_PWM3__GPIO_3_28
+                                               MX28_PAD_LCD_RESET__GPIO_3_30
+                                               MX28_PAD_JTAG_RTCK__GPIO_4_20
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_apx4: lcdif-apx4@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
-                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
-                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
-                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                               MX28_PAD_LCD_RD_E__LCD_VSYNC
+                                               MX28_PAD_LCD_WR_RWN__LCD_HSYNC
+                                               MX28_PAD_LCD_RS__LCD_DOTCLK
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                mmc2_4bit_pins_apx4: mmc2-4bit-apx4@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2041 /* MX28_PAD_SSP0_DATA4__SSP2_D0 */
-                                               0x2051 /* MX28_PAD_SSP0_DATA5__SSP2_D3 */
-                                               0x2061 /* MX28_PAD_SSP0_DATA6__SSP2_CMD */
-                                               0x2071 /* MX28_PAD_SSP0_DATA7__SSP2_SCK */
-                                               0x2141 /* MX28_PAD_SSP2_SS1__SSP2_D1 */
-                                               0x2151 /* MX28_PAD_SSP2_SS2__SSP2_D2 */
+                                               MX28_PAD_SSP0_DATA4__SSP2_D0
+                                               MX28_PAD_SSP0_DATA5__SSP2_D3
+                                               MX28_PAD_SSP0_DATA6__SSP2_CMD
+                                               MX28_PAD_SSP0_DATA7__SSP2_SCK
+                                               MX28_PAD_SSP2_SS1__SSP2_D1
+                                               MX28_PAD_SSP2_SS2__SSP2_D2
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                mmc2_sck_cfg_apx4: mmc2-sck-cfg-apx4 {
                                        fsl,pinmux-ids = <
-                                               0x2071 /* MX28_PAD_SSP0_DATA7__SSP2_SCK */
+                                               MX28_PAD_SSP0_DATA7__SSP2_SCK
                                        >;
-                                       fsl,drive-strength = <2>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
 
index 1ec8c94bbac97f82f48fad9a868b70a66a438030..cabb6171a19d925c214442daa47473a6a2be31a5 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /dts-v1/;
-/include/ "imx28.dtsi"
+#include "imx28.dtsi"
 
 / {
        model = "Crystalfontz CFA-10036 Board";
                                ssd1306_cfa10036: ssd1306-10036@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2073 /* MX28_PAD_SSP0_D7__GPIO_2_7 */
+                                               MX28_PAD_SSP0_DATA7__GPIO_2_7
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                led_pins_cfa10036: leds-10036@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3043 /* MX28_PAD_AUART1_RX__GPIO_3_4 */
+                                               MX28_PAD_AUART1_RX__GPIO_3_4
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                usb0_otg_cfa10036: otg-10036@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0142 /* MX28_PAD_GPMI_READY0__USB0_ID */
+                                               MX28_PAD_GPMI_RDY0__USB0_ID
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                        };
index 182b99fe35f39b77b0c43cb396593624a043f7ba..f93e9a700e52b39287ff6761cf9c2ffdc21ea617 100644 (file)
@@ -13,7 +13,7 @@
  * The CFA-10049 is an expansion board for the CFA-10036 module, thus we
  * need to include the CFA-10036 DTS.
  */
-/include/ "imx28-cfa10036.dts"
+#include "imx28-cfa10036.dts"
 
 / {
        model = "Crystalfontz CFA-10037 Board";
                                usb_pins_cfa10037: usb-10037@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */
+                                               MX28_PAD_GPMI_D07__GPIO_0_7
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                mac0_pins_cfa10037: mac0-10037@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */
+                                               MX28_PAD_SSP2_SS2__GPIO_2_21
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
                };
index 06e4cfaf7dd2678b71ba7d523891c2008e31eff5..7087b4bf6a8f88e5748a70747af337de3524a5c0 100644 (file)
@@ -13,7 +13,7 @@
  * The CFA-10049 is an expansion board for the CFA-10036 module, thus we
  * need to include the CFA-10036 DTS.
  */
-/include/ "imx28-cfa10036.dts"
+#include "imx28-cfa10036.dts"
 
 / {
        model = "Crystalfontz CFA-10049 Board";
                                usb_pins_cfa10049: usb-10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */
+                                               MX28_PAD_GPMI_D07__GPIO_0_7
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                i2cmux_pins_cfa10049: i2cmux-10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */
-                                               0x1173 /* MX28_PAD_LCD_D22__GPIO_1_23 */
+                                               MX28_PAD_LCD_D22__GPIO_1_22
+                                               MX28_PAD_LCD_D23__GPIO_1_23
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                mac0_pins_cfa10049: mac0-10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */
+                                               MX28_PAD_SSP2_SS2__GPIO_2_21
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                pca_pins_cfa10049: pca-10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2133 /* MX28_PAD_SSP2_D3__GPIO_2_19 */
+                                               MX28_PAD_SSP2_SS0__GPIO_2_19
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                rotary_pins_cfa10049: rotary-10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3183 /* MX28_PAD_I2C0_SCL__GPIO_3_24 */
-                                               0x3193 /* MX28_PAD_I2C0_SDA__GPIO_3_25 */
+                                               MX28_PAD_I2C0_SCL__GPIO_3_24
+                                               MX28_PAD_I2C0_SDA__GPIO_3_25
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                rotary_btn_pins_cfa10049: rotary-btn-10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x31a3 /* MX28_PAD_SAIF_SDATA0__GPIO_3_26 */
+                                               MX28_PAD_SAIF1_SDATA0__GPIO_3_26
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                spi2_pins_cfa10049: spi2-cfa10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2103 /* MX28_PAD_SSP2_SCK__GPIO_2_16 */
-                                               0x2113 /* MX28_PAD_SSP2_CMD__GPIO_2_17 */
-                                               0x2123 /* MX28_PAD_SSP2_D0__GPIO_2_18 */
-                                               0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
+                                               MX28_PAD_SSP2_SCK__GPIO_2_16
+                                               MX28_PAD_SSP2_MOSI__GPIO_2_17
+                                               MX28_PAD_SSP2_MISO__GPIO_2_18
+                                               MX28_PAD_AUART1_TX__GPIO_3_5
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                spi3_pins_cfa10049: spi3-cfa10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0183 /* MX28_PAD_GPMI_RDN__GPIO_0_24 */
-                                               0x01c3 /* MX28_PAD_GPMI_RESETN__GPIO_0_28 */
-                                               0x0113 /* MX28_PAD_GPMI_CE1N__GPIO_0_17 */
-                                               0x01a3 /* MX28_PAD_GPMI_ALE__GPIO_0_26 */
-                                               0x01b3 /* MX28_PAD_GPMI_CLE__GPIO_0_27 */
+                                               MX28_PAD_GPMI_RDN__GPIO_0_24
+                                               MX28_PAD_GPMI_RESETN__GPIO_0_28
+                                               MX28_PAD_GPMI_CE1N__GPIO_0_17
+                                               MX28_PAD_GPMI_ALE__GPIO_0_26
+                                               MX28_PAD_GPMI_CLE__GPIO_0_27
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                lcdif_18bit_pins_cfa10049: lcdif-18bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
-                                               0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
-                                               0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
-                                               0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
-                                               0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
-                                               0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
-                                               0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
-                                               0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
-                                               0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
-                                               0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
-                                               0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
-                                               0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
-                                               0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
-                                               0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
-                                               0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
-                                               0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
-                                               0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */
-                                               0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */
+                                               MX28_PAD_LCD_D00__LCD_D0
+                                               MX28_PAD_LCD_D01__LCD_D1
+                                               MX28_PAD_LCD_D02__LCD_D2
+                                               MX28_PAD_LCD_D03__LCD_D3
+                                               MX28_PAD_LCD_D04__LCD_D4
+                                               MX28_PAD_LCD_D05__LCD_D5
+                                               MX28_PAD_LCD_D06__LCD_D6
+                                               MX28_PAD_LCD_D07__LCD_D7
+                                               MX28_PAD_LCD_D08__LCD_D8
+                                               MX28_PAD_LCD_D09__LCD_D9
+                                               MX28_PAD_LCD_D10__LCD_D10
+                                               MX28_PAD_LCD_D11__LCD_D11
+                                               MX28_PAD_LCD_D12__LCD_D12
+                                               MX28_PAD_LCD_D13__LCD_D13
+                                               MX28_PAD_LCD_D14__LCD_D14
+                                               MX28_PAD_LCD_D15__LCD_D15
+                                               MX28_PAD_LCD_D16__LCD_D16
+                                               MX28_PAD_LCD_D17__LCD_D17
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_cfa10049: lcdif-evk@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
-                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
-                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
-                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                               MX28_PAD_LCD_RD_E__LCD_VSYNC
+                                               MX28_PAD_LCD_WR_RWN__LCD_HSYNC
+                                               MX28_PAD_LCD_RS__LCD_DOTCLK
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_cfa10049_pullup: lcdif-10049-pullup@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */
+                                               MX28_PAD_LCD_RESET__GPIO_3_30
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                w1_gpio_pins: w1-gpio@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1153 /* MX28_PAD_LCD_D21__GPIO_1_21 */
+                                               MX28_PAD_LCD_D21__GPIO_1_21
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>; /* 0 will enable the keeper */
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>; /* 0 will enable the keeper */
                                };
                        };
 
index 171bcbe1ec4b3ed995f7895a5b6a51868460b48c..c3900e7ba3318e3d8f191b49edc35597824ae91d 100644 (file)
@@ -14,7 +14,7 @@
  * The CFA-10055 is an expansion board for the CFA-10036 module and
  * CFA-10037, thus we need to include the CFA-10037 DTS.
  */
-/include/ "imx28-cfa10037.dts"
+#include "imx28-cfa10037.dts"
 
 / {
        model = "Crystalfontz CFA-10055 Board";
                                spi2_pins_cfa10055: spi2-cfa10055@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2103 /* MX28_PAD_SSP2_SCK__GPIO_2_16 */
-                                               0x2113 /* MX28_PAD_SSP2_CMD__GPIO_2_17 */
-                                               0x2123 /* MX28_PAD_SSP2_D0__GPIO_2_18 */
-                                               0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
+                                               MX28_PAD_SSP2_SCK__GPIO_2_16
+                                               MX28_PAD_SSP2_MOSI__GPIO_2_17
+                                               MX28_PAD_SSP2_MISO__GPIO_2_18
+                                               MX28_PAD_AUART1_TX__GPIO_3_5
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                lcdif_18bit_pins_cfa10055: lcdif-18bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
-                                               0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
-                                               0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
-                                               0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
-                                               0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
-                                               0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
-                                               0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
-                                               0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
-                                               0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
-                                               0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
-                                               0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
-                                               0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
-                                               0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
-                                               0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
-                                               0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
-                                               0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
-                                               0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */
-                                               0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */
+                                               MX28_PAD_LCD_D00__LCD_D0
+                                               MX28_PAD_LCD_D01__LCD_D1
+                                               MX28_PAD_LCD_D02__LCD_D2
+                                               MX28_PAD_LCD_D03__LCD_D3
+                                               MX28_PAD_LCD_D04__LCD_D4
+                                               MX28_PAD_LCD_D05__LCD_D5
+                                               MX28_PAD_LCD_D06__LCD_D6
+                                               MX28_PAD_LCD_D07__LCD_D7
+                                               MX28_PAD_LCD_D08__LCD_D8
+                                               MX28_PAD_LCD_D09__LCD_D9
+                                               MX28_PAD_LCD_D10__LCD_D10
+                                               MX28_PAD_LCD_D11__LCD_D11
+                                               MX28_PAD_LCD_D12__LCD_D12
+                                               MX28_PAD_LCD_D13__LCD_D13
+                                               MX28_PAD_LCD_D14__LCD_D14
+                                               MX28_PAD_LCD_D15__LCD_D15
+                                               MX28_PAD_LCD_D16__LCD_D16
+                                               MX28_PAD_LCD_D17__LCD_D17
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_cfa10055: lcdif-evk@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
-                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
-                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
-                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                               MX28_PAD_LCD_RD_E__LCD_VSYNC
+                                               MX28_PAD_LCD_WR_RWN__LCD_HSYNC
+                                               MX28_PAD_LCD_RS__LCD_DOTCLK
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_cfa10055_pullup: lcdif-10055-pullup@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */
+                                               MX28_PAD_LCD_RESET__GPIO_3_30
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
                        };
 
index b45dd0e4ee57931d9cecd7dfe567408c64d65b1b..cef959a97219b8e14bca15b01c96d6e93cf1730a 100644 (file)
@@ -13,7 +13,7 @@
  * The CFA-10055 is an expansion board for the CFA-10036 module and
  * CFA-10037, thus we need to include the CFA-10037 DTS.
  */
-/include/ "imx28-cfa10037.dts"
+#include "imx28-cfa10037.dts"
 
 / {
        model = "Crystalfontz CFA-10056 Board";
                                spi2_pins_cfa10056: spi2-cfa10056@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2103 /* MX28_PAD_SSP2_SCK__GPIO_2_16 */
-                                               0x2113 /* MX28_PAD_SSP2_CMD__GPIO_2_17 */
-                                               0x2123 /* MX28_PAD_SSP2_D0__GPIO_2_18 */
-                                               0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
+                                               MX28_PAD_SSP2_SCK__GPIO_2_16
+                                               MX28_PAD_SSP2_MOSI__GPIO_2_17
+                                               MX28_PAD_SSP2_MISO__GPIO_2_18
+                                               MX28_PAD_AUART1_TX__GPIO_3_5
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                lcdif_pins_cfa10056: lcdif-10056@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
-                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
-                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
-                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                               MX28_PAD_LCD_RD_E__LCD_VSYNC
+                                               MX28_PAD_LCD_WR_RWN__LCD_HSYNC
+                                               MX28_PAD_LCD_RS__LCD_DOTCLK
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_cfa10056_pullup: lcdif-10056-pullup@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */
+                                               MX28_PAD_LCD_RESET__GPIO_3_30
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
                        };
 
index 0333c0532f28f3ff5e4e011036214b31393c29df..3c1312885ae0dafc1642e30d27a58cc3cf49d12b 100644 (file)
@@ -14,7 +14,7 @@
  * The CFA-10057 is an expansion board for the CFA-10036 module, thus we
  * need to include the CFA-10036 DTS.
  */
-/include/ "imx28-cfa10036.dts"
+#include "imx28-cfa10036.dts"
 
 / {
        model = "Crystalfontz CFA-10057 Board";
                                usb_pins_cfa10057: usb-10057@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */
+                                               MX28_PAD_GPMI_D07__GPIO_0_7
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_18bit_pins_cfa10057: lcdif-18bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
-                                               0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
-                                               0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
-                                               0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
-                                               0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
-                                               0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
-                                               0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
-                                               0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
-                                               0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
-                                               0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
-                                               0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
-                                               0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
-                                               0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
-                                               0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
-                                               0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
-                                               0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
-                                               0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */
-                                               0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */
+                                               MX28_PAD_LCD_D00__LCD_D0
+                                               MX28_PAD_LCD_D01__LCD_D1
+                                               MX28_PAD_LCD_D02__LCD_D2
+                                               MX28_PAD_LCD_D03__LCD_D3
+                                               MX28_PAD_LCD_D04__LCD_D4
+                                               MX28_PAD_LCD_D05__LCD_D5
+                                               MX28_PAD_LCD_D06__LCD_D6
+                                               MX28_PAD_LCD_D07__LCD_D7
+                                               MX28_PAD_LCD_D08__LCD_D8
+                                               MX28_PAD_LCD_D09__LCD_D9
+                                               MX28_PAD_LCD_D10__LCD_D10
+                                               MX28_PAD_LCD_D11__LCD_D11
+                                               MX28_PAD_LCD_D12__LCD_D12
+                                               MX28_PAD_LCD_D13__LCD_D13
+                                               MX28_PAD_LCD_D14__LCD_D14
+                                               MX28_PAD_LCD_D15__LCD_D15
+                                               MX28_PAD_LCD_D16__LCD_D16
+                                               MX28_PAD_LCD_D17__LCD_D17
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_cfa10057: lcdif-evk@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
-                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
-                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
-                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                               MX28_PAD_LCD_RD_E__LCD_VSYNC
+                                               MX28_PAD_LCD_WR_RWN__LCD_HSYNC
+                                               MX28_PAD_LCD_RS__LCD_DOTCLK
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
 
index 64c64c55a82a27cbb2221a9ac7f6390a173426e7..2469d34df0ae1499de3236f13e180969dd78eed7 100644 (file)
@@ -14,7 +14,7 @@
  * The CFA-10058 is an expansion board for the CFA-10036 module, thus we
  * need to include the CFA-10036 DTS.
  */
-/include/ "imx28-cfa10036.dts"
+#include "imx28-cfa10036.dts"
 
 / {
        model = "Crystalfontz CFA-10058 Board";
                                usb_pins_cfa10058: usb-10058@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */
+                                               MX28_PAD_GPMI_D07__GPIO_0_7
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_cfa10058: lcdif-10058@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
-                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
-                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
-                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                               MX28_PAD_LCD_RD_E__LCD_VSYNC
+                                               MX28_PAD_LCD_WR_RWN__LCD_HSYNC
+                                               MX28_PAD_LCD_RS__LCD_DOTCLK
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
 
index aa33393903a87cec3bcef3bb7f5138a779230d96..4267c2b05d600ac8bfb9cf2612a3b72977d7dc0e 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /dts-v1/;
-/include/ "imx28.dtsi"
+#include "imx28.dtsi"
 
 / {
        model = "Freescale i.MX28 Evaluation Kit";
                                hog_pins_a: hog@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x20d3 /* MX28_PAD_SSP1_CMD__GPIO_2_13 */
-                                               0x20f3 /* MX28_PAD_SSP1_DATA3__GPIO_2_15 */
-                                               0x40d3 /* MX28_PAD_ENET0_RX_CLK__GPIO_4_13 */
-                                               0x20c3 /* MX28_PAD_SSP1_SCK__GPIO_2_12 */
-                                               0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */
-                                               0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */
-                                               0x3083 /* MX28_PAD_AUART2_RX__GPIO_3_8 */
-                                               0x3093 /* MX28_PAD_AUART2_TX__GPIO_3_9 */
+                                               MX28_PAD_SSP1_CMD__GPIO_2_13
+                                               MX28_PAD_SSP1_DATA3__GPIO_2_15
+                                               MX28_PAD_ENET0_RX_CLK__GPIO_4_13
+                                               MX28_PAD_SSP1_SCK__GPIO_2_12
+                                               MX28_PAD_PWM3__GPIO_3_28
+                                               MX28_PAD_LCD_RESET__GPIO_3_30
+                                               MX28_PAD_AUART2_RX__GPIO_3_8
+                                               MX28_PAD_AUART2_TX__GPIO_3_9
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                led_pin_gpio3_5: led_gpio3_5@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
+                                               MX28_PAD_AUART1_TX__GPIO_3_5
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                gpmi_pins_evk: gpmi-nand-evk@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0110 /* MX28_PAD_GPMI_CE1N__GPMI_CE1N */
-                                               0x0150 /* MX28_PAD_GPMI_RDY1__GPMI_READY1 */
+                                               MX28_PAD_GPMI_CE1N__GPMI_CE1N
+                                               MX28_PAD_GPMI_RDY1__GPMI_READY1
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_evk: lcdif-evk@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
-                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
-                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
-                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                               MX28_PAD_LCD_RD_E__LCD_VSYNC
+                                               MX28_PAD_LCD_WR_RWN__LCD_HSYNC
+                                               MX28_PAD_LCD_RS__LCD_DOTCLK
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
 
                        };
 
                        lradc@80050000 {
+                               fsl,lradc-touchscreen-wires = <4>;
                                status = "okay";
                                fsl,lradc-touchscreen-wires = <4>;
                                fsl,ave-ctrl = <4>;
 
        ahb@80080000 {
                usb0: usb@80080000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&usb0_id_pins_a>;
                        vbus-supply = <&reg_usb0_vbus>;
                        status = "okay";
                };
diff --git a/arch/arm/boot/dts/imx28-m28cu3.dts b/arch/arm/boot/dts/imx28-m28cu3.dts
new file mode 100644 (file)
index 0000000..d3958da
--- /dev/null
@@ -0,0 +1,266 @@
+/*
+ * Copyright (C) 2013 Marek Vasut <marex@denx.de>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx28.dtsi"
+
+/ {
+       model = "MSR M28CU3";
+       compatible = "msr,m28cu3", "fsl,imx28";
+
+       memory {
+               reg = <0x40000000 0x08000000>;
+       };
+
+       apb@80000000 {
+               apbh@80000000 {
+                       gpmi-nand@8000c000 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
+                               status = "okay";
+
+                               partition@0 {
+                                       label = "gpmi-nfc-0-boot";
+                                       reg = <0x00000000 0x01400000>;
+                                       read-only;
+                               };
+
+                               partition@1 {
+                                       label = "gpmi-nfc-general-use";
+                                       reg = <0x01400000 0x0ec00000>;
+                               };
+                       };
+
+                       ssp0: ssp@80010000 {
+                               compatible = "fsl,imx28-mmc";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&mmc0_4bit_pins_a
+                                            &mmc0_cd_cfg
+                                            &mmc0_sck_cfg>;
+                               bus-width = <4>;
+                               vmmc-supply = <&reg_vddio_sd0>;
+                               status = "okay";
+                       };
+
+                       ssp2: ssp@80014000 {
+                               compatible = "fsl,imx28-mmc";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&mmc2_4bit_pins_a
+                                            &mmc2_cd_cfg
+                                            &mmc2_sck_cfg>;
+                               bus-width = <4>;
+                               vmmc-supply = <&reg_vddio_sd1>;
+                               status = "okay";
+                       };
+
+                       pinctrl@80018000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&hog_pins_a>;
+
+                               hog_pins_a: hog@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX28_PAD_SSP2_SS0__GPIO_2_19
+                                               MX28_PAD_PWM4__GPIO_3_29
+                                               MX28_PAD_AUART2_RX__GPIO_3_8
+                                               MX28_PAD_ENET0_RX_CLK__GPIO_4_13
+                                       >;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
+                               };
+
+                               lcdif_pins_m28: lcdif-m28@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX28_PAD_LCD_VSYNC__LCD_VSYNC
+                                               MX28_PAD_LCD_HSYNC__LCD_HSYNC
+                                               MX28_PAD_LCD_DOTCLK__LCD_DOTCLK
+                                               MX28_PAD_LCD_RESET__LCD_RESET
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
+                                               MX28_PAD_AUART1_TX__GPIO_3_5
+                                       >;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
+                               };
+
+                               led_pins_gpio: leds-m28@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX28_PAD_SSP3_MISO__GPIO_2_26
+                                               MX28_PAD_SSP3_SCK__GPIO_2_24
+                                       >;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
+                               };
+                       };
+
+                       ocotp@8002c000 {
+                               status = "okay";
+                       };
+
+                       lcdif@80030000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&lcdif_24bit_pins_a
+                                            &lcdif_pins_m28>;
+                               display = <&display>;
+                               reset-active-high;
+                               status = "okay";
+
+                               display: display0 {
+                                       bits-per-pixel = <32>;
+                                       bus-width = <24>;
+
+                                       display-timings {
+                                               native-mode = <&timing0>;
+                                               timing0: timing0 {
+                                                       clock-frequency = <6410256>;
+                                                       hactive = <320>;
+                                                       vactive = <240>;
+                                                       hback-porch = <38>;
+                                                       hfront-porch = <20>;
+                                                       vback-porch = <15>;
+                                                       vfront-porch = <5>;
+                                                       hsync-len = <30>;
+                                                       vsync-len = <3>;
+                                                       hsync-active = <0>;
+                                                       vsync-active = <0>;
+                                                       de-active = <1>;
+                                                       pixelclk-active = <1>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               apbx@80040000 {
+                       duart: serial@80074000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&duart_pins_b>;
+                               status = "okay";
+                       };
+
+                       usbphy1: usbphy@8007e000 {
+                               status = "okay";
+                       };
+
+                       auart0: serial@8006a000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&auart0_2pins_a>;
+                               status = "okay";
+                       };
+
+                       auart3: serial@80070000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&auart3_2pins_b>;
+                               status = "okay";
+                       };
+
+                       pwm: pwm@80064000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pwm3_pins_a>;
+                               status = "okay";
+                       };
+               };
+       };
+
+       ahb@80080000 {
+               usb1: usb@80090000 {
+                       vbus-supply = <&reg_usb1_vbus>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&usbphy1_pins_a>;
+                       disable-over-current;
+                       status = "okay";
+               };
+
+               mac0: ethernet@800f0000 {
+                       phy-mode = "rmii";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mac0_pins_a>;
+                       phy-reset-gpios = <&gpio4 13 0>;
+                       phy-reset-duration = <100>;
+                       status = "okay";
+               };
+
+               mac1: ethernet@800f4000 {
+                       phy-mode = "rmii";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mac1_pins_a>;
+                       status = "okay";
+               };
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm 3 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_gpio>;
+
+               user1 {
+                       label = "sd0-led";
+                       gpios = <&gpio2 26 0>;
+                       linux,default-trigger = "mmc0";
+               };
+
+               user2 {
+                       label = "sd1-led";
+                       gpios = <&gpio2 24 0>;
+                       linux,default-trigger = "mmc2";
+               };
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_3p3v: 3p3v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P3V";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_vddio_sd0: vddio-sd0 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "vddio-sd0";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio3 29 0>;
+               };
+
+               reg_vddio_sd1: vddio-sd1 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "vddio-sd1";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio2 19 0>;
+               };
+
+               reg_usb1_vbus: usb1_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio3 8 0>;
+                       enable-active-high;
+               };
+       };
+};
index 0d322a2bebaf5fe31e088d8b98c73f08ed4b9d7d..8e2477fbe1d70963d583973ed4c46a6554c99104 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /dts-v1/;
-/include/ "imx28.dtsi"
+#include "imx28.dtsi"
 
 / {
        model = "DENX M28EVK";
                                hog_pins_a: hog@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */
-                                               0x30a3 /* MX28_PAD_AUART2_CTS__GPIO_3_10 */
-                                               0x30b3 /* MX28_PAD_AUART2_RTS__GPIO_3_11 */
-                                               0x30c3 /* MX28_PAD_AUART3_RX__GPIO_3_12 */
-                                               0x30d3 /* MX28_PAD_AUART3_TX__GPIO_3_13 */
+                                               MX28_PAD_PWM3__GPIO_3_28
+                                               MX28_PAD_AUART2_CTS__GPIO_3_10
+                                               MX28_PAD_AUART2_RTS__GPIO_3_11
+                                               MX28_PAD_AUART3_RX__GPIO_3_12
+                                               MX28_PAD_AUART3_TX__GPIO_3_13
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_pins_m28: lcdif-m28@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x11e0 /* MX28_PAD_LCD_DOTCLK__LCD_DOTCLK */
-                                               0x11f0 /* MX28_PAD_LCD_ENABLE__LCD_ENABLE */
+                                               MX28_PAD_LCD_DOTCLK__LCD_DOTCLK
+                                               MX28_PAD_LCD_ENABLE__LCD_ENABLE
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
                        };
 
diff --git a/arch/arm/boot/dts/imx28-pinfunc.h b/arch/arm/boot/dts/imx28-pinfunc.h
new file mode 100644 (file)
index 0000000..e11f69b
--- /dev/null
@@ -0,0 +1,506 @@
+/*
+ * Header providing constants for i.MX28 pinctrl bindings.
+ *
+ * Copyright (C) 2013 Lothar Waßmann <LW@KARO-electronics.de>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#ifndef __DT_BINDINGS_MX28_PINCTRL_H__
+#define __DT_BINDINGS_MX28_PINCTRL_H__
+
+#include "mxs-pinfunc.h"
+
+#define MX28_PAD_GPMI_D00__GPMI_D0                     0x0000
+#define MX28_PAD_GPMI_D01__GPMI_D1                     0x0010
+#define MX28_PAD_GPMI_D02__GPMI_D2                     0x0020
+#define MX28_PAD_GPMI_D03__GPMI_D3                     0x0030
+#define MX28_PAD_GPMI_D04__GPMI_D4                     0x0040
+#define MX28_PAD_GPMI_D05__GPMI_D5                     0x0050
+#define MX28_PAD_GPMI_D06__GPMI_D6                     0x0060
+#define MX28_PAD_GPMI_D07__GPMI_D7                     0x0070
+#define MX28_PAD_GPMI_CE0N__GPMI_CE0N                  0x0100
+#define MX28_PAD_GPMI_CE1N__GPMI_CE1N                  0x0110
+#define MX28_PAD_GPMI_CE2N__GPMI_CE2N                  0x0120
+#define MX28_PAD_GPMI_CE3N__GPMI_CE3N                  0x0130
+#define MX28_PAD_GPMI_RDY0__GPMI_READY0                        0x0140
+#define MX28_PAD_GPMI_RDY1__GPMI_READY1                        0x0150
+#define MX28_PAD_GPMI_RDY2__GPMI_READY2                        0x0160
+#define MX28_PAD_GPMI_RDY3__GPMI_READY3                        0x0170
+#define MX28_PAD_GPMI_RDN__GPMI_RDN                    0x0180
+#define MX28_PAD_GPMI_WRN__GPMI_WRN                    0x0190
+#define MX28_PAD_GPMI_ALE__GPMI_ALE                    0x01a0
+#define MX28_PAD_GPMI_CLE__GPMI_CLE                    0x01b0
+#define MX28_PAD_GPMI_RESETN__GPMI_RESETN              0x01c0
+#define MX28_PAD_LCD_D00__LCD_D0                       0x1000
+#define MX28_PAD_LCD_D01__LCD_D1                       0x1010
+#define MX28_PAD_LCD_D02__LCD_D2                       0x1020
+#define MX28_PAD_LCD_D03__LCD_D3                       0x1030
+#define MX28_PAD_LCD_D04__LCD_D4                       0x1040
+#define MX28_PAD_LCD_D05__LCD_D5                       0x1050
+#define MX28_PAD_LCD_D06__LCD_D6                       0x1060
+#define MX28_PAD_LCD_D07__LCD_D7                       0x1070
+#define MX28_PAD_LCD_D08__LCD_D8                       0x1080
+#define MX28_PAD_LCD_D09__LCD_D9                       0x1090
+#define MX28_PAD_LCD_D10__LCD_D10                      0x10a0
+#define MX28_PAD_LCD_D11__LCD_D11                      0x10b0
+#define MX28_PAD_LCD_D12__LCD_D12                      0x10c0
+#define MX28_PAD_LCD_D13__LCD_D13                      0x10d0
+#define MX28_PAD_LCD_D14__LCD_D14                      0x10e0
+#define MX28_PAD_LCD_D15__LCD_D15                      0x10f0
+#define MX28_PAD_LCD_D16__LCD_D16                      0x1100
+#define MX28_PAD_LCD_D17__LCD_D17                      0x1110
+#define MX28_PAD_LCD_D18__LCD_D18                      0x1120
+#define MX28_PAD_LCD_D19__LCD_D19                      0x1130
+#define MX28_PAD_LCD_D20__LCD_D20                      0x1140
+#define MX28_PAD_LCD_D21__LCD_D21                      0x1150
+#define MX28_PAD_LCD_D22__LCD_D22                      0x1160
+#define MX28_PAD_LCD_D23__LCD_D23                      0x1170
+#define MX28_PAD_LCD_RD_E__LCD_RD_E                    0x1180
+#define MX28_PAD_LCD_WR_RWN__LCD_WR_RWN                        0x1190
+#define MX28_PAD_LCD_RS__LCD_RS                                0x11a0
+#define MX28_PAD_LCD_CS__LCD_CS                                0x11b0
+#define MX28_PAD_LCD_VSYNC__LCD_VSYNC                  0x11c0
+#define MX28_PAD_LCD_HSYNC__LCD_HSYNC                  0x11d0
+#define MX28_PAD_LCD_DOTCLK__LCD_DOTCLK                        0x11e0
+#define MX28_PAD_LCD_ENABLE__LCD_ENABLE                        0x11f0
+#define MX28_PAD_SSP0_DATA0__SSP0_D0                   0x2000
+#define MX28_PAD_SSP0_DATA1__SSP0_D1                   0x2010
+#define MX28_PAD_SSP0_DATA2__SSP0_D2                   0x2020
+#define MX28_PAD_SSP0_DATA3__SSP0_D3                   0x2030
+#define MX28_PAD_SSP0_DATA4__SSP0_D4                   0x2040
+#define MX28_PAD_SSP0_DATA5__SSP0_D5                   0x2050
+#define MX28_PAD_SSP0_DATA6__SSP0_D6                   0x2060
+#define MX28_PAD_SSP0_DATA7__SSP0_D7                   0x2070
+#define MX28_PAD_SSP0_CMD__SSP0_CMD                    0x2080
+#define MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT         0x2090
+#define MX28_PAD_SSP0_SCK__SSP0_SCK                    0x20a0
+#define MX28_PAD_SSP1_SCK__SSP1_SCK                    0x20c0
+#define MX28_PAD_SSP1_CMD__SSP1_CMD                    0x20d0
+#define MX28_PAD_SSP1_DATA0__SSP1_D0                   0x20e0
+#define MX28_PAD_SSP1_DATA3__SSP1_D3                   0x20f0
+#define MX28_PAD_SSP2_SCK__SSP2_SCK                    0x2100
+#define MX28_PAD_SSP2_MOSI__SSP2_CMD                   0x2110
+#define MX28_PAD_SSP2_MISO__SSP2_D0                    0x2120
+#define MX28_PAD_SSP2_SS0__SSP2_D3                     0x2130
+#define MX28_PAD_SSP2_SS1__SSP2_D4                     0x2140
+#define MX28_PAD_SSP2_SS2__SSP2_D5                     0x2150
+#define MX28_PAD_SSP3_SCK__SSP3_SCK                    0x2180
+#define MX28_PAD_SSP3_MOSI__SSP3_CMD                   0x2190
+#define MX28_PAD_SSP3_MISO__SSP3_D0                    0x21a0
+#define MX28_PAD_SSP3_SS0__SSP3_D3                     0x21b0
+#define MX28_PAD_AUART0_RX__AUART0_RX                  0x3000
+#define MX28_PAD_AUART0_TX__AUART0_TX                  0x3010
+#define MX28_PAD_AUART0_CTS__AUART0_CTS                        0x3020
+#define MX28_PAD_AUART0_RTS__AUART0_RTS                        0x3030
+#define MX28_PAD_AUART1_RX__AUART1_RX                  0x3040
+#define MX28_PAD_AUART1_TX__AUART1_TX                  0x3050
+#define MX28_PAD_AUART1_CTS__AUART1_CTS                        0x3060
+#define MX28_PAD_AUART1_RTS__AUART1_RTS                        0x3070
+#define MX28_PAD_AUART2_RX__AUART2_RX                  0x3080
+#define MX28_PAD_AUART2_TX__AUART2_TX                  0x3090
+#define MX28_PAD_AUART2_CTS__AUART2_CTS                        0x30a0
+#define MX28_PAD_AUART2_RTS__AUART2_RTS                        0x30b0
+#define MX28_PAD_AUART3_RX__AUART3_RX                  0x30c0
+#define MX28_PAD_AUART3_TX__AUART3_TX                  0x30d0
+#define MX28_PAD_AUART3_CTS__AUART3_CTS                        0x30e0
+#define MX28_PAD_AUART3_RTS__AUART3_RTS                        0x30f0
+#define MX28_PAD_PWM0__PWM_0                           0x3100
+#define MX28_PAD_PWM1__PWM_1                           0x3110
+#define MX28_PAD_PWM2__PWM_2                           0x3120
+#define MX28_PAD_SAIF0_MCLK__SAIF0_MCLK                        0x3140
+#define MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK              0x3150
+#define MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK            0x3160
+#define MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0            0x3170
+#define MX28_PAD_I2C0_SCL__I2C0_SCL                    0x3180
+#define MX28_PAD_I2C0_SDA__I2C0_SDA                    0x3190
+#define MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0            0x31a0
+#define MX28_PAD_SPDIF__SPDIF_TX                       0x31b0
+#define MX28_PAD_PWM3__PWM_3                           0x31c0
+#define MX28_PAD_PWM4__PWM_4                           0x31d0
+#define MX28_PAD_LCD_RESET__LCD_RESET                  0x31e0
+#define MX28_PAD_ENET0_MDC__ENET0_MDC                  0x4000
+#define MX28_PAD_ENET0_MDIO__ENET0_MDIO                        0x4010
+#define MX28_PAD_ENET0_RX_EN__ENET0_RX_EN              0x4020
+#define MX28_PAD_ENET0_RXD0__ENET0_RXD0                        0x4030
+#define MX28_PAD_ENET0_RXD1__ENET0_RXD1                        0x4040
+#define MX28_PAD_ENET0_TX_CLK__ENET0_TX_CLK            0x4050
+#define MX28_PAD_ENET0_TX_EN__ENET0_TX_EN              0x4060
+#define MX28_PAD_ENET0_TXD0__ENET0_TXD0                        0x4070
+#define MX28_PAD_ENET0_TXD1__ENET0_TXD1                        0x4080
+#define MX28_PAD_ENET0_RXD2__ENET0_RXD2                        0x4090
+#define MX28_PAD_ENET0_RXD3__ENET0_RXD3                        0x40a0
+#define MX28_PAD_ENET0_TXD2__ENET0_TXD2                        0x40b0
+#define MX28_PAD_ENET0_TXD3__ENET0_TXD3                        0x40c0
+#define MX28_PAD_ENET0_RX_CLK__ENET0_RX_CLK            0x40d0
+#define MX28_PAD_ENET0_COL__ENET0_COL                  0x40e0
+#define MX28_PAD_ENET0_CRS__ENET0_CRS                  0x40f0
+#define MX28_PAD_ENET_CLK__CLKCTRL_ENET                        0x4100
+#define MX28_PAD_JTAG_RTCK__JTAG_RTCK                  0x4140
+#define MX28_PAD_EMI_D00__EMI_DATA0                    0x5000
+#define MX28_PAD_EMI_D01__EMI_DATA1                    0x5010
+#define MX28_PAD_EMI_D02__EMI_DATA2                    0x5020
+#define MX28_PAD_EMI_D03__EMI_DATA3                    0x5030
+#define MX28_PAD_EMI_D04__EMI_DATA4                    0x5040
+#define MX28_PAD_EMI_D05__EMI_DATA5                    0x5050
+#define MX28_PAD_EMI_D06__EMI_DATA6                    0x5060
+#define MX28_PAD_EMI_D07__EMI_DATA7                    0x5070
+#define MX28_PAD_EMI_D08__EMI_DATA8                    0x5080
+#define MX28_PAD_EMI_D09__EMI_DATA9                    0x5090
+#define MX28_PAD_EMI_D10__EMI_DATA10                   0x50a0
+#define MX28_PAD_EMI_D11__EMI_DATA11                   0x50b0
+#define MX28_PAD_EMI_D12__EMI_DATA12                   0x50c0
+#define MX28_PAD_EMI_D13__EMI_DATA13                   0x50d0
+#define MX28_PAD_EMI_D14__EMI_DATA14                   0x50e0
+#define MX28_PAD_EMI_D15__EMI_DATA15                   0x50f0
+#define MX28_PAD_EMI_ODT0__EMI_ODT0                    0x5100
+#define MX28_PAD_EMI_DQM0__EMI_DQM0                    0x5110
+#define MX28_PAD_EMI_ODT1__EMI_ODT1                    0x5120
+#define MX28_PAD_EMI_DQM1__EMI_DQM1                    0x5130
+#define MX28_PAD_EMI_DDR_OPEN_FB__EMI_DDR_OPEN_FEEDBACK        0x5140
+#define MX28_PAD_EMI_CLK__EMI_CLK                      0x5150
+#define MX28_PAD_EMI_DQS0__EMI_DQS0                    0x5160
+#define MX28_PAD_EMI_DQS1__EMI_DQS1                    0x5170
+#define MX28_PAD_EMI_DDR_OPEN__EMI_DDR_OPEN            0x51a0
+#define MX28_PAD_EMI_A00__EMI_ADDR0                    0x6000
+#define MX28_PAD_EMI_A01__EMI_ADDR1                    0x6010
+#define MX28_PAD_EMI_A02__EMI_ADDR2                    0x6020
+#define MX28_PAD_EMI_A03__EMI_ADDR3                    0x6030
+#define MX28_PAD_EMI_A04__EMI_ADDR4                    0x6040
+#define MX28_PAD_EMI_A05__EMI_ADDR5                    0x6050
+#define MX28_PAD_EMI_A06__EMI_ADDR6                    0x6060
+#define MX28_PAD_EMI_A07__EMI_ADDR7                    0x6070
+#define MX28_PAD_EMI_A08__EMI_ADDR8                    0x6080
+#define MX28_PAD_EMI_A09__EMI_ADDR9                    0x6090
+#define MX28_PAD_EMI_A10__EMI_ADDR10                   0x60a0
+#define MX28_PAD_EMI_A11__EMI_ADDR11                   0x60b0
+#define MX28_PAD_EMI_A12__EMI_ADDR12                   0x60c0
+#define MX28_PAD_EMI_A13__EMI_ADDR13                   0x60d0
+#define MX28_PAD_EMI_A14__EMI_ADDR14                   0x60e0
+#define MX28_PAD_EMI_BA0__EMI_BA0                      0x6100
+#define MX28_PAD_EMI_BA1__EMI_BA1                      0x6110
+#define MX28_PAD_EMI_BA2__EMI_BA2                      0x6120
+#define MX28_PAD_EMI_CASN__EMI_CASN                    0x6130
+#define MX28_PAD_EMI_RASN__EMI_RASN                    0x6140
+#define MX28_PAD_EMI_WEN__EMI_WEN                      0x6150
+#define MX28_PAD_EMI_CE0N__EMI_CE0N                    0x6160
+#define MX28_PAD_EMI_CE1N__EMI_CE1N                    0x6170
+#define MX28_PAD_EMI_CKE__EMI_CKE                      0x6180
+#define MX28_PAD_GPMI_D00__SSP1_D0                     0x0001
+#define MX28_PAD_GPMI_D01__SSP1_D1                     0x0011
+#define MX28_PAD_GPMI_D02__SSP1_D2                     0x0021
+#define MX28_PAD_GPMI_D03__SSP1_D3                     0x0031
+#define MX28_PAD_GPMI_D04__SSP1_D4                     0x0041
+#define MX28_PAD_GPMI_D05__SSP1_D5                     0x0051
+#define MX28_PAD_GPMI_D06__SSP1_D6                     0x0061
+#define MX28_PAD_GPMI_D07__SSP1_D7                     0x0071
+#define MX28_PAD_GPMI_CE0N__SSP3_D0                    0x0101
+#define MX28_PAD_GPMI_CE1N__SSP3_D3                    0x0111
+#define MX28_PAD_GPMI_CE2N__CAN1_TX                    0x0121
+#define MX28_PAD_GPMI_CE3N__CAN1_RX                    0x0131
+#define MX28_PAD_GPMI_RDY0__SSP1_CARD_DETECT           0x0141
+#define MX28_PAD_GPMI_RDY1__SSP1_CMD                   0x0151
+#define MX28_PAD_GPMI_RDY2__CAN0_TX                    0x0161
+#define MX28_PAD_GPMI_RDY3__CAN0_RX                    0x0171
+#define MX28_PAD_GPMI_RDN__SSP3_SCK                    0x0181
+#define MX28_PAD_GPMI_WRN__SSP1_SCK                    0x0191
+#define MX28_PAD_GPMI_ALE__SSP3_D1                     0x01a1
+#define MX28_PAD_GPMI_CLE__SSP3_D2                     0x01b1
+#define MX28_PAD_GPMI_RESETN__SSP3_CMD                 0x01c1
+#define MX28_PAD_LCD_D03__ETM_DA8                      0x1031
+#define MX28_PAD_LCD_D04__ETM_DA9                      0x1041
+#define MX28_PAD_LCD_D08__ETM_DA3                      0x1081
+#define MX28_PAD_LCD_D09__ETM_DA4                      0x1091
+#define MX28_PAD_LCD_D20__ENET1_1588_EVENT2_OUT                0x1141
+#define MX28_PAD_LCD_D21__ENET1_1588_EVENT2_IN         0x1151
+#define MX28_PAD_LCD_D22__ENET1_1588_EVENT3_OUT                0x1161
+#define MX28_PAD_LCD_D23__ENET1_1588_EVENT3_IN         0x1171
+#define MX28_PAD_LCD_RD_E__LCD_VSYNC                   0x1181
+#define MX28_PAD_LCD_WR_RWN__LCD_HSYNC                 0x1191
+#define MX28_PAD_LCD_RS__LCD_DOTCLK                    0x11a1
+#define MX28_PAD_LCD_CS__LCD_ENABLE                    0x11b1
+#define MX28_PAD_LCD_VSYNC__SAIF1_SDATA0               0x11c1
+#define MX28_PAD_LCD_HSYNC__SAIF1_SDATA1               0x11d1
+#define MX28_PAD_LCD_DOTCLK__SAIF1_MCLK                        0x11e1
+#define MX28_PAD_SSP0_DATA4__SSP2_D0                   0x2041
+#define MX28_PAD_SSP0_DATA5__SSP2_D3                   0x2051
+#define MX28_PAD_SSP0_DATA6__SSP2_CMD                  0x2061
+#define MX28_PAD_SSP0_DATA7__SSP2_SCK                  0x2071
+#define MX28_PAD_SSP1_SCK__SSP2_D1                     0x20c1
+#define MX28_PAD_SSP1_CMD__SSP2_D2                     0x20d1
+#define MX28_PAD_SSP1_DATA0__SSP2_D6                   0x20e1
+#define MX28_PAD_SSP1_DATA3__SSP2_D7                   0x20f1
+#define MX28_PAD_SSP2_SCK__AUART2_RX                   0x2101
+#define MX28_PAD_SSP2_MOSI__AUART2_TX                  0x2111
+#define MX28_PAD_SSP2_MISO__AUART3_RX                  0x2121
+#define MX28_PAD_SSP2_SS0__AUART3_TX                   0x2131
+#define MX28_PAD_SSP2_SS1__SSP2_D1                     0x2141
+#define MX28_PAD_SSP2_SS2__SSP2_D2                     0x2151
+#define MX28_PAD_SSP3_SCK__AUART4_TX                   0x2181
+#define MX28_PAD_SSP3_MOSI__AUART4_RX                  0x2191
+#define MX28_PAD_SSP3_MISO__AUART4_RTS                 0x21a1
+#define MX28_PAD_SSP3_SS0__AUART4_CTS                  0x21b1
+#define MX28_PAD_AUART0_RX__I2C0_SCL                   0x3001
+#define MX28_PAD_AUART0_TX__I2C0_SDA                   0x3011
+#define MX28_PAD_AUART0_CTS__AUART4_RX                 0x3021
+#define MX28_PAD_AUART0_RTS__AUART4_TX                 0x3031
+#define MX28_PAD_AUART1_RX__SSP2_CARD_DETECT           0x3041
+#define MX28_PAD_AUART1_TX__SSP3_CARD_DETECT           0x3051
+#define MX28_PAD_AUART1_CTS__USB0_OVERCURRENT          0x3061
+#define MX28_PAD_AUART1_RTS__USB0_ID                   0x3071
+#define MX28_PAD_AUART2_RX__SSP3_D1                    0x3081
+#define MX28_PAD_AUART2_TX__SSP3_D2                    0x3091
+#define MX28_PAD_AUART2_CTS__I2C1_SCL                  0x30a1
+#define MX28_PAD_AUART2_RTS__I2C1_SDA                  0x30b1
+#define MX28_PAD_AUART3_RX__CAN0_TX                    0x30c1
+#define MX28_PAD_AUART3_TX__CAN0_RX                    0x30d1
+#define MX28_PAD_AUART3_CTS__CAN1_TX                   0x30e1
+#define MX28_PAD_AUART3_RTS__CAN1_RX                   0x30f1
+#define MX28_PAD_PWM0__I2C1_SCL                                0x3101
+#define MX28_PAD_PWM1__I2C1_SDA                                0x3111
+#define MX28_PAD_PWM2__USB0_ID                         0x3121
+#define MX28_PAD_SAIF0_MCLK__PWM_3                     0x3141
+#define MX28_PAD_SAIF0_LRCLK__PWM_4                    0x3151
+#define MX28_PAD_SAIF0_BITCLK__PWM_5                   0x3161
+#define MX28_PAD_SAIF0_SDATA0__PWM_6                   0x3171
+#define MX28_PAD_I2C0_SCL__TIMROT_ROTARYA              0x3181
+#define MX28_PAD_I2C0_SDA__TIMROT_ROTARYB              0x3191
+#define MX28_PAD_SAIF1_SDATA0__PWM_7                   0x31a1
+#define MX28_PAD_LCD_RESET__LCD_VSYNC                  0x31e1
+#define MX28_PAD_ENET0_MDC__GPMI_CE4N                  0x4001
+#define MX28_PAD_ENET0_MDIO__GPMI_CE5N                 0x4011
+#define MX28_PAD_ENET0_RX_EN__GPMI_CE6N                        0x4021
+#define MX28_PAD_ENET0_RXD0__GPMI_CE7N                 0x4031
+#define MX28_PAD_ENET0_RXD1__GPMI_READY4               0x4041
+#define MX28_PAD_ENET0_TX_CLK__HSADC_TRIGGER           0x4051
+#define MX28_PAD_ENET0_TX_EN__GPMI_READY5              0x4061
+#define MX28_PAD_ENET0_TXD0__GPMI_READY6               0x4071
+#define MX28_PAD_ENET0_TXD1__GPMI_READY7               0x4081
+#define MX28_PAD_ENET0_RXD2__ENET1_RXD0                        0x4091
+#define MX28_PAD_ENET0_RXD3__ENET1_RXD1                        0x40a1
+#define MX28_PAD_ENET0_TXD2__ENET1_TXD0                        0x40b1
+#define MX28_PAD_ENET0_TXD3__ENET1_TXD1                        0x40c1
+#define MX28_PAD_ENET0_RX_CLK__ENET0_RX_ER             0x40d1
+#define MX28_PAD_ENET0_COL__ENET1_TX_EN                        0x40e1
+#define MX28_PAD_ENET0_CRS__ENET1_RX_EN                        0x40f1
+#define MX28_PAD_GPMI_CE2N__ENET0_RX_ER                        0x0122
+#define MX28_PAD_GPMI_CE3N__SAIF1_MCLK                 0x0132
+#define MX28_PAD_GPMI_RDY0__USB0_ID                    0x0142
+#define MX28_PAD_GPMI_RDY2__ENET0_TX_ER                        0x0162
+#define MX28_PAD_GPMI_RDY3__HSADC_TRIGGER              0x0172
+#define MX28_PAD_GPMI_ALE__SSP3_D4                     0x01a2
+#define MX28_PAD_GPMI_CLE__SSP3_D5                     0x01b2
+#define MX28_PAD_LCD_D00__ETM_DA0                      0x1002
+#define MX28_PAD_LCD_D01__ETM_DA1                      0x1012
+#define MX28_PAD_LCD_D02__ETM_DA2                      0x1022
+#define MX28_PAD_LCD_D03__ETM_DA3                      0x1032
+#define MX28_PAD_LCD_D04__ETM_DA4                      0x1042
+#define MX28_PAD_LCD_D05__ETM_DA5                      0x1052
+#define MX28_PAD_LCD_D06__ETM_DA6                      0x1062
+#define MX28_PAD_LCD_D07__ETM_DA7                      0x1072
+#define MX28_PAD_LCD_D08__ETM_DA8                      0x1082
+#define MX28_PAD_LCD_D09__ETM_DA9                      0x1092
+#define MX28_PAD_LCD_D10__ETM_DA10                     0x10a2
+#define MX28_PAD_LCD_D11__ETM_DA11                     0x10b2
+#define MX28_PAD_LCD_D12__ETM_DA12                     0x10c2
+#define MX28_PAD_LCD_D13__ETM_DA13                     0x10d2
+#define MX28_PAD_LCD_D14__ETM_DA14                     0x10e2
+#define MX28_PAD_LCD_D15__ETM_DA15                     0x10f2
+#define MX28_PAD_LCD_D16__ETM_DA7                      0x1102
+#define MX28_PAD_LCD_D17__ETM_DA6                      0x1112
+#define MX28_PAD_LCD_D18__ETM_DA5                      0x1122
+#define MX28_PAD_LCD_D19__ETM_DA4                      0x1132
+#define MX28_PAD_LCD_D20__ETM_DA3                      0x1142
+#define MX28_PAD_LCD_D21__ETM_DA2                      0x1152
+#define MX28_PAD_LCD_D22__ETM_DA1                      0x1162
+#define MX28_PAD_LCD_D23__ETM_DA0                      0x1172
+#define MX28_PAD_LCD_RD_E__ETM_TCTL                    0x1182
+#define MX28_PAD_LCD_WR_RWN__ETM_TCLK                  0x1192
+#define MX28_PAD_LCD_HSYNC__ETM_TCTL                   0x11d2
+#define MX28_PAD_LCD_DOTCLK__ETM_TCLK                  0x11e2
+#define MX28_PAD_SSP1_SCK__ENET0_1588_EVENT2_OUT       0x20c2
+#define MX28_PAD_SSP1_CMD__ENET0_1588_EVENT2_IN                0x20d2
+#define MX28_PAD_SSP1_DATA0__ENET0_1588_EVENT3_OUT     0x20e2
+#define MX28_PAD_SSP1_DATA3__ENET0_1588_EVENT3_IN      0x20f2
+#define MX28_PAD_SSP2_SCK__SAIF0_SDATA1                        0x2102
+#define MX28_PAD_SSP2_MOSI__SAIF0_SDATA2               0x2112
+#define MX28_PAD_SSP2_MISO__SAIF1_SDATA1               0x2122
+#define MX28_PAD_SSP2_SS0__SAIF1_SDATA2                        0x2132
+#define MX28_PAD_SSP2_SS1__USB1_OVERCURRENT            0x2142
+#define MX28_PAD_SSP2_SS2__USB0_OVERCURRENT            0x2152
+#define MX28_PAD_SSP3_SCK__ENET1_1588_EVENT0_OUT       0x2182
+#define MX28_PAD_SSP3_MOSI__ENET1_1588_EVENT0_IN       0x2192
+#define MX28_PAD_SSP3_MISO__ENET1_1588_EVENT1_OUT      0x21a2
+#define MX28_PAD_SSP3_SS0__ENET1_1588_EVENT1_IN                0x21b2
+#define MX28_PAD_AUART0_RX__DUART_CTS                  0x3002
+#define MX28_PAD_AUART0_TX__DUART_RTS                  0x3012
+#define MX28_PAD_AUART0_CTS__DUART_RX                  0x3022
+#define MX28_PAD_AUART0_RTS__DUART_TX                  0x3032
+#define MX28_PAD_AUART1_RX__PWM_0                      0x3042
+#define MX28_PAD_AUART1_TX__PWM_1                      0x3052
+#define MX28_PAD_AUART1_CTS__TIMROT_ROTARYA            0x3062
+#define MX28_PAD_AUART1_RTS__TIMROT_ROTARYB            0x3072
+#define MX28_PAD_AUART2_RX__SSP3_D4                    0x3082
+#define MX28_PAD_AUART2_TX__SSP3_D5                    0x3092
+#define MX28_PAD_AUART2_CTS__SAIF1_BITCLK              0x30a2
+#define MX28_PAD_AUART2_RTS__SAIF1_LRCLK               0x30b2
+#define MX28_PAD_AUART3_RX__ENET0_1588_EVENT0_OUT      0x30c2
+#define MX28_PAD_AUART3_TX__ENET0_1588_EVENT0_IN       0x30d2
+#define MX28_PAD_AUART3_CTS__ENET0_1588_EVENT1_OUT     0x30e2
+#define MX28_PAD_AUART3_RTS__ENET0_1588_EVENT1_IN      0x30f2
+#define MX28_PAD_PWM0__DUART_RX                                0x3102
+#define MX28_PAD_PWM1__DUART_TX                                0x3112
+#define MX28_PAD_PWM2__USB1_OVERCURRENT                        0x3122
+#define MX28_PAD_SAIF0_MCLK__AUART4_CTS                        0x3142
+#define MX28_PAD_SAIF0_LRCLK__AUART4_RTS               0x3152
+#define MX28_PAD_SAIF0_BITCLK__AUART4_RX               0x3162
+#define MX28_PAD_SAIF0_SDATA0__AUART4_TX               0x3172
+#define MX28_PAD_I2C0_SCL__DUART_RX                    0x3182
+#define MX28_PAD_I2C0_SDA__DUART_TX                    0x3192
+#define MX28_PAD_SAIF1_SDATA0__SAIF0_SDATA1            0x31a2
+#define MX28_PAD_SPDIF__ENET1_RX_ER                    0x31b2
+#define MX28_PAD_ENET0_MDC__SAIF0_SDATA1               0x4002
+#define MX28_PAD_ENET0_MDIO__SAIF0_SDATA2              0x4012
+#define MX28_PAD_ENET0_RX_EN__SAIF1_SDATA1             0x4022
+#define MX28_PAD_ENET0_RXD0__SAIF1_SDATA2              0x4032
+#define MX28_PAD_ENET0_TX_CLK__ENET0_1588_EVENT2_OUT   0x4052
+#define MX28_PAD_ENET0_RXD2__ENET0_1588_EVENT0_OUT     0x4092
+#define MX28_PAD_ENET0_RXD3__ENET0_1588_EVENT0_IN      0x40a2
+#define MX28_PAD_ENET0_TXD2__ENET0_1588_EVENT1_OUT     0x40b2
+#define MX28_PAD_ENET0_TXD3__ENET0_1588_EVENT1_IN      0x40c2
+#define MX28_PAD_ENET0_RX_CLK__ENET0_1588_EVENT2_IN    0x40d2
+#define MX28_PAD_ENET0_COL__ENET0_1588_EVENT3_OUT      0x40e2
+#define MX28_PAD_ENET0_CRS__ENET0_1588_EVENT3_IN       0x40f2
+#define MX28_PAD_GPMI_D00__GPIO_0_0                    0x0003
+#define MX28_PAD_GPMI_D01__GPIO_0_1                    0x0013
+#define MX28_PAD_GPMI_D02__GPIO_0_2                    0x0023
+#define MX28_PAD_GPMI_D03__GPIO_0_3                    0x0033
+#define MX28_PAD_GPMI_D04__GPIO_0_4                    0x0043
+#define MX28_PAD_GPMI_D05__GPIO_0_5                    0x0053
+#define MX28_PAD_GPMI_D06__GPIO_0_6                    0x0063
+#define MX28_PAD_GPMI_D07__GPIO_0_7                    0x0073
+#define MX28_PAD_GPMI_CE0N__GPIO_0_16                  0x0103
+#define MX28_PAD_GPMI_CE1N__GPIO_0_17                  0x0113
+#define MX28_PAD_GPMI_CE2N__GPIO_0_18                  0x0123
+#define MX28_PAD_GPMI_CE3N__GPIO_0_19                  0x0133
+#define MX28_PAD_GPMI_RDY0__GPIO_0_20                  0x0143
+#define MX28_PAD_GPMI_RDY1__GPIO_0_21                  0x0153
+#define MX28_PAD_GPMI_RDY2__GPIO_0_22                  0x0163
+#define MX28_PAD_GPMI_RDY3__GPIO_0_23                  0x0173
+#define MX28_PAD_GPMI_RDN__GPIO_0_24                   0x0183
+#define MX28_PAD_GPMI_WRN__GPIO_0_25                   0x0193
+#define MX28_PAD_GPMI_ALE__GPIO_0_26                   0x01a3
+#define MX28_PAD_GPMI_CLE__GPIO_0_27                   0x01b3
+#define MX28_PAD_GPMI_RESETN__GPIO_0_28                        0x01c3
+#define MX28_PAD_LCD_D00__GPIO_1_0                     0x1003
+#define MX28_PAD_LCD_D01__GPIO_1_1                     0x1013
+#define MX28_PAD_LCD_D02__GPIO_1_2                     0x1023
+#define MX28_PAD_LCD_D03__GPIO_1_3                     0x1033
+#define MX28_PAD_LCD_D04__GPIO_1_4                     0x1043
+#define MX28_PAD_LCD_D05__GPIO_1_5                     0x1053
+#define MX28_PAD_LCD_D06__GPIO_1_6                     0x1063
+#define MX28_PAD_LCD_D07__GPIO_1_7                     0x1073
+#define MX28_PAD_LCD_D08__GPIO_1_8                     0x1083
+#define MX28_PAD_LCD_D09__GPIO_1_9                     0x1093
+#define MX28_PAD_LCD_D10__GPIO_1_10                    0x10a3
+#define MX28_PAD_LCD_D11__GPIO_1_11                    0x10b3
+#define MX28_PAD_LCD_D12__GPIO_1_12                    0x10c3
+#define MX28_PAD_LCD_D13__GPIO_1_13                    0x10d3
+#define MX28_PAD_LCD_D14__GPIO_1_14                    0x10e3
+#define MX28_PAD_LCD_D15__GPIO_1_15                    0x10f3
+#define MX28_PAD_LCD_D16__GPIO_1_16                    0x1103
+#define MX28_PAD_LCD_D17__GPIO_1_17                    0x1113
+#define MX28_PAD_LCD_D18__GPIO_1_18                    0x1123
+#define MX28_PAD_LCD_D19__GPIO_1_19                    0x1133
+#define MX28_PAD_LCD_D20__GPIO_1_20                    0x1143
+#define MX28_PAD_LCD_D21__GPIO_1_21                    0x1153
+#define MX28_PAD_LCD_D22__GPIO_1_22                    0x1163
+#define MX28_PAD_LCD_D23__GPIO_1_23                    0x1173
+#define MX28_PAD_LCD_RD_E__GPIO_1_24                   0x1183
+#define MX28_PAD_LCD_WR_RWN__GPIO_1_25                 0x1193
+#define MX28_PAD_LCD_RS__GPIO_1_26                     0x11a3
+#define MX28_PAD_LCD_CS__GPIO_1_27                     0x11b3
+#define MX28_PAD_LCD_VSYNC__GPIO_1_28                  0x11c3
+#define MX28_PAD_LCD_HSYNC__GPIO_1_29                  0x11d3
+#define MX28_PAD_LCD_DOTCLK__GPIO_1_30                 0x11e3
+#define MX28_PAD_LCD_ENABLE__GPIO_1_31                 0x11f3
+#define MX28_PAD_SSP0_DATA0__GPIO_2_0                  0x2003
+#define MX28_PAD_SSP0_DATA1__GPIO_2_1                  0x2013
+#define MX28_PAD_SSP0_DATA2__GPIO_2_2                  0x2023
+#define MX28_PAD_SSP0_DATA3__GPIO_2_3                  0x2033
+#define MX28_PAD_SSP0_DATA4__GPIO_2_4                  0x2043
+#define MX28_PAD_SSP0_DATA5__GPIO_2_5                  0x2053
+#define MX28_PAD_SSP0_DATA6__GPIO_2_6                  0x2063
+#define MX28_PAD_SSP0_DATA7__GPIO_2_7                  0x2073
+#define MX28_PAD_SSP0_CMD__GPIO_2_8                    0x2083
+#define MX28_PAD_SSP0_DETECT__GPIO_2_9                 0x2093
+#define MX28_PAD_SSP0_SCK__GPIO_2_10                   0x20a3
+#define MX28_PAD_SSP1_SCK__GPIO_2_12                   0x20c3
+#define MX28_PAD_SSP1_CMD__GPIO_2_13                   0x20d3
+#define MX28_PAD_SSP1_DATA0__GPIO_2_14                 0x20e3
+#define MX28_PAD_SSP1_DATA3__GPIO_2_15                 0x20f3
+#define MX28_PAD_SSP2_SCK__GPIO_2_16                   0x2103
+#define MX28_PAD_SSP2_MOSI__GPIO_2_17                  0x2113
+#define MX28_PAD_SSP2_MISO__GPIO_2_18                  0x2123
+#define MX28_PAD_SSP2_SS0__GPIO_2_19                   0x2133
+#define MX28_PAD_SSP2_SS1__GPIO_2_20                   0x2143
+#define MX28_PAD_SSP2_SS2__GPIO_2_21                   0x2153
+#define MX28_PAD_SSP3_SCK__GPIO_2_24                   0x2183
+#define MX28_PAD_SSP3_MOSI__GPIO_2_25                  0x2193
+#define MX28_PAD_SSP3_MISO__GPIO_2_26                  0x21a3
+#define MX28_PAD_SSP3_SS0__GPIO_2_27                   0x21b3
+#define MX28_PAD_AUART0_RX__GPIO_3_0                   0x3003
+#define MX28_PAD_AUART0_TX__GPIO_3_1                   0x3013
+#define MX28_PAD_AUART0_CTS__GPIO_3_2                  0x3023
+#define MX28_PAD_AUART0_RTS__GPIO_3_3                  0x3033
+#define MX28_PAD_AUART1_RX__GPIO_3_4                   0x3043
+#define MX28_PAD_AUART1_TX__GPIO_3_5                   0x3053
+#define MX28_PAD_AUART1_CTS__GPIO_3_6                  0x3063
+#define MX28_PAD_AUART1_RTS__GPIO_3_7                  0x3073
+#define MX28_PAD_AUART2_RX__GPIO_3_8                   0x3083
+#define MX28_PAD_AUART2_TX__GPIO_3_9                   0x3093
+#define MX28_PAD_AUART2_CTS__GPIO_3_10                 0x30a3
+#define MX28_PAD_AUART2_RTS__GPIO_3_11                 0x30b3
+#define MX28_PAD_AUART3_RX__GPIO_3_12                  0x30c3
+#define MX28_PAD_AUART3_TX__GPIO_3_13                  0x30d3
+#define MX28_PAD_AUART3_CTS__GPIO_3_14                 0x30e3
+#define MX28_PAD_AUART3_RTS__GPIO_3_15                 0x30f3
+#define MX28_PAD_PWM0__GPIO_3_16                       0x3103
+#define MX28_PAD_PWM1__GPIO_3_17                       0x3113
+#define MX28_PAD_PWM2__GPIO_3_18                       0x3123
+#define MX28_PAD_SAIF0_MCLK__GPIO_3_20                 0x3143
+#define MX28_PAD_SAIF0_LRCLK__GPIO_3_21                        0x3153
+#define MX28_PAD_SAIF0_BITCLK__GPIO_3_22               0x3163
+#define MX28_PAD_SAIF0_SDATA0__GPIO_3_23               0x3173
+#define MX28_PAD_I2C0_SCL__GPIO_3_24                   0x3183
+#define MX28_PAD_I2C0_SDA__GPIO_3_25                   0x3193
+#define MX28_PAD_SAIF1_SDATA0__GPIO_3_26               0x31a3
+#define MX28_PAD_SPDIF__GPIO_3_27                      0x31b3
+#define MX28_PAD_PWM3__GPIO_3_28                       0x31c3
+#define MX28_PAD_PWM4__GPIO_3_29                       0x31d3
+#define MX28_PAD_LCD_RESET__GPIO_3_30                  0x31e3
+#define MX28_PAD_ENET0_MDC__GPIO_4_0                   0x4003
+#define MX28_PAD_ENET0_MDIO__GPIO_4_1                  0x4013
+#define MX28_PAD_ENET0_RX_EN__GPIO_4_2                 0x4023
+#define MX28_PAD_ENET0_RXD0__GPIO_4_3                  0x4033
+#define MX28_PAD_ENET0_RXD1__GPIO_4_4                  0x4043
+#define MX28_PAD_ENET0_TX_CLK__GPIO_4_5                        0x4053
+#define MX28_PAD_ENET0_TX_EN__GPIO_4_6                 0x4063
+#define MX28_PAD_ENET0_TXD0__GPIO_4_7                  0x4073
+#define MX28_PAD_ENET0_TXD1__GPIO_4_8                  0x4083
+#define MX28_PAD_ENET0_RXD2__GPIO_4_9                  0x4093
+#define MX28_PAD_ENET0_RXD3__GPIO_4_10                 0x40a3
+#define MX28_PAD_ENET0_TXD2__GPIO_4_11                 0x40b3
+#define MX28_PAD_ENET0_TXD3__GPIO_4_12                 0x40c3
+#define MX28_PAD_ENET0_RX_CLK__GPIO_4_13               0x40d3
+#define MX28_PAD_ENET0_COL__GPIO_4_14                  0x40e3
+#define MX28_PAD_ENET0_CRS__GPIO_4_15                  0x40f3
+#define MX28_PAD_ENET_CLK__GPIO_4_16                   0x4103
+#define MX28_PAD_JTAG_RTCK__GPIO_4_20                  0x4143
+
+#endif /* __DT_BINDINGS_MX28_PINCTRL_H__ */
index 6c6a5442800ad78adfe13ada4cf44a2cfd3cfbc5..4870f07bf56a86423c6a910a5c86ce6fce1624a4 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /dts-v1/;
-/include/ "imx28.dtsi"
+#include "imx28.dtsi"
 
 / {
        model = "SchulerControl GmbH, SC SPS 1";
                                hog_pins_a: hog-gpios@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0003 /* MX28_PAD_GPMI_D00__GPIO_0_0 */
-                                               0x0033 /* MX28_PAD_GPMI_D03__GPIO_0_3 */
-                                               0x0063 /* MX28_PAD_GPMI_D06__GPIO_0_6 */
+                                               MX28_PAD_GPMI_D00__GPIO_0_0
+                                               MX28_PAD_GPMI_D03__GPIO_0_3
+                                               MX28_PAD_GPMI_D06__GPIO_0_6
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                        };
index 37be532f00550bf868b3265d1a7d7362b3443a35..be5a0550d58c3312d37f36e04c937d5739c7f181 100644 (file)
+/*
+ * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
+ * Copyright 2013 Lothar Waßmann <LW@KARO-electronics.de>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
 /dts-v1/;
-/include/ "imx28.dtsi"
+#include "imx28.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Ka-Ro electronics TX28 module";
        compatible = "karo,tx28", "fsl,imx28";
 
+       aliases {
+               can0 = &can0;
+               can1 = &can1;
+               display = &display;
+               ds1339 = &ds1339;
+               gpio5 = &gpio5;
+               lcdif = &lcdif;
+               lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
+               lcdif_24bit_pins = &lcdif_24bit_pins_a;
+               stk5led = &user_led;
+               usbotg = &usb0;
+       };
+
        memory {
-               reg = <0x40000000 0x08000000>;
-       };
-
-       apb@80000000 {
-               apbh@80000000 {
-                       ssp0: ssp@80010000 {
-                               compatible = "fsl,imx28-mmc";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&mmc0_4bit_pins_a
-                                            &mmc0_cd_cfg
-                                            &mmc0_sck_cfg>;
-                               bus-width = <4>;
-                               status = "okay";
-                       };
+               reg = <0 0>; /* will be filled in by U-Boot */
+       };
 
-                       pinctrl@80018000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&hog_pins_a>;
-
-                               hog_pins_a: hog@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               0x40a3 /* MX28_PAD_ENET0_RXD3__GPIO_4_10 */
-                                       >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
-                               };
-
-                               mac0_pins_gpio: mac0-gpio-mode@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               0x4003 /* MX28_PAD_ENET0_MDC__GPIO_4_0 */
-                                               0x4013 /* MX28_PAD_ENET0_MDIO__GPIO_4_1 */
-                                               0x4023 /* MX28_PAD_ENET0_RX_EN__GPIO_4_2 */
-                                               0x4033 /* MX28_PAD_ENET0_RXD0__GPIO_4_3 */
-                                               0x4043 /* MX28_PAD_ENET0_RXD1__GPIO_4_4 */
-                                               0x4063 /* MX28_PAD_ENET0_TX_EN__GPIO_4_6 */
-                                               0x4073 /* MX28_PAD_ENET0_TXD0__GPIO_4_7 */
-                                               0x4083 /* MX28_PAD_ENET0_TXD1__GPIO_4_8 */
-                                               0x4103 /* MX28_PAD_ENET_CLK__GPIO_4_16 */
-                                       >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
-                               };
-                       };
+       onewire {
+               compatible = "w1-gpio";
+               gpios = <&gpio2 7 0>;
+               status = "disabled";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_usb0_vbus: usb0_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb0_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio0 18 0>;
+                       enable-active-high;
                };
 
-               apbx@80040000 {
-                       i2c0: i2c@80058000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&i2c0_pins_a>;
-                               status = "okay";
+               reg_usb1_vbus: usb1_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio3 27 0>;
+                       enable-active-high;
+               };
 
-                               ds1339: rtc@68 {
-                                       compatible = "mxim,ds1339";
-                                       reg = <0x68>;
-                               };
-                       };
+               reg_2p5v: 2p5v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "2P5V";
+                       regulator-min-microvolt = <2500000>;
+                       regulator-max-microvolt = <2500000>;
+                       regulator-always-on;
+               };
 
-                       pwm: pwm@80064000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&pwm0_pins_a>;
-                               status = "okay";
-                       };
+               reg_3p3v: 3p3v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P3V";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
 
-                       duart: serial@80074000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&duart_4pins_a>;
-                               status = "okay";
-                       };
+               reg_can_xcvr: can-xcvr {
+                       compatible = "regulator-fixed";
+                       regulator-name = "CAN XCVR";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio1 0 0>;
+                       enable-active-low;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
+               };
 
-                       auart1: serial@8006c000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&auart1_pins_a>;
-                               status = "okay";
-                       };
+               reg_lcd: lcd-power {
+                       compatible = "regulator-fixed";
+                       regulator-name = "LCD POWER";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio1 31 0>;
+                       enable-active-high;
+               };
+
+               reg_lcd_reset: lcd-reset {
+                       compatible = "regulator-fixed";
+                       regulator-name = "LCD RESET";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio3 30 0>;
+                       startup-delay-us = <300000>;
+                       enable-active-high;
+                       regulator-always-on;
+                       regulator-boot-on;
                };
        };
 
-       ahb@80080000 {
-               mac0: ethernet@800f0000 {
-                       phy-mode = "rmii";
-                       pinctrl-names = "default", "gpio_mode";
-                       pinctrl-0 = <&mac0_pins_a>;
-                       pinctrl-1 = <&mac0_pins_gpio>;
-                       status = "okay";
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               mclk: clock@0 {
+                       compatible = "fixed-clock";
+                       reg = <0>;
+                       #clock-cells = <0>;
+                       clock-frequency = <27000000>;
                };
        };
 
+       sound {
+               compatible = "fsl,imx28-tx28-sgtl5000",
+                            "fsl,mxs-audio-sgtl5000";
+               model = "imx28-tx28-sgtl5000";
+               saif-controllers = <&saif0 &saif1>;
+               audio-codec = <&sgtl5000>;
+       };
+
        leds {
                compatible = "gpio-leds";
 
-               user {
+               user_led: user {
                        label = "Heartbeat";
                        gpios = <&gpio4 10 0>;
                        linux,default-trigger = "heartbeat";
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm 0 5000000>;
-               brightness-levels = <0 4 8 16 32 64 128 255>;
-               default-brightness-level = <6>;
+               pwms = <&pwm 0 500000>;
+               /*
+                * a silly way to create a 1:1 relationship between the
+                * PWM value and the actual duty cycle
+                */
+               brightness-levels = < 0  1  2  3  4  5  6  7  8  9
+                                    10 11 12 13 14 15 16 17 18 19
+                                    20 21 22 23 24 25 26 27 28 29
+                                    30 31 32 33 34 35 36 37 38 39
+                                    40 41 42 43 44 45 46 47 48 49
+                                    50 51 52 53 54 55 56 57 58 59
+                                    60 61 62 63 64 65 66 67 68 69
+                                    70 71 72 73 74 75 76 77 78 79
+                                    80 81 82 83 84 85 86 87 88 89
+                                    90 91 92 93 94 95 96 97 98 99
+                                   100>;
+               default-brightness-level = <50>;
+       };
+
+       matrix_keypad: matrix-keypad@0 {
+               compatible = "gpio-matrix-keypad";
+               col-gpios = <
+                       &gpio5 0 0
+                       &gpio5 1 0
+                       &gpio5 2 0
+                       &gpio5 3 0
+               >;
+               row-gpios = <
+                       &gpio5 4 0
+                       &gpio5 5 0
+                       &gpio5 6 0
+                       &gpio5 7 0
+               >;
+               /* sample keymap */
+               linux,keymap = <
+                       0x00000074 /* row 0, col 0, KEY_POWER */
+                       0x00010052 /* row 0, col 1, KEY_KP0 */
+                       0x0002004f /* row 0, col 2, KEY_KP1 */
+                       0x00030050 /* row 0, col 3, KEY_KP2 */
+                       0x01000051 /* row 1, col 0, KEY_KP3 */
+                       0x0101004b /* row 1, col 1, KEY_KP4 */
+                       0x0102004c /* row 1, col 2, KEY_KP5 */
+                       0x0103004d /* row 1, col 3, KEY_KP6 */
+                       0x02000047 /* row 2, col 0, KEY_KP7 */
+                       0x02010048 /* row 2, col 1, KEY_KP8 */
+                       0x02020049 /* row 2, col 2, KEY_KP9 */
+               >;
+               gpio-activelow;
+               linux,wakeup;
+               debounce-delay-ms = <100>;
+               col-scan-delay-us = <5000>;
+               linux,no-autorepeat;
+       };
+};
+
+/* 2nd TX-Std UART - (A)UART1  */
+&auart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&auart1_pins_a>;
+       status = "okay";
+};
+
+/* 3rd TX-Std UART - (A)UART3  */
+&auart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&auart3_pins_a>;
+       status = "okay";
+};
+
+&can0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&can0_pins_a>;
+       xceiver-supply = <&reg_can_xcvr>;
+       status = "okay";
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&can1_pins_a>;
+       xceiver-supply = <&reg_can_xcvr>;
+       status = "okay";
+};
+
+&digctl {
+       status = "okay";
+};
+
+/* 1st TX-Std UART - (D)UART */
+&duart {
+       pinctrl-names = "default";
+       pinctrl-0 = <&duart_4pins_a>;
+       status = "okay";
+};
+
+&gpmi {
+       pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
+       nand-on-flash-bbt;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins_a>;
+       clock-frequency = <400000>;
+       status = "okay";
+
+       sgtl5000: sgtl5000@0a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               VDDA-supply = <&reg_2p5v>;
+               VDDIO-supply = <&reg_3p3v>;
+               clocks = <&mclk>;
+       };
+
+       gpio5: pca953x@20 {
+               compatible = "nxp,pca9554";
+               reg = <0x20>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&tx28_pca9554_pins>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <28 0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       polytouch: edt-ft5x06@38 {
+               compatible = "edt,edt-ft5x06";
+               reg = <0x38>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&tx28_edt_ft5x06_pins>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <5 0>;
+               reset-gpios = <&gpio2 6 1>;
+               wake-gpios = <&gpio4 9 0>;
+       };
+
+       touchscreen: tsc2007@48 {
+               compatible = "ti,tsc2007";
+               reg = <0x48>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&tx28_tsc2007_pins>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <20 0>;
+               pendown-gpio = <&gpio3 20 1>;
+               ti,x-plate-ohms = /bits/ 16 <660>;
+       };
+
+       ds1339: rtc@68 {
+               compatible = "mxim,ds1339";
+               reg = <0x68>;
+       };
+};
+
+&lcdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
+       lcd-supply = <&reg_lcd>;
+       display = <&display>;
+       status = "okay";
+
+       display: display@0 {
+               bits-per-pixel = <32>;
+               bus-width = <24>;
+               display-timings {
+                       native-mode = <&timing5>;
+                       timing0: timing0 {
+                               panel-name = "VGA";
+                               clock-frequency = <25175000>;
+                               hactive = <640>;
+                               vactive = <480>;
+                               hback-porch = <48>;
+                               hsync-len = <96>;
+                               hfront-porch = <16>;
+                               vback-porch = <33>;
+                               vsync-len = <2>;
+                               vfront-porch = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <1>;
+                       };
+
+                       timing1: timing1 {
+                               panel-name = "ETV570";
+                               clock-frequency = <25175000>;
+                               hactive = <640>;
+                               vactive = <480>;
+                               hback-porch = <114>;
+                               hsync-len = <30>;
+                               hfront-porch = <16>;
+                               vback-porch = <32>;
+                               vsync-len = <3>;
+                               vfront-porch = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <1>;
+                       };
+
+                       timing2: timing2 {
+                               panel-name = "ET0350";
+                               clock-frequency = <6500000>;
+                               hactive = <320>;
+                               vactive = <240>;
+                               hback-porch = <34>;
+                               hsync-len = <34>;
+                               hfront-porch = <20>;
+                               vback-porch = <15>;
+                               vsync-len = <3>;
+                               vfront-porch = <4>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <1>;
+                       };
+
+                       timing3: timing3 {
+                               panel-name = "ET0430";
+                               clock-frequency = <9000000>;
+                               hactive = <480>;
+                               vactive = <272>;
+                               hback-porch = <2>;
+                               hsync-len = <41>;
+                               hfront-porch = <2>;
+                               vback-porch = <2>;
+                               vsync-len = <10>;
+                               vfront-porch = <2>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <1>;
+                       };
+
+                       timing4: timing4 {
+                               panel-name = "ET0500", "ET0700";
+                               clock-frequency = <33260000>;
+                               hactive = <800>;
+                               vactive = <480>;
+                               hback-porch = <88>;
+                               hsync-len = <128>;
+                               hfront-porch = <40>;
+                               vback-porch = <33>;
+                               vsync-len = <2>;
+                               vfront-porch = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <1>;
+                       };
+
+                       timing5: timing5 {
+                               panel-name = "ETQ570";
+                               clock-frequency = <6400000>;
+                               hactive = <320>;
+                               vactive = <240>;
+                               hback-porch = <38>;
+                               hsync-len = <30>;
+                               hfront-porch = <30>;
+                               vback-porch = <16>;
+                               vsync-len = <3>;
+                               vfront-porch = <4>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <1>;
+                       };
+               };
+       };
+};
+
+&lradc {
+       fsl,lradc-touchscreen-wires = <4>;
+       status = "okay";
+};
+
+&mac0 {
+       phy-mode = "rmii";
+       pinctrl-names = "default", "gpio_mode";
+       pinctrl-0 = <&mac0_pins_a>;
+       pinctrl-1 = <&tx28_mac0_pins_gpio>;
+       status = "okay";
+};
+
+&mac1 {
+       phy-mode = "rmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&mac1_pins_a>;
+       /* not enabled by default */
+};
+
+&mxs_rtc {
+       status = "okay";
+};
+
+&ocotp {
+       status = "okay";
+};
+
+&pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm0_pins_a>;
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hog_pins_a>;
+
+       hog_pins_a: hog@0 {
+               reg = <0>;
+               fsl,pinmux-ids = <
+                       MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+
+       tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
+               fsl,pinmux-ids = <
+                       MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
+                       MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
+                       MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+
+       tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins {
+               fsl,pinmux-ids = <
+                       MX28_PAD_LCD_D00__GPIO_1_0
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+
+       tx28_lcdif_23bit_pins: tx28-lcdif-23bit {
+               fsl,pinmux-ids = <
+                       /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
+                       MX28_PAD_LCD_D01__LCD_D1
+                       MX28_PAD_LCD_D02__LCD_D2
+                       MX28_PAD_LCD_D03__LCD_D3
+                       MX28_PAD_LCD_D04__LCD_D4
+                       MX28_PAD_LCD_D05__LCD_D5
+                       MX28_PAD_LCD_D06__LCD_D6
+                       MX28_PAD_LCD_D07__LCD_D7
+                       MX28_PAD_LCD_D08__LCD_D8
+                       MX28_PAD_LCD_D09__LCD_D9
+                       MX28_PAD_LCD_D10__LCD_D10
+                       MX28_PAD_LCD_D11__LCD_D11
+                       MX28_PAD_LCD_D12__LCD_D12
+                       MX28_PAD_LCD_D13__LCD_D13
+                       MX28_PAD_LCD_D14__LCD_D14
+                       MX28_PAD_LCD_D15__LCD_D15
+                       MX28_PAD_LCD_D16__LCD_D16
+                       MX28_PAD_LCD_D17__LCD_D17
+                       MX28_PAD_LCD_D18__LCD_D18
+                       MX28_PAD_LCD_D19__LCD_D19
+                       MX28_PAD_LCD_D20__LCD_D20
+                       MX28_PAD_LCD_D21__LCD_D21
+                       MX28_PAD_LCD_D22__LCD_D22
+                       MX28_PAD_LCD_D23__LCD_D23
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+
+       tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
+               fsl,pinmux-ids = <
+                       MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
+                       MX28_PAD_LCD_RESET__GPIO_3_30  /* Reset */
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+
+       tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
+               fsl,pinmux-ids = <
+                       MX28_PAD_ENET0_MDC__GPIO_4_0
+                       MX28_PAD_ENET0_MDIO__GPIO_4_1
+                       MX28_PAD_ENET0_RX_EN__GPIO_4_2
+                       MX28_PAD_ENET0_RXD0__GPIO_4_3
+                       MX28_PAD_ENET0_RXD1__GPIO_4_4
+                       MX28_PAD_ENET0_TX_EN__GPIO_4_6
+                       MX28_PAD_ENET0_TXD0__GPIO_4_7
+                       MX28_PAD_ENET0_TXD1__GPIO_4_8
+                       MX28_PAD_ENET_CLK__GPIO_4_16
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+
+       tx28_pca9554_pins: tx28-pca9554-pins {
+               fsl,pinmux-ids = <
+                       MX28_PAD_PWM3__GPIO_3_28
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+
+       tx28_tsc2007_pins: tx28-tsc2007-pins {
+               fsl,pinmux-ids = <
+                       MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+
+
+       tx28_usbphy0_pins: tx28-usbphy0-pins {
+               fsl,pinmux-ids = <
+                       MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
+                       MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
+               >;
+               fsl,drive-strength = <MXS_DRIVE_12mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+
+       tx28_usbphy1_pins: tx28-usbphy1-pins {
+               fsl,pinmux-ids = <
+                       MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
+                       MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
+               >;
+               fsl,drive-strength = <MXS_DRIVE_12mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+};
+
+&saif0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&saif0_pins_b>;
+       fsl,saif-master;
+       status = "okay";
+};
+
+&saif1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&saif1_pins_a>;
+       status = "okay";
+};
+
+&ssp0 {
+       compatible = "fsl,imx28-mmc";
+       pinctrl-names = "default", "special";
+       pinctrl-0 = <&mmc0_4bit_pins_a
+                    &mmc0_cd_cfg
+                    &mmc0_sck_cfg>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&ssp3 {
+       compatible = "fsl,imx28-spi";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi3_pins_a>;
+       clock-frequency = <57600000>;
+       status = "okay";
+
+       spidev0: spi@0 {
+               compatible = "spidev";
+               reg = <0>;
+               spi-max-frequency = <57600000>;
+       };
+
+       spidev1: spi@1 {
+               compatible = "spidev";
+               reg = <1>;
+               spi-max-frequency = <57600000>;
        };
 };
+
+&usb0 {
+       vbus-supply = <&reg_usb0_vbus>;
+       disable-over-current;
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usb1 {
+       vbus-supply = <&reg_usb1_vbus>;
+       disable-over-current;
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usbphy0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&tx28_usbphy0_pins>;
+       phy_type = "utmi";
+       status = "okay";
+};
+
+&usbphy1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&tx28_usbphy1_pins>;
+       phy_type = "utmi";
+       status = "okay";
+};
index 175deefb048b4349762d73ceaaebfdd0d6309080..cda19c8b0a470ecb6900255c8a9eb17b85bdf9dc 100644 (file)
@@ -9,7 +9,8 @@
  * http://www.gnu.org/copyleft/gpl.html
  */
 
-/include/ "skeleton.dtsi"
+#include "skeleton.dtsi"
+#include "imx28-pinfunc.h"
 
 / {
        interrupt-parent = <&icoll>;
                                duart_pins_a: duart@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3102 /* MX28_PAD_PWM0__DUART_RX */
-                                               0x3112 /* MX28_PAD_PWM1__DUART_TX */
+                                               MX28_PAD_PWM0__DUART_RX
+                                               MX28_PAD_PWM1__DUART_TX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                duart_pins_b: duart@1 {
                                        reg = <1>;
                                        fsl,pinmux-ids = <
-                                               0x3022 /* MX28_PAD_AUART0_CTS__DUART_RX */
-                                               0x3032 /* MX28_PAD_AUART0_RTS__DUART_TX */
+                                               MX28_PAD_AUART0_CTS__DUART_RX
+                                               MX28_PAD_AUART0_RTS__DUART_TX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                duart_4pins_a: duart-4pins@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3022 /* MX28_PAD_AUART0_CTS__DUART_RX */
-                                               0x3032 /* MX28_PAD_AUART0_RTS__DUART_TX */
-                                               0x3002 /* MX28_PAD_AUART0_RX__DUART_CTS */
-                                               0x3012 /* MX28_PAD_AUART0_TX__DUART_RTS */
+                                               MX28_PAD_AUART0_CTS__DUART_RX
+                                               MX28_PAD_AUART0_RTS__DUART_TX
+                                               MX28_PAD_AUART0_RX__DUART_CTS
+                                               MX28_PAD_AUART0_TX__DUART_RTS
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                gpmi_pins_a: gpmi-nand@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0000 /* MX28_PAD_GPMI_D00__GPMI_D0 */
-                                               0x0010 /* MX28_PAD_GPMI_D01__GPMI_D1 */
-                                               0x0020 /* MX28_PAD_GPMI_D02__GPMI_D2 */
-                                               0x0030 /* MX28_PAD_GPMI_D03__GPMI_D3 */
-                                               0x0040 /* MX28_PAD_GPMI_D04__GPMI_D4 */
-                                               0x0050 /* MX28_PAD_GPMI_D05__GPMI_D5 */
-                                               0x0060 /* MX28_PAD_GPMI_D06__GPMI_D6 */
-                                               0x0070 /* MX28_PAD_GPMI_D07__GPMI_D7 */
-                                               0x0100 /* MX28_PAD_GPMI_CE0N__GPMI_CE0N */
-                                               0x0140 /* MX28_PAD_GPMI_RDY0__GPMI_READY0 */
-                                               0x0180 /* MX28_PAD_GPMI_RDN__GPMI_RDN */
-                                               0x0190 /* MX28_PAD_GPMI_WRN__GPMI_WRN */
-                                               0x01a0 /* MX28_PAD_GPMI_ALE__GPMI_ALE */
-                                               0x01b0 /* MX28_PAD_GPMI_CLE__GPMI_CLE */
-                                               0x01c0 /* MX28_PAD_GPMI_RESETN__GPMI_RESETN */
+                                               MX28_PAD_GPMI_D00__GPMI_D0
+                                               MX28_PAD_GPMI_D01__GPMI_D1
+                                               MX28_PAD_GPMI_D02__GPMI_D2
+                                               MX28_PAD_GPMI_D03__GPMI_D3
+                                               MX28_PAD_GPMI_D04__GPMI_D4
+                                               MX28_PAD_GPMI_D05__GPMI_D5
+                                               MX28_PAD_GPMI_D06__GPMI_D6
+                                               MX28_PAD_GPMI_D07__GPMI_D7
+                                               MX28_PAD_GPMI_CE0N__GPMI_CE0N
+                                               MX28_PAD_GPMI_RDY0__GPMI_READY0
+                                               MX28_PAD_GPMI_RDN__GPMI_RDN
+                                               MX28_PAD_GPMI_WRN__GPMI_WRN
+                                               MX28_PAD_GPMI_ALE__GPMI_ALE
+                                               MX28_PAD_GPMI_CLE__GPMI_CLE
+                                               MX28_PAD_GPMI_RESETN__GPMI_RESETN
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                gpmi_status_cfg: gpmi-status-cfg {
                                        fsl,pinmux-ids = <
-                                               0x0180 /* MX28_PAD_GPMI_RDN__GPMI_RDN */
-                                               0x0190 /* MX28_PAD_GPMI_WRN__GPMI_WRN */
-                                               0x01c0 /* MX28_PAD_GPMI_RESETN__GPMI_RESETN */
+                                               MX28_PAD_GPMI_RDN__GPMI_RDN
+                                               MX28_PAD_GPMI_WRN__GPMI_WRN
+                                               MX28_PAD_GPMI_RESETN__GPMI_RESETN
                                        >;
-                                       fsl,drive-strength = <2>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
                                };
 
                                auart0_pins_a: auart0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3000 /* MX28_PAD_AUART0_RX__AUART0_RX */
-                                               0x3010 /* MX28_PAD_AUART0_TX__AUART0_TX */
-                                               0x3020 /* MX28_PAD_AUART0_CTS__AUART0_CTS */
-                                               0x3030 /* MX28_PAD_AUART0_RTS__AUART0_RTS */
+                                               MX28_PAD_AUART0_RX__AUART0_RX
+                                               MX28_PAD_AUART0_TX__AUART0_TX
+                                               MX28_PAD_AUART0_CTS__AUART0_CTS
+                                               MX28_PAD_AUART0_RTS__AUART0_RTS
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart0_2pins_a: auart0-2pins@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3000 /* MX28_PAD_AUART0_RX__AUART0_RX */
-                                               0x3010 /* MX28_PAD_AUART0_TX__AUART0_TX */
+                                               MX28_PAD_AUART0_RX__AUART0_RX
+                                               MX28_PAD_AUART0_TX__AUART0_TX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart1_pins_a: auart1@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3040 /* MX28_PAD_AUART1_RX__AUART1_RX */
-                                               0x3050 /* MX28_PAD_AUART1_TX__AUART1_TX */
-                                               0x3060 /* MX28_PAD_AUART1_CTS__AUART1_CTS */
-                                               0x3070 /* MX28_PAD_AUART1_RTS__AUART1_RTS */
+                                               MX28_PAD_AUART1_RX__AUART1_RX
+                                               MX28_PAD_AUART1_TX__AUART1_TX
+                                               MX28_PAD_AUART1_CTS__AUART1_CTS
+                                               MX28_PAD_AUART1_RTS__AUART1_RTS
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart1_2pins_a: auart1-2pins@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3040 /* MX28_PAD_AUART1_RX__AUART1_RX */
-                                               0x3050 /* MX28_PAD_AUART1_TX__AUART1_TX */
+                                               MX28_PAD_AUART1_RX__AUART1_RX
+                                               MX28_PAD_AUART1_TX__AUART1_TX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart2_2pins_a: auart2-2pins@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2101 /* MX28_PAD_SSP2_SCK__AUART2_RX */
-                                               0x2111 /* MX28_PAD_SSP2_MOSI__AUART2_TX */
+                                               MX28_PAD_SSP2_SCK__AUART2_RX
+                                               MX28_PAD_SSP2_MOSI__AUART2_TX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart2_2pins_b: auart2-2pins@1 {
                                        reg = <1>;
                                        fsl,pinmux-ids = <
-                                               0x3080 /* MX28_PAD_AUART2_RX__AUART2_RX */
-                                               0x3090 /* MX28_PAD_AUART2_TX__AUART2_TX */
+                                               MX28_PAD_AUART2_RX__AUART2_RX
+                                               MX28_PAD_AUART2_TX__AUART2_TX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart3_pins_a: auart3@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x30c0 /* MX28_PAD_AUART3_RX__AUART3_RX */
-                                               0x30d0 /* MX28_PAD_AUART3_TX__AUART3_TX */
-                                               0x30e0 /* MX28_PAD_AUART3_CTS__AUART3_CTS */
-                                               0x30f0 /* MX28_PAD_AUART3_RTS__AUART3_RTS */
+                                               MX28_PAD_AUART3_RX__AUART3_RX
+                                               MX28_PAD_AUART3_TX__AUART3_TX
+                                               MX28_PAD_AUART3_CTS__AUART3_CTS
+                                               MX28_PAD_AUART3_RTS__AUART3_RTS
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart3_2pins_a: auart3-2pins@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2121 /* MX28_PAD_SSP2_MISO__AUART3_RX */
-                                               0x2131 /* MX28_PAD_SSP2_SS0__AUART3_TX */
+                                               MX28_PAD_SSP2_MISO__AUART3_RX
+                                               MX28_PAD_SSP2_SS0__AUART3_TX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart3_2pins_b: auart3-2pins@1 {
                                        reg = <1>;
                                        fsl,pinmux-ids = <
-                                               0x30c0 /* MX28_PAD_AUART3_RX__AUART3_RX */
-                                               0x30d0 /* MX28_PAD_AUART3_TX__AUART3_TX */
+                                               MX28_PAD_AUART3_RX__AUART3_RX
+                                               MX28_PAD_AUART3_TX__AUART3_TX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                auart4_2pins_a: auart4@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2181 /* MX28_PAD_SSP3_SCK__AUART4_TX */
-                                               0x2191 /* MX28_PAD_SSP3_MOSI__AUART4_RX */
+                                               MX28_PAD_SSP3_SCK__AUART4_TX
+                                               MX28_PAD_SSP3_MOSI__AUART4_RX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                mac0_pins_a: mac0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x4000 /* MX28_PAD_ENET0_MDC__ENET0_MDC */
-                                               0x4010 /* MX28_PAD_ENET0_MDIO__ENET0_MDIO */
-                                               0x4020 /* MX28_PAD_ENET0_RX_EN__ENET0_RX_EN */
-                                               0x4030 /* MX28_PAD_ENET0_RXD0__ENET0_RXD0 */
-                                               0x4040 /* MX28_PAD_ENET0_RXD1__ENET0_RXD1 */
-                                               0x4060 /* MX28_PAD_ENET0_TX_EN__ENET0_TX_EN */
-                                               0x4070 /* MX28_PAD_ENET0_TXD0__ENET0_TXD0 */
-                                               0x4080 /* MX28_PAD_ENET0_TXD1__ENET0_TXD1 */
-                                               0x4100 /* MX28_PAD_ENET_CLK__CLKCTRL_ENET */
+                                               MX28_PAD_ENET0_MDC__ENET0_MDC
+                                               MX28_PAD_ENET0_MDIO__ENET0_MDIO
+                                               MX28_PAD_ENET0_RX_EN__ENET0_RX_EN
+                                               MX28_PAD_ENET0_RXD0__ENET0_RXD0
+                                               MX28_PAD_ENET0_RXD1__ENET0_RXD1
+                                               MX28_PAD_ENET0_TX_EN__ENET0_TX_EN
+                                               MX28_PAD_ENET0_TXD0__ENET0_TXD0
+                                               MX28_PAD_ENET0_TXD1__ENET0_TXD1
+                                               MX28_PAD_ENET_CLK__CLKCTRL_ENET
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                mac1_pins_a: mac1@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x40f1 /* MX28_PAD_ENET0_CRS__ENET1_RX_EN */
-                                               0x4091 /* MX28_PAD_ENET0_RXD2__ENET1_RXD0 */
-                                               0x40a1 /* MX28_PAD_ENET0_RXD3__ENET1_RXD1 */
-                                               0x40e1 /* MX28_PAD_ENET0_COL__ENET1_TX_EN */
-                                               0x40b1 /* MX28_PAD_ENET0_TXD2__ENET1_TXD0 */
-                                               0x40c1 /* MX28_PAD_ENET0_TXD3__ENET1_TXD1 */
+                                               MX28_PAD_ENET0_CRS__ENET1_RX_EN
+                                               MX28_PAD_ENET0_RXD2__ENET1_RXD0
+                                               MX28_PAD_ENET0_RXD3__ENET1_RXD1
+                                               MX28_PAD_ENET0_COL__ENET1_TX_EN
+                                               MX28_PAD_ENET0_TXD2__ENET1_TXD0
+                                               MX28_PAD_ENET0_TXD3__ENET1_TXD1
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                mmc0_8bit_pins_a: mmc0-8bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2000 /* MX28_PAD_SSP0_DATA0__SSP0_D0 */
-                                               0x2010 /* MX28_PAD_SSP0_DATA1__SSP0_D1 */
-                                               0x2020 /* MX28_PAD_SSP0_DATA2__SSP0_D2 */
-                                               0x2030 /* MX28_PAD_SSP0_DATA3__SSP0_D3 */
-                                               0x2040 /* MX28_PAD_SSP0_DATA4__SSP0_D4 */
-                                               0x2050 /* MX28_PAD_SSP0_DATA5__SSP0_D5 */
-                                               0x2060 /* MX28_PAD_SSP0_DATA6__SSP0_D6 */
-                                               0x2070 /* MX28_PAD_SSP0_DATA7__SSP0_D7 */
-                                               0x2080 /* MX28_PAD_SSP0_CMD__SSP0_CMD */
-                                               0x2090 /* MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT */
-                                               0x20a0 /* MX28_PAD_SSP0_SCK__SSP0_SCK */
+                                               MX28_PAD_SSP0_DATA0__SSP0_D0
+                                               MX28_PAD_SSP0_DATA1__SSP0_D1
+                                               MX28_PAD_SSP0_DATA2__SSP0_D2
+                                               MX28_PAD_SSP0_DATA3__SSP0_D3
+                                               MX28_PAD_SSP0_DATA4__SSP0_D4
+                                               MX28_PAD_SSP0_DATA5__SSP0_D5
+                                               MX28_PAD_SSP0_DATA6__SSP0_D6
+                                               MX28_PAD_SSP0_DATA7__SSP0_D7
+                                               MX28_PAD_SSP0_CMD__SSP0_CMD
+                                               MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT
+                                               MX28_PAD_SSP0_SCK__SSP0_SCK
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                mmc0_4bit_pins_a: mmc0-4bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2000 /* MX28_PAD_SSP0_DATA0__SSP0_D0 */
-                                               0x2010 /* MX28_PAD_SSP0_DATA1__SSP0_D1 */
-                                               0x2020 /* MX28_PAD_SSP0_DATA2__SSP0_D2 */
-                                               0x2030 /* MX28_PAD_SSP0_DATA3__SSP0_D3 */
-                                               0x2080 /* MX28_PAD_SSP0_CMD__SSP0_CMD */
-                                               0x2090 /* MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT */
-                                               0x20a0 /* MX28_PAD_SSP0_SCK__SSP0_SCK */
+                                               MX28_PAD_SSP0_DATA0__SSP0_D0
+                                               MX28_PAD_SSP0_DATA1__SSP0_D1
+                                               MX28_PAD_SSP0_DATA2__SSP0_D2
+                                               MX28_PAD_SSP0_DATA3__SSP0_D3
+                                               MX28_PAD_SSP0_CMD__SSP0_CMD
+                                               MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT
+                                               MX28_PAD_SSP0_SCK__SSP0_SCK
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                mmc0_cd_cfg: mmc0-cd-cfg {
                                        fsl,pinmux-ids = <
-                                               0x2090 /* MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT */
+                                               MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT
                                        >;
-                                       fsl,pull-up = <0>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                mmc0_sck_cfg: mmc0-sck-cfg {
                                        fsl,pinmux-ids = <
-                                               0x20a0 /* MX28_PAD_SSP0_SCK__SSP0_SCK */
+                                               MX28_PAD_SSP0_SCK__SSP0_SCK
                                        >;
-                                       fsl,drive-strength = <2>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
+                               };
+
+                               mmc2_4bit_pins_a: mmc2-4bit@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX28_PAD_SSP0_DATA4__SSP2_D0
+                                               MX28_PAD_SSP1_SCK__SSP2_D1
+                                               MX28_PAD_SSP1_CMD__SSP2_D2
+                                               MX28_PAD_SSP0_DATA5__SSP2_D3
+                                               MX28_PAD_SSP0_DATA6__SSP2_CMD
+                                               MX28_PAD_AUART1_RX__SSP2_CARD_DETECT
+                                               MX28_PAD_SSP0_DATA7__SSP2_SCK
+                                       >;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
+                               };
+
+                               mmc2_cd_cfg: mmc2-cd-cfg {
+                                       fsl,pinmux-ids = <
+                                               MX28_PAD_AUART1_RX__SSP2_CARD_DETECT
+                                       >;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
+                               };
+
+                               mmc2_sck_cfg: mmc2-sck-cfg {
+                                       fsl,pinmux-ids = <
+                                               MX28_PAD_SSP0_DATA7__SSP2_SCK
+                                       >;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                i2c0_pins_a: i2c0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3180 /* MX28_PAD_I2C0_SCL__I2C0_SCL */
-                                               0x3190 /* MX28_PAD_I2C0_SDA__I2C0_SDA */
+                                               MX28_PAD_I2C0_SCL__I2C0_SCL
+                                               MX28_PAD_I2C0_SDA__I2C0_SDA
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                i2c0_pins_b: i2c0@1 {
                                        reg = <1>;
                                        fsl,pinmux-ids = <
-                                               0x3001 /* MX28_PAD_AUART0_RX__I2C0_SCL */
-                                               0x3011 /* MX28_PAD_AUART0_TX__I2C0_SDA */
+                                               MX28_PAD_AUART0_RX__I2C0_SCL
+                                               MX28_PAD_AUART0_TX__I2C0_SDA
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                i2c1_pins_a: i2c1@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3101 /* MX28_PAD_PWM0__I2C1_SCL */
-                                               0x3111 /* MX28_PAD_PWM1__I2C1_SDA */
+                                               MX28_PAD_PWM0__I2C1_SCL
+                                               MX28_PAD_PWM1__I2C1_SDA
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                saif0_pins_a: saif0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3140 /* MX28_PAD_SAIF0_MCLK__SAIF0_MCLK */
-                                               0x3150 /* MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK */
-                                               0x3160 /* MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK */
-                                               0x3170 /* MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 */
+                                               MX28_PAD_SAIF0_MCLK__SAIF0_MCLK
+                                               MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK
+                                               MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK
+                                               MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0
                                        >;
-                                       fsl,drive-strength = <2>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                saif0_pins_b: saif0@1 {
                                        reg = <1>;
                                        fsl,pinmux-ids = <
-                                               0x3150 /* MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK */
-                                               0x3160 /* MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK */
-                                               0x3170 /* MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 */
+                                               MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK
+                                               MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK
+                                               MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0
                                        >;
-                                       fsl,drive-strength = <2>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                saif1_pins_a: saif1@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x31a0 /* MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0 */
+                                               MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0
                                        >;
-                                       fsl,drive-strength = <2>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                pwm0_pins_a: pwm0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3100 /* MX28_PAD_PWM0__PWM_0 */
+                                               MX28_PAD_PWM0__PWM_0
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                pwm2_pins_a: pwm2@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3120 /* MX28_PAD_PWM2__PWM_2 */
+                                               MX28_PAD_PWM2__PWM_2
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                pwm3_pins_a: pwm3@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x31c0 /* MX28_PAD_PWM3__PWM_3 */
+                                               MX28_PAD_PWM3__PWM_3
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                pwm3_pins_b: pwm3@1 {
                                        reg = <1>;
                                        fsl,pinmux-ids = <
-                                               0x3141 /* MX28_PAD_SAIF0_MCLK__PWM3 */
+                                               MX28_PAD_SAIF0_MCLK__PWM_3
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                pwm4_pins_a: pwm4@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x31d0 /* MX28_PAD_PWM4__PWM_4 */
+                                               MX28_PAD_PWM4__PWM_4
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_24bit_pins_a: lcdif-24bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
-                                               0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
-                                               0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
-                                               0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
-                                               0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
-                                               0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
-                                               0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
-                                               0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
-                                               0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
-                                               0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
-                                               0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
-                                               0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
-                                               0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
-                                               0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
-                                               0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
-                                               0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
-                                               0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */
-                                               0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */
-                                               0x1120 /* MX28_PAD_LCD_D18__LCD_D18 */
-                                               0x1130 /* MX28_PAD_LCD_D19__LCD_D19 */
-                                               0x1140 /* MX28_PAD_LCD_D20__LCD_D20 */
-                                               0x1150 /* MX28_PAD_LCD_D21__LCD_D21 */
-                                               0x1160 /* MX28_PAD_LCD_D22__LCD_D22 */
-                                               0x1170 /* MX28_PAD_LCD_D23__LCD_D23 */
+                                               MX28_PAD_LCD_D00__LCD_D0
+                                               MX28_PAD_LCD_D01__LCD_D1
+                                               MX28_PAD_LCD_D02__LCD_D2
+                                               MX28_PAD_LCD_D03__LCD_D3
+                                               MX28_PAD_LCD_D04__LCD_D4
+                                               MX28_PAD_LCD_D05__LCD_D5
+                                               MX28_PAD_LCD_D06__LCD_D6
+                                               MX28_PAD_LCD_D07__LCD_D7
+                                               MX28_PAD_LCD_D08__LCD_D8
+                                               MX28_PAD_LCD_D09__LCD_D9
+                                               MX28_PAD_LCD_D10__LCD_D10
+                                               MX28_PAD_LCD_D11__LCD_D11
+                                               MX28_PAD_LCD_D12__LCD_D12
+                                               MX28_PAD_LCD_D13__LCD_D13
+                                               MX28_PAD_LCD_D14__LCD_D14
+                                               MX28_PAD_LCD_D15__LCD_D15
+                                               MX28_PAD_LCD_D16__LCD_D16
+                                               MX28_PAD_LCD_D17__LCD_D17
+                                               MX28_PAD_LCD_D18__LCD_D18
+                                               MX28_PAD_LCD_D19__LCD_D19
+                                               MX28_PAD_LCD_D20__LCD_D20
+                                               MX28_PAD_LCD_D21__LCD_D21
+                                               MX28_PAD_LCD_D22__LCD_D22
+                                               MX28_PAD_LCD_D23__LCD_D23
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_16bit_pins_a: lcdif-16bit@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
-                                               0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
-                                               0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
-                                               0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
-                                               0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
-                                               0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
-                                               0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
-                                               0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
-                                               0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
-                                               0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
-                                               0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
-                                               0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
-                                               0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
-                                               0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
-                                               0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
-                                               0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
+                                               MX28_PAD_LCD_D00__LCD_D0
+                                               MX28_PAD_LCD_D01__LCD_D1
+                                               MX28_PAD_LCD_D02__LCD_D2
+                                               MX28_PAD_LCD_D03__LCD_D3
+                                               MX28_PAD_LCD_D04__LCD_D4
+                                               MX28_PAD_LCD_D05__LCD_D5
+                                               MX28_PAD_LCD_D06__LCD_D6
+                                               MX28_PAD_LCD_D07__LCD_D7
+                                               MX28_PAD_LCD_D08__LCD_D8
+                                               MX28_PAD_LCD_D09__LCD_D9
+                                               MX28_PAD_LCD_D10__LCD_D10
+                                               MX28_PAD_LCD_D11__LCD_D11
+                                               MX28_PAD_LCD_D12__LCD_D12
+                                               MX28_PAD_LCD_D13__LCD_D13
+                                               MX28_PAD_LCD_D14__LCD_D14
+                                               MX28_PAD_LCD_D15__LCD_D15
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                lcdif_sync_pins_a: lcdif-sync@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
-                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
-                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
-                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
+                                               MX28_PAD_LCD_RS__LCD_DOTCLK
+                                               MX28_PAD_LCD_CS__LCD_ENABLE
+                                               MX28_PAD_LCD_RD_E__LCD_VSYNC
+                                               MX28_PAD_LCD_WR_RWN__LCD_HSYNC
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                can0_pins_a: can0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0161 /* MX28_PAD_GPMI_RDY2__CAN0_TX */
-                                               0x0171 /* MX28_PAD_GPMI_RDY3__CAN0_RX */
+                                               MX28_PAD_GPMI_RDY2__CAN0_TX
+                                               MX28_PAD_GPMI_RDY3__CAN0_RX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                can1_pins_a: can1@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0121 /* MX28_PAD_GPMI_CE2N__CAN1_TX */
-                                               0x0131 /* MX28_PAD_GPMI_CE3N__CAN1_RX */
+                                               MX28_PAD_GPMI_CE2N__CAN1_TX
+                                               MX28_PAD_GPMI_CE3N__CAN1_RX
                                        >;
-                                       fsl,drive-strength = <0>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                spi2_pins_a: spi2@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2100 /* MX28_PAD_SSP2_SCK__SSP2_SCK */
-                                               0x2110 /* MX28_PAD_SSP2_MOSI__SSP2_CMD */
-                                               0x2120 /* MX28_PAD_SSP2_MISO__SSP2_D0 */
-                                               0x2130 /* MX28_PAD_SSP2_SS0__SSP2_D3 */
+                                               MX28_PAD_SSP2_SCK__SSP2_SCK
+                                               MX28_PAD_SSP2_MOSI__SSP2_CMD
+                                               MX28_PAD_SSP2_MISO__SSP2_D0
+                                               MX28_PAD_SSP2_SS0__SSP2_D3
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <1>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
 
                                spi3_pins_a: spi3@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x3082 /* MX28_PAD_AUART2_RX__SSP3_D4 */
-                                               0x3092 /* MX28_PAD_AUART2_TX__SSP3_D5 */
-                                               0x2180 /* MX28_PAD_SSP3_SCK__SSP3_SCK */
-                                               0x2190 /* MX28_PAD_SSP3_MOSI__SSP3_CMD */
-                                               0x21A0 /* MX28_PAD_SSP3_MISO__SSP3_D0 */
-                                               0x21B0 /* MX28_PAD_SSP3_SS0__SSP3_D3 */
+                                               MX28_PAD_AUART2_RX__SSP3_D4
+                                               MX28_PAD_AUART2_TX__SSP3_D5
+                                               MX28_PAD_SSP3_SCK__SSP3_SCK
+                                               MX28_PAD_SSP3_MOSI__SSP3_CMD
+                                               MX28_PAD_SSP3_MISO__SSP3_D0
+                                               MX28_PAD_SSP3_SS0__SSP3_D3
                                        >;
-                                       fsl,drive-strength = <1>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                usbphy0_pins_a: usbphy0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2152 /* MX28_PAD_SSP2_SS2__USB0_OVERCURRENT */
+                                               MX28_PAD_SSP2_SS2__USB0_OVERCURRENT
                                        >;
-                                       fsl,drive-strength = <2>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                usbphy0_pins_b: usbphy0@1 {
                                        reg = <1>;
                                        fsl,pinmux-ids = <
-                                               0x3061 /* MX28_PAD_AUART1_CTS__USB0_OVERCURRENT */
+                                               MX28_PAD_AUART1_CTS__USB0_OVERCURRENT
                                        >;
-                                       fsl,drive-strength = <2>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
                                usbphy1_pins_a: usbphy1@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x2142 /* MX28_PAD_SSP2_SS1__USB1_OVERCURRENT */
+                                               MX28_PAD_SSP2_SS1__USB1_OVERCURRENT
+                                       >;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
+                               };
+
+                               usb0_id_pins_a: usb0id@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX28_PAD_AUART1_RTS__USB0_ID
                                        >;
-                                       fsl,drive-strength = <2>;
-                                       fsl,voltage = <1>;
-                                       fsl,pull-up = <0>;
+                                       fsl,drive-strength = <MXS_DRIVE_12mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
                                };
                        };
 
index 123fe84e0e8c4b4777f2cb80d017bb75da59a69d..5a7f552786a112dadff76c0d664fc6fb682f7ccf 100644 (file)
        model = "Armadeus Systems APF51Dev docking/development board";
        compatible = "armadeus,imx51-apf51dev", "armadeus,imx51-apf51", "fsl,imx51";
 
+       display@di1 {
+               compatible = "fsl,imx-parallel-display";
+               crtcs = <&ipu 0>;
+               interface-pix-fmt = "bgr666";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ipu_disp1_1>;
+
+               display-timings {
+                       lw700 {
+                               native-mode;
+                               clock-frequency = <33000033>;
+                               hactive = <800>;
+                               vactive = <480>;
+                               hback-porch = <96>;
+                               hfront-porch = <96>;
+                               vback-porch = <20>;
+                               vfront-porch = <21>;
+                               hsync-len = <64>;
+                               vsync-len = <4>;
+                               hsync-active = <1>;
+                               vsync-active = <1>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
index 1d337d99ecd533e7deea58a46a8a3fb55287a8d8..be1407cf5abd1b1479e55fbfeac48be44dc90d4c 100644 (file)
                interface-pix-fmt = "rgb24";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ipu_disp1_1>;
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: dvi {
+                               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>;
+                       };
+               };
        };
 
        display@di1 {
                interface-pix-fmt = "rgb565";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ipu_disp2_1>;
+               status = "disabled";
+               display-timings {
+                       native-mode = <&timing1>;
+                       timing1: claawvga {
+                               clock-frequency = <27000000>;
+                               hactive = <800>;
+                               vactive = <480>;
+                               hback-porch = <40>;
+                               hfront-porch = <60>;
+                               vback-porch = <10>;
+                               vfront-porch = <10>;
+                               hsync-len = <20>;
+                               vsync-len = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
        };
 
        gpio-keys {
 
 &uart3 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart3_1>;
+       pinctrl-0 = <&pinctrl_uart3_1 &pinctrl_uart3_rtscts_1>;
        fsl,uart-has-rtscts;
        status = "okay";
 };
 
 &uart1 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart1_1>;
+       pinctrl-0 = <&pinctrl_uart1_1 &pinctrl_uart1_rtscts_1>;
        fsl,uart-has-rtscts;
        status = "okay";
 };
index 54cee6517902d647507f3ed40302135fcba1b849..f4dcff3a9969a053d0a7c136015c94526a739cb8 100644 (file)
                interrupt-parent = <&tzic>;
                ranges;
 
+               iram: iram@1ffe0000 {
+                       compatible = "mmio-sram";
+                       reg = <0x1ffe0000 0x20000>;
+               };
+
                ipu: ipu@40000000 {
                        #crtc-cells = <1>;
                        compatible = "fsl,imx51-ipu";
                                clocks = <&clks 107>;
                        };
 
+                       owire: owire@83fa4000 {
+                               compatible = "fsl,imx51-owire", "fsl,imx21-owire";
+                               reg = <0x83fa4000 0x4000>;
+                               interrupts = <88>;
+                               clocks = <&clks 159>;
+                               status = "disabled";
+                       };
+
                        ecspi2: ecspi@83fac000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                        fsl,pins = <
                                MX51_PAD_UART1_RXD__UART1_RXD 0x1c5
                                MX51_PAD_UART1_TXD__UART1_TXD 0x1c5
+                       >;
+               };
+
+               pinctrl_uart1_rtscts_1: uart1rtscts-1 {
+                       fsl,pins = <
                                MX51_PAD_UART1_RTS__UART1_RTS 0x1c5
                                MX51_PAD_UART1_CTS__UART1_CTS 0x1c5
                        >;
                        fsl,pins = <
                                MX51_PAD_EIM_D25__UART3_RXD 0x1c5
                                MX51_PAD_EIM_D26__UART3_TXD 0x1c5
+                       >;
+               };
+
+               pinctrl_uart3_rtscts_1: uart3rtscts-1 {
+                       fsl,pins = <
                                MX51_PAD_EIM_D27__UART3_RTS 0x1c5
                                MX51_PAD_EIM_D24__UART3_CTS 0x1c5
                        >;
index e97ddae09d74cd1afea569013c75fcfde5b4b4b0..91a5935a4aacd63879f2f2104f546d6f41bb7e60 100644 (file)
                        label = "Power Button";
                        gpios = <&gpio1 8 0>;
                        linux,code = <116>; /* KEY_POWER */
-                       gpio-key,wakeup;
                };
 
                volume-up {
                        label = "Volume Up";
                        gpios = <&gpio2 14 0>;
                        linux,code = <115>; /* KEY_VOLUMEUP */
+                       gpio-key,wakeup;
                };
 
                volume-down {
                        label = "Volume Down";
                        gpios = <&gpio2 15 0>;
                        linux,code = <114>; /* KEY_VOLUMEDOWN */
+                       gpio-key,wakeup;
                };
        };
 
 &esdhc1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_esdhc1_1>;
-       cd-gpios = <&gpio3 13 0>;
        status = "okay";
 };
 
        pinctrl-0 = <&pinctrl_esdhc3_1>;
        cd-gpios = <&gpio3 11 0>;
        wp-gpios = <&gpio3 12 0>;
+       bus-width = <8>;
        status = "okay";
 };
 
                                MX53_PAD_PATA_DATA15__GPIO2_15    0x80000000
                                MX53_PAD_EIM_DA11__GPIO3_11       0x80000000
                                MX53_PAD_EIM_DA12__GPIO3_12       0x80000000
-                               MX53_PAD_EIM_DA13__GPIO3_13       0x80000000
                                MX53_PAD_PATA_DA_0__GPIO7_6       0x80000000
                                MX53_PAD_PATA_DA_2__GPIO7_8       0x80000000
                                MX53_PAD_GPIO_16__GPIO7_11        0x80000000
 };
 
 &usbotg {
-       status = "okay";
+       dr_mode = "peripheral";
+       status = "okay";
 };
index 4307e80b2d2e386e53d48ee2080ca66df625565f..362eca0c9270c86169ab9d22ec629bf6241e1c6b 100644 (file)
                                #interrupt-cells = <2>;
                        };
 
+                       kpp: kpp@53f94000 {
+                               compatible = "fsl,imx53-kpp", "fsl,imx21-kpp";
+                               reg = <0x53f94000 0x4000>;
+                               interrupts = <60>;
+                               clocks = <&clks 0>;
+                               status = "disabled";
+                       };
+
                        wdog1: wdog@53f98000 {
                                compatible = "fsl,imx53-wdt", "fsl,imx21-wdt";
                                reg = <0x53f98000 0x4000>;
                                                        MX53_PAD_GPIO_5__I2C3_SCL 0xc0000000
                                                >;
                                        };
+
+                                       pinctrl_i2c3_2: i2c3grp-2 {
+                                               fsl,pins = <
+                                                       MX53_PAD_GPIO_3__I2C3_SCL       0xc0000000
+                                                       MX53_PAD_GPIO_6__I2C3_SDA       0xc0000000
+                                               >;
+                                       };
                                };
 
                                ipu_disp0 {
diff --git a/arch/arm/boot/dts/imx6dl-gw51xx.dts b/arch/arm/boot/dts/imx6dl-gw51xx.dts
new file mode 100644 (file)
index 0000000..4bd055f
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6dl.dtsi"
+#include "imx6qdl-gw51xx.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 DualLite GW51XX";
+       compatible = "gw,imx6dl-gw51xx", "gw,ventana", "fsl,imx6dl";
+};
diff --git a/arch/arm/boot/dts/imx6dl-gw52xx.dts b/arch/arm/boot/dts/imx6dl-gw52xx.dts
new file mode 100644 (file)
index 0000000..c913605
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6dl.dtsi"
+#include "imx6qdl-gw52xx.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 DualLite GW52XX";
+       compatible = "gw,imx6dl-gw52xx", "gw,ventana", "fsl,imx6dl";
+};
diff --git a/arch/arm/boot/dts/imx6dl-gw53xx.dts b/arch/arm/boot/dts/imx6dl-gw53xx.dts
new file mode 100644 (file)
index 0000000..61818a1
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6dl.dtsi"
+#include "imx6qdl-gw53xx.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 DualLite GW53XX";
+       compatible = "gw,imx6dl-gw53xx", "gw,ventana", "fsl,imx6dl";
+};
diff --git a/arch/arm/boot/dts/imx6dl-gw54xx.dts b/arch/arm/boot/dts/imx6dl-gw54xx.dts
new file mode 100644 (file)
index 0000000..ab38b67
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6dl.dtsi"
+#include "imx6qdl-gw54xx.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 DualLite GW54XX";
+       compatible = "gw,imx6dl-gw54xx", "gw,ventana", "fsl,imx6dl";
+};
diff --git a/arch/arm/boot/dts/imx6q-gw51xx.dts b/arch/arm/boot/dts/imx6q-gw51xx.dts
new file mode 100644 (file)
index 0000000..af4929a
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6q.dtsi"
+#include "imx6qdl-gw54xx.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 Quad GW51XX";
+       compatible = "gw,imx6q-gw51xx", "gw,ventana", "fsl,imx6q";
+};
diff --git a/arch/arm/boot/dts/imx6q-gw52xx.dts b/arch/arm/boot/dts/imx6q-gw52xx.dts
new file mode 100644 (file)
index 0000000..5f71ddb
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6q.dtsi"
+#include "imx6qdl-gw52xx.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 Quad GW52XX";
+       compatible = "gw,imx6q-gw52xx", "gw,ventana", "fsl,imx6q";
+};
+
+&sata {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6q-gw53xx.dts b/arch/arm/boot/dts/imx6q-gw53xx.dts
new file mode 100644 (file)
index 0000000..360c316
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6q.dtsi"
+#include "imx6qdl-gw53xx.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 Quad GW53XX";
+       compatible = "gw,imx6q-gw53xx", "gw,ventana", "fsl,imx6q";
+};
+
+&sata {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6q-gw5400-a.dts b/arch/arm/boot/dts/imx6q-gw5400-a.dts
new file mode 100644 (file)
index 0000000..66662f9
--- /dev/null
@@ -0,0 +1,443 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6q.dtsi"
+
+/ {
+       model = "Gateworks Ventana GW5400-A";
+       compatible = "gw,imx6q-gw5400-a", "gw,ventana", "fsl,imx6q";
+
+       /* these are used by bootloader for disabling nodes */
+       aliases {
+               ethernet0 = &fec;
+               ethernet1 = &eth1;
+               i2c0 = &i2c1;
+               i2c1 = &i2c2;
+               i2c2 = &i2c3;
+               led0 = &led0;
+               led1 = &led1;
+               led2 = &led2;
+               sky2 = &eth1;
+               ssi0 = &ssi1;
+               spi0 = &ecspi1;
+               usb0 = &usbh1;
+               usb1 = &usbotg;
+               usdhc2 = &usdhc3;
+       };
+
+       chosen {
+               bootargs = "console=ttymxc1,115200";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led0: user1 {
+                       label = "user1";
+                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led1: user2 {
+                       label = "user2";
+                       gpios = <&gpio4 10 0>; /* 106 -> MX6_PANLEDR */
+                       default-state = "off";
+               };
+
+               led2: user3 {
+                       label = "user3";
+                       gpios = <&gpio4 15 1>; /* 111 -> MX6_LOCLED# */
+                       default-state = "off";
+               };
+       };
+
+       memory {
+               reg = <0x10000000 0x40000000>;
+       };
+
+       pps {
+               compatible = "pps-gpio";
+               gpios = <&gpio1 5 0>;
+               status = "okay";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_1p0v: 1p0v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "1P0V";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-always-on;
+               };
+
+               reg_3p3v: 3p3v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P3V";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_usb_h1_vbus: usb_h1_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_h1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+               };
+
+               reg_usb_otg_vbus: usb_otg_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_otg_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio3 22 0>;
+                       enable-active-high;
+               };
+       };
+
+       sound {
+               compatible = "fsl,imx6q-sabrelite-sgtl5000",
+                            "fsl,imx-audio-sgtl5000";
+               model = "imx6q-sabrelite-sgtl5000";
+               ssi-controller = <&ssi1>;
+               audio-codec = <&codec>;
+               audio-routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HP_OUT";
+               mux-int-port = <1>;
+               mux-ext-port = <4>;
+       };
+};
+
+&audmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_1>;
+       status = "okay";
+};
+
+&ecspi1 {
+       fsl,spi-num-chipselects = <1>;
+       cs-gpios = <&gpio3 19 0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1_1>;
+       status = "okay";
+
+       flash: m25p80@0 {
+               compatible = "sst,w25q256";
+               spi-max-frequency = <30000000>;
+               reg = <0>;
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet_1>;
+       phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio1 30 0>;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1_1>;
+       status = "okay";
+
+       eeprom1: eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       eeprom2: eeprom@51 {
+               compatible = "atmel,24c02";
+               reg = <0x51>;
+               pagesize = <16>;
+       };
+
+       eeprom3: eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <16>;
+       };
+
+       eeprom4: eeprom@53 {
+               compatible = "atmel,24c02";
+               reg = <0x53>;
+               pagesize = <16>;
+       };
+
+       gpio: pca9555@23 {
+               compatible = "nxp,pca9555";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       hwmon: gsc@29 {
+               compatible = "gw,gsp";
+               reg = <0x29>;
+       };
+
+       rtc: ds1672@68 {
+               compatible = "dallas,ds1672";
+               reg = <0x68>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2_2>;
+       status = "okay";
+
+       pmic: pfuze100@08 {
+               compatible = "fsl,pfuze100";
+               reg = <0x08>;
+
+               regulators {
+                       sw1a_reg: sw1ab {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw1c_reg: sw1c {
+                               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 = <3950000>;
+                               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;
+                       };
+
+                       sw4_reg: sw4 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       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>;
+                       };
+
+                       vgen2_reg: vgen2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       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;
+                       };
+               };
+       };
+
+       pciswitch: pex8609@3f {
+               compatible = "plx,pex8609";
+               reg = <0x3f>;
+       };
+
+       pciclkgen: si52147@6b {
+               compatible = "sil,si52147";
+               reg = <0x6b>;
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3_2>;
+       status = "okay";
+
+       accelerometer: mma8450@1c {
+               compatible = "fsl,mma8450";
+               reg = <0x1c>;
+       };
+
+       codec: sgtl5000@0a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               clocks = <&clks 201>;
+               VDDA-supply = <&sw4_reg>;
+               VDDIO-supply = <&reg_3p3v>;
+       };
+
+       hdmiin: adv7611@4c {
+               compatible = "adi,adv7611";
+               reg = <0x4c>;
+       };
+
+       touchscreen: egalax_ts@04 {
+               compatible = "eeti,egalax_ts";
+               reg = <0x04>;
+               interrupt-parent = <&gpio7>;
+               interrupts = <12 2>; /* gpio7_12 active low */
+               wakeup-gpios = <&gpio7 12 0>;
+       };
+
+       videoout: adv7393@2a {
+               compatible = "adi,adv7393";
+               reg = <0x2a>;
+       };
+
+       videoin: adv7180@20 {
+               compatible = "adi,adv7180";
+               reg = <0x20>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       hog {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D22__GPIO3_IO22    0x80000000 /* OTG_PWR_EN */
+                               MX6QDL_PAD_EIM_D19__GPIO3_IO19    0x80000000 /* SPINOR_CS0# */
+                               MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x80000000 /* PCIE IRQ */
+                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29  0x80000000 /* PCIE RST */
+                               MX6QDL_PAD_GPIO_0__CCM_CLKO1      0x000130b0 /* AUD4_MCK */
+                               MX6QDL_PAD_GPIO_5__GPIO1_IO05     0x80000000 /* GPS_PPS */
+                               MX6QDL_PAD_GPIO_17__GPIO7_IO12    0x80000000 /* TOUCH_IRQ# */
+                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06   0x80000000 /* user1 led */
+                               MX6QDL_PAD_KEY_COL2__GPIO4_IO10   0x80000000 /* user2 led */
+                               MX6QDL_PAD_KEY_ROW4__GPIO4_IO15   0x80000000 /* user3 led */
+                               MX6QDL_PAD_SD1_DAT0__GPIO1_IO16   0x80000000 /* USBHUB_RST# */
+                               MX6QDL_PAD_SD1_DAT3__GPIO1_IO21   0x80000000 /* MIPI_DIO */
+                        >;
+               };
+       };
+};
+
+&ldb {
+       status = "okay";
+       lvds-channel@0 {
+               crtcs = <&ipu1 0>, <&ipu1 1>, <&ipu2 0>, <&ipu2 1>;
+       };
+};
+
+&pcie {
+       reset-gpio = <&gpio1 29 0>;
+       status = "okay";
+
+       eth1: sky2@8 { /* MAC/PHY on bus 8 */
+               compatible = "marvell,sky2";
+       };
+};
+
+&ssi1 {
+       fsl,mode = "i2s-slave";
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_2>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_3>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5_1>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg_1>;
+       disable-over-current;
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_h1_vbus>;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3_2>;
+       cd-gpios = <&gpio7 0 0>;
+       vmmc-supply = <&reg_3p3v>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6q-gw54xx.dts b/arch/arm/boot/dts/imx6q-gw54xx.dts
new file mode 100644 (file)
index 0000000..ab518d6
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6q.dtsi"
+#include "imx6qdl-gw54xx.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 Quad GW54XX";
+       compatible = "gw,imx6q-gw54xx", "gw,ventana", "fsl,imx6q";
+};
+
+&sata {
+       status = "okay";
+};
index 9bbe82bdee4112ca0b15de05118b70472b04287c..97ed0816a6e0c749b5bccd2562b2cbe8655ff326 100644 (file)
 #define MX6QDL_PAD_ENET_REF_CLK__ESAI_RX_FS         0x1d4 0x4e8 0x85c 0x2 0x0
 #define MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23         0x1d4 0x4e8 0x000 0x5 0x0
 #define MX6QDL_PAD_ENET_REF_CLK__SPDIF_SR_CLK       0x1d4 0x4e8 0x000 0x6 0x0
-#define MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID           0x1d8 0x4ec 0x000 0x0 0x0
+#define MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID           0x1d8 0x4ec 0x004 0x0 0xff0d0100
 #define MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER           0x1d8 0x4ec 0x000 0x1 0x0
 #define MX6QDL_PAD_ENET_RX_ER__ESAI_RX_HF_CLK       0x1d8 0x4ec 0x864 0x2 0x0
 #define MX6QDL_PAD_ENET_RX_ER__SPDIF_IN             0x1d8 0x4ec 0x914 0x3 0x1
 #define MX6QDL_PAD_GPIO_1__ESAI_RX_CLK              0x224 0x5f4 0x86c 0x0 0x1
 #define MX6QDL_PAD_GPIO_1__WDOG2_B                  0x224 0x5f4 0x000 0x1 0x0
 #define MX6QDL_PAD_GPIO_1__KEY_ROW5                 0x224 0x5f4 0x8f4 0x2 0x0
-#define MX6QDL_PAD_GPIO_1__USB_OTG_ID               0x224 0x5f4 0x000 0x3 0x0
+#define MX6QDL_PAD_GPIO_1__USB_OTG_ID               0x224 0x5f4 0x004 0x3 0xff0d0101
 #define MX6QDL_PAD_GPIO_1__PWM2_OUT                 0x224 0x5f4 0x000 0x4 0x0
 #define MX6QDL_PAD_GPIO_1__GPIO1_IO01               0x224 0x5f4 0x000 0x5 0x0
 #define MX6QDL_PAD_GPIO_1__SD1_CD_B                 0x224 0x5f4 0x000 0x6 0x0
index 3530280f5150e43d826987ab225e4b53930b33aa..f004913f7d80a1f2c0df7b229f7a011b17399818 100644 (file)
        };
 };
 
-&sata {
+&audmux {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_1>;
 };
 
 &ecspi1 {
        };
 };
 
-&ssi1 {
-       fsl,mode = "i2s-slave";
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet_1>;
+       phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio3 23 0>;
        status = "okay";
 };
 
+&i2c1 {
+       status = "okay";
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1_1>;
+
+       codec: sgtl5000@0a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               clocks = <&clks 201>;
+               VDDA-supply = <&reg_2p5v>;
+               VDDIO-supply = <&reg_3p3v>;
+       };
+};
+
 &iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog>;
                                MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x80000000
                                MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1f0b0
                                MX6QDL_PAD_GPIO_0__CCM_CLKO1    0x80000000
+                               MX6QDL_PAD_EIM_D23__GPIO3_IO23  0x80000000
                        >;
                };
        };
 };
 
-&usbotg {
-       vbus-supply = <&reg_usb_otg_vbus>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usbotg_1>;
-       disable-over-current;
+&ldb {
+       status = "okay";
+
+       lvds-channel@0 {
+               fsl,data-mapping = "spwg";
+               fsl,data-width = <18>;
+               status = "okay";
+
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: 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>;
+                       };
+               };
+       };
+};
+
+&sata {
+       status = "okay";
+};
+
+&ssi1 {
+       fsl,mode = "i2s-slave";
        status = "okay";
 };
 
+&uart2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_1>;
+};
+
 &usbh1 {
        status = "okay";
 };
 
-&fec {
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_enet_1>;
-       phy-mode = "rgmii";
-       phy-reset-gpios = <&gpio3 23 0>;
+       pinctrl-0 = <&pinctrl_usbotg_1>;
+       disable-over-current;
        status = "okay";
 };
 
        vmmc-supply = <&reg_3p3v>;
        status = "okay";
 };
-
-&audmux {
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_audmux_1>;
-};
-
-&uart2 {
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart2_1>;
-};
-
-&i2c1 {
-       status = "okay";
-       clock-frequency = <100000>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_i2c1_1>;
-
-       codec: sgtl5000@0a {
-               compatible = "fsl,sgtl5000";
-               reg = <0x0a>;
-               clocks = <&clks 201>;
-               VDDA-supply = <&reg_2p5v>;
-               VDDIO-supply = <&reg_3p3v>;
-       };
-};
diff --git a/arch/arm/boot/dts/imx6q-udoo.dts b/arch/arm/boot/dts/imx6q-udoo.dts
new file mode 100644 (file)
index 0000000..6e1ccdc
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * Author: Fabio Estevam <fabio.estevam@freescale.com>
+ *
+ * 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 "imx6q.dtsi"
+
+/ {
+       model = "Udoo i.MX6 Quad Board";
+       compatible = "udoo,imx6q-udoo", "fsl,imx6q";
+
+       memory {
+               reg = <0x10000000 0x40000000>;
+       };
+};
+
+&sata {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_1>;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3_2>;
+       non-removable;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
new file mode 100644 (file)
index 0000000..e9ccfa4
--- /dev/null
@@ -0,0 +1,272 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/ {
+       /* these are used by bootloader for disabling nodes */
+       aliases {
+               can0 = &can1;
+               ethernet0 = &fec;
+               led0 = &led0;
+               led1 = &led1;
+               nand = &gpmi;
+               usb0 = &usbh1;
+               usb1 = &usbotg;
+       };
+
+       chosen {
+               bootargs = "console=ttymxc1,115200";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led0: user1 {
+                       label = "user1";
+                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led1: user2 {
+                       label = "user2";
+                       gpios = <&gpio4 7 0>; /* 103 -> MX6_PANLEDR */
+                       default-state = "off";
+               };
+       };
+
+       memory {
+               reg = <0x10000000 0x20000000>;
+       };
+
+       pps {
+               compatible = "pps-gpio";
+               gpios = <&gpio1 26 0>;
+               status = "okay";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_3p3v: 3p3v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P3V";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_5p0v: 5p0v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "5P0V";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+               };
+
+               reg_usb_otg_vbus: usb_otg_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_otg_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio3 22 0>;
+                       enable-active-high;
+               };
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet_1>;
+       phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio1 30 0>;
+       status = "okay";
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand_2>;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1_1>;
+       status = "okay";
+
+       eeprom1: eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       eeprom2: eeprom@51 {
+               compatible = "atmel,24c02";
+               reg = <0x51>;
+               pagesize = <16>;
+       };
+
+       eeprom3: eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <16>;
+       };
+
+       eeprom4: eeprom@53 {
+               compatible = "atmel,24c02";
+               reg = <0x53>;
+               pagesize = <16>;
+       };
+
+       gpio: pca9555@23 {
+               compatible = "nxp,pca9555";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       hwmon: gsc@29 {
+               compatible = "gw,gsp";
+               reg = <0x29>;
+       };
+
+       rtc: ds1672@68 {
+               compatible = "dallas,ds1672";
+               reg = <0x68>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2_2>;
+       status = "okay";
+
+       pmic: ltc3676@3c {
+               compatible = "ltc,ltc3676";
+               reg = <0x3c>;
+
+               regulators {
+                       sw1_reg: ltc3676__sw1 {
+                               regulator-min-microvolt = <1175000>;
+                               regulator-max-microvolt = <1175000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw2_reg: ltc3676__sw2 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw3_reg: ltc3676__sw3 {
+                               regulator-min-microvolt = <1175000>;
+                               regulator-max-microvolt = <1175000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw4_reg: ltc3676__sw4 {
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo2_reg: ltc3676__ldo2 {
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <2500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4_reg: ltc3676__ldo4 {
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                       };
+               };
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3_2>;
+       status = "okay";
+
+       videoin: adv7180@20 {
+               compatible = "adi,adv7180";
+               reg = <0x20>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       hog {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_A19__GPIO2_IO19   0x80000000 /* MEZZ_DIO0 */
+                               MX6QDL_PAD_EIM_A20__GPIO2_IO18   0x80000000 /* MEZZ_DIO1 */
+                               MX6QDL_PAD_EIM_D22__GPIO3_IO22   0x80000000 /* OTG_PWR_EN */
+                               MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x80000000 /* GPS_PPS */
+                               MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x80000000 /* PHY Reset */
+                               MX6QDL_PAD_GPIO_0__GPIO1_IO00    0x80000000 /* PCIE_RST# */
+                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06  0x80000000 /* user1 led */
+                               MX6QDL_PAD_KEY_ROW0__GPIO4_IO07  0x80000000 /* user2 led */
+                        >;
+               };
+       };
+};
+
+&pcie {
+       reset-gpio = <&gpio1 0 0>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_2>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_3>;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3_3>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5_1>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg_1>;
+       disable-over-current;
+       status = "okay";
+};
+
+&usbh1 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
new file mode 100644 (file)
index 0000000..164a944
--- /dev/null
@@ -0,0 +1,373 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/ {
+       /* these are used by bootloader for disabling nodes */
+       aliases {
+               ethernet0 = &fec;
+               led0 = &led0;
+               led1 = &led1;
+               led2 = &led2;
+               nand = &gpmi;
+               ssi0 = &ssi1;
+               usb0 = &usbh1;
+               usb1 = &usbotg;
+               usdhc2 = &usdhc3;
+       };
+
+       chosen {
+               bootargs = "console=ttymxc1,115200";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led0: user1 {
+                       label = "user1";
+                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led1: user2 {
+                       label = "user2";
+                       gpios = <&gpio4 7 0>; /* 103 -> MX6_PANLEDR */
+                       default-state = "off";
+               };
+
+               led2: user3 {
+                       label = "user3";
+                       gpios = <&gpio4 15 1>; /* 111 - MX6_LOCLED# */
+                       default-state = "off";
+               };
+       };
+
+       memory {
+               reg = <0x10000000 0x20000000>;
+       };
+
+       pps {
+               compatible = "pps-gpio";
+               gpios = <&gpio1 26 0>;
+               status = "okay";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_1p0v: 1p0v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "1P0V";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-always-on;
+               };
+
+               /* remove this fixed regulator once ltc3676__sw2 driver available */
+               reg_1p8v: 1p8v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "1P8V";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               reg_3p3v: 3p3v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P3V";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_5p0v: 5p0v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "5P0V";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+               };
+
+               reg_usb_otg_vbus: usb_otg_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_otg_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio3 22 0>;
+                       enable-active-high;
+               };
+       };
+
+       sound {
+               compatible = "fsl,imx6q-sabrelite-sgtl5000",
+                            "fsl,imx-audio-sgtl5000";
+               model = "imx6q-sabrelite-sgtl5000";
+               ssi-controller = <&ssi1>;
+               audio-codec = <&codec>;
+               audio-routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HP_OUT";
+               mux-int-port = <1>;
+               mux-ext-port = <4>;
+       };
+};
+
+&audmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_1>;
+       status = "okay";
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet_1>;
+       phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio1 30 0>;
+       status = "okay";
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand_2>;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1_1>;
+       status = "okay";
+
+       eeprom1: eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       eeprom2: eeprom@51 {
+               compatible = "atmel,24c02";
+               reg = <0x51>;
+               pagesize = <16>;
+       };
+
+       eeprom3: eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <16>;
+       };
+
+       eeprom4: eeprom@53 {
+               compatible = "atmel,24c02";
+               reg = <0x53>;
+               pagesize = <16>;
+       };
+
+       gpio: pca9555@23 {
+               compatible = "nxp,pca9555";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       hwmon: gsc@29 {
+               compatible = "gw,gsp";
+               reg = <0x29>;
+       };
+
+       rtc: ds1672@68 {
+               compatible = "dallas,ds1672";
+               reg = <0x68>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2_2>;
+       status = "okay";
+
+       pciswitch: pex8609@3f {
+               compatible = "plx,pex8609";
+               reg = <0x3f>;
+       };
+
+       pmic: ltc3676@3c {
+               compatible = "ltc,ltc3676";
+               reg = <0x3c>;
+
+               regulators {
+                       sw1_reg: ltc3676__sw1 {
+                               regulator-min-microvolt = <1175000>;
+                               regulator-max-microvolt = <1175000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw2_reg: ltc3676__sw2 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw3_reg: ltc3676__sw3 {
+                               regulator-min-microvolt = <1175000>;
+                               regulator-max-microvolt = <1175000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw4_reg: ltc3676__sw4 {
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo2_reg: ltc3676__ldo2 {
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <2500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo3_reg: ltc3676__ldo3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4_reg: ltc3676__ldo4 {
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                       };
+               };
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3_2>;
+       status = "okay";
+
+       accelerometer: fxos8700@1e {
+               compatible = "fsl,fxos8700";
+               reg = <0x13>;
+       };
+
+       codec: sgtl5000@0a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               clocks = <&clks 169>;
+               VDDA-supply = <&reg_1p8v>;
+               VDDIO-supply = <&reg_3p3v>;
+       };
+
+       touchscreen: egalax_ts@04 {
+               compatible = "eeti,egalax_ts";
+               reg = <0x04>;
+               interrupt-parent = <&gpio7>;
+               interrupts = <12 2>; /* gpio7_12 active low */
+               wakeup-gpios = <&gpio7 12 0>;
+       };
+
+       videoin: adv7180@20 {
+               compatible = "adi,adv7180";
+               reg = <0x20>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       hog {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_A19__GPIO2_IO19   0x80000000 /* MEZZ_DIO0 */
+                               MX6QDL_PAD_EIM_A20__GPIO2_IO18   0x80000000 /* MEZZ_DIO1 */
+                               MX6QDL_PAD_EIM_D22__GPIO3_IO22   0x80000000 /* OTG_PWR_EN */
+                               MX6QDL_PAD_EIM_D31__GPIO3_IO31   0x80000000 /* VIDDEC_PDN# */
+                               MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x80000000 /* PHY Reset */
+                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 /* PCIE_RST# */
+                               MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x80000000 /* GPS_PWDN */
+                               MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x80000000 /* GPS_PPS */
+                               MX6QDL_PAD_GPIO_0__CCM_CLKO1     0x000130b0 /* AUD4_MCK */
+                               MX6QDL_PAD_GPIO_2__GPIO1_IO02    0x80000000 /* USB_SEL_PCI */
+                               MX6QDL_PAD_GPIO_17__GPIO7_IO12   0x80000000 /* TOUCH_IRQ# */
+                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06  0x80000000 /* user1 led */
+                               MX6QDL_PAD_KEY_ROW0__GPIO4_IO07  0x80000000 /* user2 led */
+                               MX6QDL_PAD_KEY_ROW4__GPIO4_IO15  0x80000000 /* user3 led */
+                               MX6QDL_PAD_SD2_CMD__GPIO1_IO11   0x80000000 /* LVDS_TCH# */
+                               MX6QDL_PAD_SD3_DAT5__GPIO7_IO00  0x80000000 /* SD3_CD# */
+                               MX6QDL_PAD_SD4_DAT3__GPIO2_IO11  0x80000000 /* UART2_EN# */
+                        >;
+               };
+       };
+};
+
+&ldb {
+       status = "okay";
+       lvds-channel@0 {
+               crtcs = <&ipu1 0>, <&ipu1 1>;
+       };
+};
+
+&pcie {
+       reset-gpio = <&gpio1 29 0>;
+       status = "okay";
+};
+
+&ssi1 {
+       fsl,mode = "i2s-slave";
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_2>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_3>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5_1>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg_1>;
+       disable-over-current;
+       status = "okay";
+};
+
+&usbh1 {
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3_2>;
+       cd-gpios = <&gpio7 0 0>;
+       vmmc-supply = <&reg_3p3v>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
new file mode 100644 (file)
index 0000000..506338d
--- /dev/null
@@ -0,0 +1,429 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/ {
+       /* these are used by bootloader for disabling nodes */
+       aliases {
+               can0 = &can1;
+               ethernet0 = &fec;
+               ethernet1 = &eth1;
+               led0 = &led0;
+               led1 = &led1;
+               led2 = &led2;
+               nand = &gpmi;
+               sky2 = &eth1;
+               ssi0 = &ssi1;
+               usb0 = &usbh1;
+               usb1 = &usbotg;
+               usdhc2 = &usdhc3;
+       };
+
+       chosen {
+               bootargs = "console=ttymxc1,115200";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led0: user1 {
+                       label = "user1";
+                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led1: user2 {
+                       label = "user2";
+                       gpios = <&gpio4 7 0>; /* 103 -> MX6_PANLEDR */
+                       default-state = "off";
+               };
+
+               led2: user3 {
+                       label = "user3";
+                       gpios = <&gpio4 15 1>; /* 111 -> MX6_LOCLED# */
+                       default-state = "off";
+               };
+       };
+
+       memory {
+               reg = <0x10000000 0x40000000>;
+       };
+
+       pps {
+               compatible = "pps-gpio";
+               gpios = <&gpio1 26 0>;
+               status = "okay";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_1p0v: 1p0v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "1P0V";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-always-on;
+               };
+
+               /* remove when pmic 1p8 regulator available */
+               reg_1p8v: 1p8v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "1P8V";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               reg_3p3v: 3p3v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P3V";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_usb_h1_vbus: usb_h1_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_h1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+               };
+
+               reg_usb_otg_vbus: usb_otg_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_otg_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio3 22 0>;
+                       enable-active-high;
+               };
+       };
+
+       sound {
+               compatible = "fsl,imx6q-sabrelite-sgtl5000",
+                            "fsl,imx-audio-sgtl5000";
+               model = "imx6q-sabrelite-sgtl5000";
+               ssi-controller = <&ssi1>;
+               audio-codec = <&codec>;
+               audio-routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HP_OUT";
+               mux-int-port = <1>;
+               mux-ext-port = <4>;
+       };
+};
+
+&audmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_1>;
+       status = "okay";
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1_1>;
+       status = "okay";
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet_1>;
+       phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio1 30 0>;
+       status = "okay";
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand_2>;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1_1>;
+       status = "okay";
+
+       eeprom1: eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       eeprom2: eeprom@51 {
+               compatible = "atmel,24c02";
+               reg = <0x51>;
+               pagesize = <16>;
+       };
+
+       eeprom3: eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <16>;
+       };
+
+       eeprom4: eeprom@53 {
+               compatible = "atmel,24c02";
+               reg = <0x53>;
+               pagesize = <16>;
+       };
+
+       gpio: pca9555@23 {
+               compatible = "nxp,pca9555";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       hwmon: gsc@29 {
+               compatible = "gw,gsp";
+               reg = <0x29>;
+       };
+
+       rtc: ds1672@68 {
+               compatible = "dallas,ds1672";
+               reg = <0x68>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2_2>;
+       status = "okay";
+
+       pciclkgen: si53156@6b {
+               compatible = "sil,si53156";
+               reg = <0x6b>;
+       };
+
+       pciswitch: pex8606@3f {
+               compatible = "plx,pex8606";
+               reg = <0x3f>;
+       };
+
+       pmic: ltc3676@3c {
+               compatible = "ltc,ltc3676";
+               reg = <0x3c>;
+
+               regulators {
+                       /* VDD_SOC */
+                       sw1_reg: ltc3676__sw1 {
+                               regulator-min-microvolt = <1175000>;
+                               regulator-max-microvolt = <1175000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8 */
+                       sw2_reg: ltc3676__sw2 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_ARM */
+                       sw3_reg: ltc3676__sw3 {
+                               regulator-min-microvolt = <1175000>;
+                               regulator-max-microvolt = <1175000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_DDR */
+                       sw4_reg: ltc3676__sw4 {
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_2P5 */
+                       ldo2_reg: ltc3676__ldo2 {
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <2500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_1P8 */
+                       ldo3_reg: ltc3676__ldo3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_HIGH */
+                       ldo4_reg: ltc3676__ldo4 {
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                       };
+               };
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3_2>;
+       status = "okay";
+
+       accelerometer: fxos8700@1e {
+               compatible = "fsl,fxos8700";
+               reg = <0x1e>;
+       };
+
+       codec: sgtl5000@0a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               clocks = <&clks 201>;
+               VDDA-supply = <&reg_1p8v>;
+               VDDIO-supply = <&reg_3p3v>;
+       };
+
+       hdmiin: adv7611@4c {
+               compatible = "adi,adv7611";
+               reg = <0x4c>;
+       };
+
+       touchscreen: egalax_ts@04 {
+               compatible = "eeti,egalax_ts";
+               reg = <0x04>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <11 2>; /* gpio1_11 active low */
+               wakeup-gpios = <&gpio1 11 0>;
+       };
+
+       videoout: adv7393@2a {
+               compatible = "adi,adv7393";
+               reg = <0x2a>;
+       };
+
+       videoin: adv7180@20 {
+               compatible = "adi,adv7180";
+               reg = <0x20>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       hog {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_A19__GPIO2_IO19    0x80000000 /* PCIE6EXP_DIO0 */
+                               MX6QDL_PAD_EIM_A20__GPIO2_IO18    0x80000000 /* PCIE6EXP_DIO1 */
+                               MX6QDL_PAD_EIM_D22__GPIO3_IO22    0x80000000 /* OTG_PWR_EN */
+                               MX6QDL_PAD_ENET_RXD0__GPIO1_IO27  0x80000000 /* GPS_SHDN */
+                               MX6QDL_PAD_ENET_RXD1__GPIO1_IO26  0x80000000 /* GPS_PPS */
+                               MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x80000000 /* PCIE IRQ */
+                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29  0x80000000 /* PCIE RST */
+                               MX6QDL_PAD_GPIO_0__CCM_CLKO1      0x000130b0 /* AUD4_MCK */
+                               MX6QDL_PAD_GPIO_2__GPIO1_IO02     0x80000000 /* CAN_STBY */
+                               MX6QDL_PAD_GPIO_8__GPIO1_IO08     0x80000000 /* PMIC_IRQ# */
+                               MX6QDL_PAD_GPIO_9__GPIO1_IO09     0x80000000 /* HUB_RST# */
+                               MX6QDL_PAD_GPIO_17__GPIO7_IO12    0x80000000 /* PCIE_WDIS# */
+                               MX6QDL_PAD_GPIO_19__GPIO4_IO05    0x80000000 /* ACCEL_IRQ# */
+                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06   0x80000000 /* user1 led */
+                               MX6QDL_PAD_KEY_COL4__GPIO4_IO14   0x80000000 /* USBOTG_OC# */
+                               MX6QDL_PAD_KEY_ROW0__GPIO4_IO07   0x80000000 /* user2 led */
+                               MX6QDL_PAD_KEY_ROW4__GPIO4_IO15   0x80000000 /* user3 led */
+                               MX6QDL_PAD_SD2_CMD__GPIO1_IO11    0x80000000 /* TOUCH_IRQ# */
+                               MX6QDL_PAD_SD3_DAT5__GPIO7_IO00   0x80000000 /* SD3_DET# */
+                        >;
+               };
+       };
+};
+
+&ldb {
+       status = "okay";
+
+       lvds-channel@1 {
+               fsl,data-mapping = "spwg";
+               fsl,data-width = <18>;
+               status = "okay";
+
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: 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>;
+                       };
+               };
+       };
+};
+
+&pcie {
+       reset-gpio = <&gpio1 29 0>;
+       status = "okay";
+
+       eth1: sky2@8 { /* MAC/PHY on bus 8 */
+               compatible = "marvell,sky2";
+       };
+};
+
+&ssi1 {
+       fsl,mode = "i2s-slave";
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_2>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_3>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5_1>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg_1>;
+       disable-over-current;
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_h1_vbus>;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3_2>;
+       cd-gpios = <&gpio7 0 0>;
+       vmmc-supply = <&reg_3p3v>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
new file mode 100644 (file)
index 0000000..2a67aa0
--- /dev/null
@@ -0,0 +1,457 @@
+/*
+ * Copyright 2013 Gateworks Corporation
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/ {
+       /* these are used by bootloader for disabling nodes */
+       aliases {
+               can0 = &can1;
+               ethernet0 = &fec;
+               ethernet1 = &eth1;
+               led0 = &led0;
+               led1 = &led1;
+               led2 = &led2;
+               nand = &gpmi;
+               sky2 = &eth1;
+               ssi0 = &ssi1;
+               usb0 = &usbh1;
+               usb1 = &usbotg;
+               usdhc2 = &usdhc3;
+       };
+
+       chosen {
+               bootargs = "console=ttymxc1,115200";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led0: user1 {
+                       label = "user1";
+                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led1: user2 {
+                       label = "user2";
+                       gpios = <&gpio4 7 0>; /* 103 -> MX6_PANLEDR */
+                       default-state = "off";
+               };
+
+               led2: user3 {
+                       label = "user3";
+                       gpios = <&gpio4 15 1>; /* 111 -> MX6_LOCLED# */
+                       default-state = "off";
+               };
+       };
+
+       memory {
+               reg = <0x10000000 0x40000000>;
+       };
+
+       pps {
+               compatible = "pps-gpio";
+               gpios = <&gpio1 26 0>;
+               status = "okay";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_1p0v: 1p0v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "1P0V";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-always-on;
+               };
+
+               reg_3p3v: 3p3v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P3V";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               reg_usb_h1_vbus: usb_h1_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_h1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+               };
+
+               reg_usb_otg_vbus: usb_otg_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_otg_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio3 22 0>;
+                       enable-active-high;
+               };
+       };
+
+       sound {
+               compatible = "fsl,imx6q-sabrelite-sgtl5000",
+                            "fsl,imx-audio-sgtl5000";
+               model = "imx6q-sabrelite-sgtl5000";
+               ssi-controller = <&ssi1>;
+               audio-codec = <&codec>;
+               audio-routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HP_OUT";
+               mux-int-port = <1>;
+               mux-ext-port = <4>;
+       };
+};
+
+&audmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_1>; /* AUD4<->sgtl5000 */
+       status = "okay";
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1_1>;
+       status = "okay";
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet_1>;
+       phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio1 30 0>;
+       status = "okay";
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand_2>;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1_1>;
+       status = "okay";
+
+       eeprom1: eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       eeprom2: eeprom@51 {
+               compatible = "atmel,24c02";
+               reg = <0x51>;
+               pagesize = <16>;
+       };
+
+       eeprom3: eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <16>;
+       };
+
+       eeprom4: eeprom@53 {
+               compatible = "atmel,24c02";
+               reg = <0x53>;
+               pagesize = <16>;
+       };
+
+       gpio: pca9555@23 {
+               compatible = "nxp,pca9555";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       hwmon: gsc@29 {
+               compatible = "gw,gsp";
+               reg = <0x29>;
+       };
+
+       rtc: ds1672@68 {
+               compatible = "dallas,ds1672";
+               reg = <0x68>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2_2>;
+       status = "okay";
+
+       pmic: pfuze100@08 {
+               compatible = "fsl,pfuze100";
+               reg = <0x08>;
+
+               regulators {
+                       sw1a_reg: sw1ab {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw1c_reg: sw1c {
+                               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 = <3950000>;
+                               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;
+                       };
+
+                       sw4_reg: sw4 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       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>;
+                       };
+
+                       vgen2_reg: vgen2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       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;
+                       };
+               };
+       };
+
+       pciswitch: pex8609@3f {
+               compatible = "plx,pex8609";
+               reg = <0x3f>;
+       };
+
+       pciclkgen: si52147@6b {
+               compatible = "sil,si52147";
+               reg = <0x6b>;
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3_2>;
+       status = "okay";
+
+       accelerometer: fxos8700@1e {
+               compatible = "fsl,fxos8700";
+               reg = <0x1e>;
+       };
+
+       codec: sgtl5000@0a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               clocks = <&clks 201>;
+               VDDA-supply = <&sw4_reg>;
+               VDDIO-supply = <&reg_3p3v>;
+       };
+
+       hdmiin: adv7611@4c {
+               compatible = "adi,adv7611";
+               reg = <0x4c>;
+       };
+
+       touchscreen: egalax_ts@04 {
+               compatible = "eeti,egalax_ts";
+               reg = <0x04>;
+               interrupt-parent = <&gpio7>;
+               interrupts = <12 2>; /* gpio7_12 active low */
+               wakeup-gpios = <&gpio7 12 0>;
+       };
+
+       videoout: adv7393@2a {
+               compatible = "adi,adv7393";
+               reg = <0x2a>;
+       };
+
+       videoin: adv7180@20 {
+               compatible = "adi,adv7180";
+               reg = <0x20>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       hog {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D22__GPIO3_IO22    0x80000000 /* OTG_PWR_EN */
+                               MX6QDL_PAD_EIM_D19__GPIO3_IO19    0x80000000 /* SPINOR_CS0# */
+                               MX6QDL_PAD_ENET_RXD1__GPIO1_IO26  0x80000000 /* GPS_PPS */
+                               MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x80000000 /* PCIE IRQ */
+                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29  0x80000000 /* PCIE RST */
+                               MX6QDL_PAD_GPIO_0__CCM_CLKO1      0x000130b0 /* AUD4_MCK */
+                               MX6QDL_PAD_GPIO_2__GPIO1_IO02     0x80000000 /* CAN_STBY */
+                               MX6QDL_PAD_GPIO_17__GPIO7_IO12    0x80000000 /* TOUCH_IRQ# */
+                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06   0x80000000 /* user1 led */
+                               MX6QDL_PAD_KEY_ROW0__GPIO4_IO07   0x80000000 /* user2 led */
+                               MX6QDL_PAD_KEY_ROW4__GPIO4_IO15   0x80000000 /* user3 led */
+                               MX6QDL_PAD_SD1_DAT0__GPIO1_IO16   0x80000000 /* USBHUB_RST# */
+                               MX6QDL_PAD_SD1_DAT3__GPIO1_IO21   0x80000000 /* MIPI_DIO */
+                        >;
+               };
+       };
+};
+
+&ldb {
+       status = "okay";
+
+       lvds-channel@1 {
+               fsl,data-mapping = "spwg";
+               fsl,data-width = <18>;
+               status = "okay";
+
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: 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>;
+                       };
+               };
+       };
+};
+
+&pcie {
+       reset-gpio = <&gpio1 29 0>;
+       status = "okay";
+
+       eth1: sky2@8 { /* MAC/PHY on bus 8 */
+               compatible = "marvell,sky2";
+       };
+};
+
+&ssi1 {
+       fsl,mode = "i2s-slave";
+       status = "okay";
+};
+
+&ssi2 {
+       fsl,mode = "i2s-slave";
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_2>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_3>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5_1>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg_1>;
+       disable-over-current;
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_h1_vbus>;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3_2>;
+       cd-gpios = <&gpio7 0 0>;
+       vmmc-supply = <&reg_3p3v>;
+       status = "okay";
+};
index 1cbbc5160d27d3f9065a61bbe1d7e77eb81d6605..ff6f1e8f2dd9bfa54a6387998421f1ac8877c841 100644 (file)
@@ -54,6 +54,7 @@
                        fsl,pins = <
                                MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000
                                MX6QDL_PAD_SD2_DAT2__GPIO1_IO13  0x80000000
+                               MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x17059
                        >;
                };
        };
 };
 
 &usdhc3 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc3_1>;
+       pinctrl-1 = <&pinctrl_usdhc3_1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_1_200mhz>;
        cd-gpios = <&gpio6 15 0>;
        wp-gpios = <&gpio1 13 0>;
        status = "okay";
index 39eafc222a2ece4f07184b26b1a96e85b23eb871..e75e11b36dffec5ea9e695c01d8f66ac35b83dee 100644 (file)
                mux-int-port = <2>;
                mux-ext-port = <3>;
        };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm1 0 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <7>;
+               status = "okay";
+       };
 };
 
 &audmux {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet_1>;
        phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio1 25 0>;
        status = "okay";
 };
 
                                MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000
                                MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000
                                MX6QDL_PAD_EIM_D22__GPIO3_IO22  0x80000000
+                               MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x80000000
                        >;
                };
        };
        };
 };
 
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm0_1>;
+       status = "okay";
+};
+
 &ssi2 {
        fsl,mode = "i2s-slave";
        status = "okay";
 &usdhc2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc2_1>;
+       bus-width = <8>;
        cd-gpios = <&gpio2 2 0>;
        wp-gpios = <&gpio2 3 0>;
        status = "okay";
 &usdhc3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc3_1>;
+       bus-width = <8>;
        cd-gpios = <&gpio2 0 0>;
        wp-gpios = <&gpio2 1 0>;
        status = "okay";
index a55113e65bcb0a3d9d6345f7129623384ee881b6..35f54792916795dd85d77624289d94ee3ab97811 100644 (file)
                mux-int-port = <1>;
                mux-ext-port = <3>;
        };
+
+       sound-spdif {
+               compatible = "fsl,imx-audio-spdif";
+               model = "imx-spdif";
+               spdif-controller = <&spdif>;
+               spdif-out;
+       };
 };
 
 &audmux {
@@ -81,6 +88,7 @@
                                MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x80000000 /* WL_REG_ON */
                                MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 /* WL_HOST_WAKE */
                                MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x80000000 /* WL_WAKE */
+                               MX6QDL_PAD_EIM_D29__GPIO3_IO29   0x80000000
                        >;
                };
        };
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet_1>;
        phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio3 29 0>;
+       status = "okay";
+};
+
+&spdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spdif_3>;
        status = "okay";
 };
 
        status = "okay";
 };
 
+&usbotg {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg_1>;
+       disable-over-current;
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
 &usdhc1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc1_2>;
index ccd55c2fdb67e3a69402021709275108a96a6f75..226ce75c87a8d24ab0da3e5bcd4c27a980134925 100644 (file)
                        arm,data-latency = <4 2 3>;
                };
 
+               pcie: pcie@0x01000000 {
+                       compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
+                       reg = <0x01ffc000 0x4000>; /* DBI */
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       device_type = "pci";
+                       ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 /* configuration space */
+                                 0x81000000 0 0          0x01f80000 0 0x00010000 /* downstream I/O */
+                                 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
+                       num-lanes = <1>;
+                       interrupts = <0 123 0x04>;
+                       clocks = <&clks 189>, <&clks 187>, <&clks 206>, <&clks 144>;
+                       clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi";
+                       status = "disabled";
+               };
+
                pmu {
                        compatible = "arm,cortex-a9-pmu";
                        interrupts = <0 94 0x04>;
                                ranges;
 
                                spdif: spdif@02004000 {
+                                       compatible = "fsl,imx35-spdif";
                                        reg = <0x02004000 0x4000>;
                                        interrupts = <0 52 0x04>;
+                                       dmas = <&sdma 14 18 0>,
+                                              <&sdma 15 18 0>;
+                                       dma-names = "rx", "tx";
+                                       clocks = <&clks 197>, <&clks 3>,
+                                                <&clks 197>, <&clks 107>,
+                                                <&clks 0>,   <&clks 118>,
+                                                <&clks 62>,  <&clks 139>,
+                                                <&clks 0>;
+                                       clock-names = "core",  "rxtx0",
+                                                     "rxtx1", "rxtx2",
+                                                     "rxtx3", "rxtx4",
+                                                     "rxtx5", "rxtx6",
+                                                     "rxtx7";
+                                       status = "disabled";
                                };
 
                                ecspi1: ecspi@02008000 {
                                interrupts = <0 110 0x04>;
                                clocks = <&clks 108>, <&clks 109>;
                                clock-names = "ipg", "per";
+                               status = "disabled";
                        };
 
                        can2: flexcan@02094000 {
                                interrupts = <0 111 0x04>;
                                clocks = <&clks 110>, <&clks 111>;
                                clock-names = "ipg", "per";
+                               status = "disabled";
                        };
 
                        gpt: gpt@02098000 {
                                                        MX6QDL_PAD_DISP0_DAT19__AUD5_RXD  0x80000000
                                                >;
                                        };
+
+                                       pinctrl_audmux_4: audmux-4 {
+                                               fsl,pins = <
+                                                       MX6QDL_PAD_EIM_D24__AUD5_RXFS     0x80000000
+                                                       MX6QDL_PAD_EIM_D25__AUD5_RXC      0x80000000
+                                                       MX6QDL_PAD_DISP0_DAT19__AUD5_RXD  0x80000000
+                                               >;
+                                       };
                                };
 
                                ecspi1 {
                                                        MX6QDL_PAD_SD4_DAT0__NAND_DQS      0x00b1
                                                >;
                                        };
+
+                                       /* No Strobe */
+                                       pinctrl_gpmi_nand_2: gpmi-nand-2 {
+                                               fsl,pins = <
+                                                       MX6QDL_PAD_NANDF_CLE__NAND_CLE     0xb0b1
+                                                       MX6QDL_PAD_NANDF_ALE__NAND_ALE     0xb0b1
+                                                       MX6QDL_PAD_NANDF_WP_B__NAND_WP_B   0xb0b1
+                                                       MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
+                                                       MX6QDL_PAD_NANDF_CS0__NAND_CE0_B   0xb0b1
+                                                       MX6QDL_PAD_NANDF_CS1__NAND_CE1_B   0xb0b1
+                                                       MX6QDL_PAD_SD4_CMD__NAND_RE_B      0xb0b1
+                                                       MX6QDL_PAD_SD4_CLK__NAND_WE_B      0xb0b1
+                                                       MX6QDL_PAD_NANDF_D0__NAND_DATA00   0xb0b1
+                                                       MX6QDL_PAD_NANDF_D1__NAND_DATA01   0xb0b1
+                                                       MX6QDL_PAD_NANDF_D2__NAND_DATA02   0xb0b1
+                                                       MX6QDL_PAD_NANDF_D3__NAND_DATA03   0xb0b1
+                                                       MX6QDL_PAD_NANDF_D4__NAND_DATA04   0xb0b1
+                                                       MX6QDL_PAD_NANDF_D5__NAND_DATA05   0xb0b1
+                                                       MX6QDL_PAD_NANDF_D6__NAND_DATA06   0xb0b1
+                                                       MX6QDL_PAD_NANDF_D7__NAND_DATA07   0xb0b1
+                                               >;
+                                       };
                                };
 
                                hdmi_hdcp {
                                                        MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0
                                                >;
                                        };
+
+                                       pinctrl_spdif_3: spdifgrp-3 {
+                                               fsl,pins = <
+                                                       MX6QDL_PAD_ENET_RXD0__SPDIF_OUT 0x1b0b0
+                                               >;
+                                       };
                                };
 
                                uart1 {
                                                        MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
                                                >;
                                        };
+
+                                       pinctrl_uart1_2: uart1grp-2 {
+                                               fsl,pins = <
+                                                       MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
+                                                       MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
+                                               >;
+                                       };
                                };
 
                                uart2 {
                                                        MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x1b0b1
                                                >;
                                        };
+
+                                       pinctrl_uart2_3: uart2grp-3 {
+                                               fsl,pins = <
+                                                       MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
+                                                       MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
+                                               >;
+                                       };
                                };
 
                                uart3 {
                                                        MX6QDL_PAD_EIM_EB3__UART3_RTS_B   0x1b0b1
                                                >;
                                        };
+
+                                       pinctrl_uart3_3: uart3grp-3 {
+                                               fsl,pins = <
+                                                       MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
+                                                       MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
+                                               >;
+                                       };
                                };
 
                                uart4 {
                                        };
                                };
 
+                               uart5 {
+                                       pinctrl_uart5_1: uart5grp-1 {
+                                               fsl,pins = <
+                                                       MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
+                                                       MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
+                                               >;
+                                       };
+                               };
+
                                usbotg {
                                        pinctrl_usbotg_1: usbotggrp-1 {
                                                fsl,pins = <
                                                >;
                                        };
 
+                                       pinctrl_usdhc3_1_100mhz: usdhc3grp-1-100mhz { /* 100Mhz */
+                                               fsl,pins = <
+                                                       MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
+                                                       MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9
+                                                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
+                                                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
+                                                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
+                                                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
+                                                       MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170b9
+                                                       MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170b9
+                                                       MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170b9
+                                                       MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170b9
+                                               >;
+                                       };
+
+                                       pinctrl_usdhc3_1_200mhz: usdhc3grp-1-200mhz { /* 200Mhz */
+                                               fsl,pins = <
+                                                       MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
+                                                       MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
+                                                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
+                                                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
+                                                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
+                                                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
+                                                       MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170f9
+                                                       MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170f9
+                                                       MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170f9
+                                                       MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170f9
+                                               >;
+                                       };
+
                                        pinctrl_usdhc3_2: usdhc3grp-2 {
                                                fsl,pins = <
                                                        MX6QDL_PAD_SD3_CMD__SD3_CMD    0x17059
index 2886a590823dc440a9f0ba8a5d72c8efe31916d4..cc68e19c51631666e8241fbc1d4965a18605ca28 100644 (file)
        memory {
                reg = <0x80000000 0x40000000>;
        };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_usb_otg1_vbus: usb_otg1_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_otg1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio4 0 0>;
+                       enable-active-high;
+               };
+
+               reg_usb_otg2_vbus: usb_otg2_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb_otg2_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio4 2 0>;
+                       enable-active-high;
+               };
+       };
+};
+
+&ecspi1 {
+       fsl,spi-num-chipselects = <1>;
+       cs-gpios = <&gpio4 11 0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1_1>;
+       status = "okay";
+
+       flash: m25p80@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p32";
+               spi-max-frequency = <20000000>;
+               reg = <0>;
+       };
 };
 
 &fec {
@@ -38,6 +76,8 @@
                                MX6SL_PAD_SD2_DAT7__GPIO5_IO00    0x17059
                                MX6SL_PAD_SD2_DAT6__GPIO4_IO29    0x17059
                                MX6SL_PAD_REF_CLK_32K__GPIO3_IO22 0x17059
+                               MX6SL_PAD_KEY_COL4__GPIO4_IO00  0x80000000
+                               MX6SL_PAD_KEY_COL5__GPIO4_IO02  0x80000000
                        >;
                };
        };
        status = "okay";
 };
 
-&usdhc1 {
+&usbotg1 {
+       vbus-supply = <&reg_usb_otg1_vbus>;
        pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg1_1>;
+       disable-over-current;
+       status = "okay";
+};
+
+&usbotg2 {
+       vbus-supply = <&reg_usb_otg2_vbus>;
+       dr_mode = "host";
+       disable-over-current;
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc1_1>;
+       pinctrl-1 = <&pinctrl_usdhc1_1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_1_200mhz>;
        bus-width = <8>;
        cd-gpios = <&gpio4 7 0>;
        wp-gpios = <&gpio4 6 0>;
 };
 
 &usdhc2 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc2_1>;
+       pinctrl-1 = <&pinctrl_usdhc2_1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc2_1_200mhz>;
        cd-gpios = <&gpio5 0 0>;
        wp-gpios = <&gpio4 29 0>;
        status = "okay";
 };
 
 &usdhc3 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc3_1>;
+       pinctrl-1 = <&pinctrl_usdhc3_1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_1_200mhz>;
        cd-gpios = <&gpio3 22 0>;
        status = "okay";
 };
index c46651e4d966769948be53636b6e1653005cda13..28558f1aaf2da8e67cb6b191f2d11e7964518b59 100644 (file)
 
 / {
        aliases {
-               serial0 = &uart1;
-               serial1 = &uart2;
-               serial2 = &uart3;
-               serial3 = &uart4;
-               serial4 = &uart5;
                gpio0 = &gpio1;
                gpio1 = &gpio2;
                gpio2 = &gpio3;
                gpio3 = &gpio4;
                gpio4 = &gpio5;
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart3;
+               serial3 = &uart4;
+               serial4 = &uart5;
+               spi0 = &ecspi1;
+               spi1 = &ecspi2;
+               spi2 = &ecspi3;
+               spi3 = &ecspi4;
        };
 
        cpus {
                        };
 
                        anatop: anatop@020c8000 {
-                               compatible = "fsl,imx6sl-anatop", "syscon", "simple-bus";
+                               compatible = "fsl,imx6sl-anatop",
+                                            "fsl,imx6q-anatop",
+                                            "syscon", "simple-bus";
                                reg = <0x020c8000 0x1000>;
                                interrupts = <0 49 0x04 0 54 0x04 0 127 0x04>;
 
                                interrupts = <0 89 0x04>;
                        };
 
+                       gpr: iomuxc-gpr@020e0000 {
+                               compatible = "fsl,imx6sl-iomuxc-gpr",
+                                            "fsl,imx6q-iomuxc-gpr", "syscon";
+                               reg = <0x020e0000 0x38>;
+                       };
+
                        iomuxc: iomuxc@020e0000 {
                                compatible = "fsl,imx6sl-iomuxc";
                                reg = <0x020e0000 0x4000>;
 
+                               ecspi1 {
+                                       pinctrl_ecspi1_1: ecspi1grp-1 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_ECSPI1_MISO__ECSPI1_MISO 0x100b1
+                                                       MX6SL_PAD_ECSPI1_MOSI__ECSPI1_MOSI 0x100b1
+                                                       MX6SL_PAD_ECSPI1_SCLK__ECSPI1_SCLK 0x100b1
+                                               >;
+                                       };
+                               };
+
                                fec {
                                        pinctrl_fec_1: fecgrp-1 {
                                                fsl,pins = <
                                        };
                                };
 
+                               usbotg1 {
+                                       pinctrl_usbotg1_1: usbotg1grp-1 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_EPDC_PWRCOM__USB_OTG1_ID 0x17059
+                                               >;
+                                       };
+
+                                       pinctrl_usbotg1_2: usbotg1grp-2 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_FEC_RXD0__USB_OTG1_ID 0x17059
+                                               >;
+                                       };
+
+                                       pinctrl_usbotg1_3: usbotg1grp-3 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_LCD_DAT1__USB_OTG1_ID 0x17059
+                                               >;
+                                       };
+
+                                       pinctrl_usbotg1_4: usbotg1grp-4 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_REF_CLK_32K__USB_OTG1_ID 0x17059
+                                               >;
+                                       };
+
+                                       pinctrl_usbotg1_5: usbotg1grp-5 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD3_DAT0__USB_OTG1_ID 0x17059
+                                               >;
+                                       };
+                               };
+
+                               usbotg2 {
+                                       pinctrl_usbotg2_1: usbotg2grp-1 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_ECSPI1_SCLK__USB_OTG2_OC 0x17059
+                                               >;
+                                       };
+
+                                       pinctrl_usbotg2_2: usbotg2grp-2 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_ECSPI2_SCLK__USB_OTG2_OC 0x17059
+                                               >;
+                                       };
+
+                                       pinctrl_usbotg2_3: usbotg2grp-3 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_KEY_ROW5__USB_OTG2_OC 0x17059
+                                               >;
+                                       };
+
+                                       pinctrl_usbotg2_4: usbotg2grp-4 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD3_DAT2__USB_OTG2_OC 0x17059
+                                               >;
+                                       };
+                               };
+
                                usdhc1 {
                                        pinctrl_usdhc1_1: usdhc1grp-1 {
                                                fsl,pins = <
                                                        MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x17059
                                                >;
                                        };
+
+                                       pinctrl_usdhc1_1_100mhz: usdhc1grp-1-100mhz {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD1_CMD__SD1_CMD 0x170b9
+                                                       MX6SL_PAD_SD1_CLK__SD1_CLK 0x100b9
+                                                       MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170b9
+                                                       MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170b9
+                                                       MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170b9
+                                                       MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170b9
+                                                       MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170b9
+                                                       MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170b9
+                                                       MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170b9
+                                                       MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170b9
+                                               >;
+                                       };
+
+                                       pinctrl_usdhc1_1_200mhz: usdhc1grp-1-200mhz {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD1_CMD__SD1_CMD 0x170f9
+                                                       MX6SL_PAD_SD1_CLK__SD1_CLK 0x100f9
+                                                       MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170f9
+                                                       MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170f9
+                                                       MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170f9
+                                                       MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170f9
+                                                       MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170f9
+                                                       MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170f9
+                                                       MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170f9
+                                                       MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170f9
+                                               >;
+                                       };
+
+
                                };
 
                                usdhc2 {
                                                        MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x17059
                                                >;
                                        };
+
+                                       pinctrl_usdhc2_1_100mhz: usdhc2grp-1-100mhz {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD2_CMD__SD2_CMD    0x170b9
+                                                       MX6SL_PAD_SD2_CLK__SD2_CLK    0x100b9
+                                                       MX6SL_PAD_SD2_DAT0__SD2_DATA0 0x170b9
+                                                       MX6SL_PAD_SD2_DAT1__SD2_DATA1 0x170b9
+                                                       MX6SL_PAD_SD2_DAT2__SD2_DATA2 0x170b9
+                                                       MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x170b9
+                                               >;
+                                       };
+
+                                       pinctrl_usdhc2_1_200mhz: usdhc2grp-1-200mhz {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD2_CMD__SD2_CMD    0x170f9
+                                                       MX6SL_PAD_SD2_CLK__SD2_CLK    0x100f9
+                                                       MX6SL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
+                                                       MX6SL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
+                                                       MX6SL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
+                                                       MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
+                                               >;
+                                       };
+
                                };
 
                                usdhc3 {
                                                        MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x17059
                                                >;
                                        };
+
+                                       pinctrl_usdhc3_1_100mhz: usdhc3grp-1-100mhz {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD3_CMD__SD3_CMD    0x170b9
+                                                       MX6SL_PAD_SD3_CLK__SD3_CLK    0x100b9
+                                                       MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
+                                                       MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
+                                                       MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
+                                                       MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
+                                               >;
+                                       };
+
+                                       pinctrl_usdhc3_1_200mhz: usdhc3grp-1-200mhz {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD3_CMD__SD3_CMD    0x170f9
+                                                       MX6SL_PAD_SD3_CLK__SD3_CLK    0x100f9
+                                                       MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
+                                                       MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
+                                                       MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
+                                                       MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
+                                               >;
+                                       };
                                };
                        };
 
                                         <&clks IMX6SL_CLK_SDMA>;
                                clock-names = "ipg", "ahb";
                                #dma-cells = <3>;
-                               fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6sl.bin";
+                               /* imx6sl reuses imx6q sdma firmware */
+                               fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
                        };
 
                        pxp: pxp@020f0000 {
                        usbotg2: usb@02184200 {
                                compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
                                reg = <0x02184200 0x200>;
-                               interrupts = <0 40 0x04>;
+                               interrupts = <0 42 0x04>;
                                clocks = <&clks IMX6SL_CLK_USBOH3>;
                                fsl,usbphy = <&usbphy2>;
                                fsl,usbmisc = <&usbmisc 1>;
                        usbh: usb@02184400 {
                                compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
                                reg = <0x02184400 0x200>;
-                               interrupts = <0 42 0x04>;
+                               interrupts = <0 40 0x04>;
                                clocks = <&clks IMX6SL_CLK_USBOH3>;
                                fsl,usbmisc = <&usbmisc 2>;
                                status = "disabled";
diff --git a/arch/arm/boot/dts/mxs-pinfunc.h b/arch/arm/boot/dts/mxs-pinfunc.h
new file mode 100644 (file)
index 0000000..c6da987
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Header providing constants for i.MX28 pinctrl bindings.
+ *
+ * Copyright (C) 2013 Lothar Waßmann <LW@KARO-electronics.de>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#ifndef __DT_BINDINGS_MXS_PINCTRL_H__
+#define __DT_BINDINGS_MXS_PINCTRL_H__
+
+/* fsl,drive-strength property */
+#define MXS_DRIVE_4mA          0
+#define MXS_DRIVE_8mA          1
+#define MXS_DRIVE_12mA         2
+#define MXS_DRIVE_16mA         3
+
+/* fsl,voltage property */
+#define MXS_VOLTAGE_LOW                0
+#define MXS_VOLTAGE_HIGH       1
+
+/* fsl,pull-up property */
+#define MXS_PULL_DISABLE       0
+#define MXS_PULL_ENABLE                1
+
+#endif /* __DT_BINDINGS_MXS_PINCTRL_H__ */
diff --git a/arch/arm/boot/dts/vf610-cosmic.dts b/arch/arm/boot/dts/vf610-cosmic.dts
new file mode 100644 (file)
index 0000000..c42e4f9
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ * Copyright 2013 Linaro Limited
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+/dts-v1/;
+#include "vf610.dtsi"
+
+/ {
+       model = "PHYTEC Cosmic/Cosmic+ Board";
+       compatible = "phytec,vf610-cosmic", "fsl,vf610";
+
+       chosen {
+               bootargs = "console=ttyLP1,115200";
+       };
+
+       memory {
+               reg = <0x80000000 0x10000000>;
+       };
+
+       clocks {
+               enet_ext {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <50000000>;
+               };
+       };
+
+};
+
+&fec1 {
+       phy-mode = "rmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1_1>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_1>;
+       status = "okay";
+};
index 1a58678b93fa613c9de5524026f5777408c7dd05..c8047ca16501324aaed37981ab133c0207d682f7 100644 (file)
 
 };
 
+&dspi0 {
+       bus-num = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_dspi0_1>;
+       status = "okay";
+
+       sflash: at26df081a@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "atmel,at26df081a";
+               spi-max-frequency = <16000000>;
+               spi-cpol;
+               spi-cpha;
+               reg = <0>;
+       };
+};
+
 &fec0 {
        phy-mode = "rmii";
        pinctrl-names = "default";
index 67d929cf98045235a1a39eeeb7c884c2b2bccddc..d31ce1b4a7b08df9dab864e633afe665a2400a59 100644 (file)
                                status = "disabled";
                        };
 
+                       dspi0: dspi0@4002c000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,vf610-dspi";
+                               reg = <0x4002c000 0x1000>;
+                               interrupts = <0 67 0x04>;
+                               clocks = <&clks VF610_CLK_DSPI0>;
+                               clock-names = "dspi";
+                               spi-num-chipselects = <5>;
+                               status = "disabled";
+                       };
+
                        sai2: sai@40031000 {
                                compatible = "fsl,vf610-sai";
                                reg = <0x40031000 0x1000>;
index 5d488c24b13287303bebaa2ddbda22fe9b898f40..8d0c5a018ed72b720f0b235be8dff2ee9bf1e77a 100644 (file)
@@ -132,7 +132,6 @@ CONFIG_TOUCHSCREEN_MC13783=y
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_MMA8450=y
 CONFIG_SERIO_SERPORT=m
-CONFIG_VT_HW_CONSOLE_BINDING=y
 # CONFIG_LEGACY_PTYS is not set
 # CONFIG_DEVKMEM is not set
 CONFIG_SERIAL_IMX=y
@@ -188,22 +187,33 @@ CONFIG_SND_SOC_PHYCORE_AC97=y
 CONFIG_SND_SOC_EUKREA_TLV320=y
 CONFIG_SND_SOC_IMX_WM8962=y
 CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_SPDIF=y
 CONFIG_SND_SOC_IMX_MC13783=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_MXC=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
 CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_PHY=y
 CONFIG_NOP_USB_XCEIV=y
 CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_ETH=m
+CONFIG_USB_MASS_STORAGE=m
 CONFIG_MMC=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_PLTFM=y
 CONFIG_MMC_SDHCI_ESDHC_IMX=y
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_GPIO=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_INTF_DEV_UIE_EMUL=y
 CONFIG_RTC_DRV_MC13XXX=y
@@ -246,7 +256,6 @@ CONFIG_UDF_FS=m
 CONFIG_MSDOS_FS=m
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=m
 CONFIG_JFFS2_FS=y
 CONFIG_UBIFS_FS=y
 CONFIG_NFS_FS=y
@@ -261,6 +270,7 @@ CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_UTF8=y
 CONFIG_MAGIC_SYSRQ=y
 # CONFIG_SCHED_DEBUG is not set
+CONFIG_PROVE_LOCKING=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
 # CONFIG_FTRACE is not set
 # CONFIG_ARM_UNWIND is not set
index 4555c025629a770c6f4b7a8fe2d97208b167fb7f..6150108e15de8526828e07272e44be49d0d938ca 100644 (file)
@@ -76,7 +76,6 @@ CONFIG_INPUT_EVDEV=y
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_TSC2007=m
 # CONFIG_SERIO is not set
-CONFIG_VT_HW_CONSOLE_BINDING=y
 CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
 # CONFIG_LEGACY_PTYS is not set
 # CONFIG_DEVKMEM is not set
@@ -91,7 +90,6 @@ CONFIG_I2C_MXS=y
 CONFIG_SPI=y
 CONFIG_SPI_GPIO=m
 CONFIG_SPI_MXS=y
-CONFIG_DEBUG_GPIO=y
 CONFIG_GPIO_SYSFS=y
 # CONFIG_HWMON is not set
 CONFIG_WATCHDOG=y
@@ -115,9 +113,12 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
 CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_PHY=y
 CONFIG_USB_MXS_PHY=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_ETH=m
+CONFIG_USB_MASS_STORAGE=m
 CONFIG_MMC=y
 CONFIG_MMC_UNSAFE_RESUME=y
 CONFIG_MMC_MXS=y
diff --git a/arch/arm/include/debug/vf.S b/arch/arm/include/debug/vf.S
new file mode 100644 (file)
index 0000000..ba12cc4
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2013 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.
+ *
+ */
+
+       .macro  addruart, rp, rv, tmp
+       ldr     \rp, =0x40028000        @ physical
+       ldr     \rv, =0xfe028000        @ virtual
+       .endm
+
+       .macro  senduart, rd, rx
+       strb    \rd, [\rx, #0x7]        @ Data Register
+       .endm
+
+       .macro  busyuart, rd, rx
+1001:  ldrb    \rd, [\rx, #0x4]        @ Status Register 1
+       tst     \rd, #1 << 6            @ TC
+       beq     1001b                   @ wait until transmit done
+       .endm
+
+       .macro  waituart,rd,rx
+       .endm
index a91909b956017326e02101e528a59e34cde72905..7a6e6f71006893a9c2a54d4a17166762c4647977 100644 (file)
@@ -11,6 +11,7 @@ config ARCH_MXC
        select GENERIC_IRQ_CHIP
        select MIGHT_HAVE_CACHE_L2X0 if ARCH_MULTI_V6_V7
        select MULTI_IRQ_HANDLER
+       select SOC_BUS
        select SPARSE_IRQ
        select USE_OF
        help
@@ -24,7 +25,7 @@ config MXC_IRQ_PRIOR
        help
          Select this if you want to use prioritized IRQ handling.
          This feature prevents higher priority ISR to be interrupted
-         by lower priority IRQ even IRQF_DISABLED flag is not set.
+         by lower priority IRQ.
          This may be useful in embedded applications, where are strong
          requirements for timing.
          Say N here, unless you have a specialized requirement.
@@ -793,6 +794,8 @@ config SOC_IMX6Q
        select HAVE_IMX_SRC
        select HAVE_SMP
        select MFD_SYSCON
+       select MIGHT_HAVE_PCI
+       select PCI_DOMAINS if PCI
        select PINCTRL
        select PINCTRL_IMX6Q
        select PL310_ERRATA_588369 if CACHE_PL310
index 5383c589ad719105d104c077bac14ff73e1933eb..bbe1f5bb799c1a0db3cd403f01767b2a7af4471b 100644 (file)
@@ -102,6 +102,8 @@ obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o
 
 ifeq ($(CONFIG_PM),y)
 obj-$(CONFIG_SOC_IMX6Q) += pm-imx6q.o headsmp.o
+# i.MX6SL reuses pm-imx6q.c
+obj-$(CONFIG_SOC_IMX6SL) += pm-imx6q.o
 endif
 
 # i.MX5 based machines
index ad3b755abb78a949d1b379757a11725a983f2d3b..4a40bbb46183a850af387151c58b73569f55182a 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/mfd/syscon.h>
 #include <linux/regmap.h>
 #include "common.h"
+#include "hardware.h"
 
 #define REG_SET                0x4
 #define REG_CLR                0x8
@@ -26,6 +27,7 @@
 #define ANADIG_USB1_CHRG_DETECT        0x1b0
 #define ANADIG_USB2_CHRG_DETECT        0x210
 #define ANADIG_DIGPROG         0x260
+#define ANADIG_DIGPROG_IMX6SL  0x280
 
 #define BM_ANADIG_REG_2P5_ENABLE_WEAK_LINREG   0x40000
 #define BM_ANADIG_REG_CORE_FET_ODRIVE          0x20000000
@@ -76,21 +78,38 @@ static void imx_anatop_usb_chrg_detect_disable(void)
                BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B);
 }
 
-u32 imx_anatop_get_digprog(void)
+void __init imx_init_revision_from_anatop(void)
 {
        struct device_node *np;
        void __iomem *anatop_base;
-       static u32 digprog;
-
-       if (digprog)
-               return digprog;
+       unsigned int revision;
+       u32 digprog;
+       u16 offset = ANADIG_DIGPROG;
 
        np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop");
        anatop_base = of_iomap(np, 0);
        WARN_ON(!anatop_base);
-       digprog = readl_relaxed(anatop_base + ANADIG_DIGPROG);
+       if (of_device_is_compatible(np, "fsl,imx6sl-anatop"))
+               offset = ANADIG_DIGPROG_IMX6SL;
+       digprog = readl_relaxed(anatop_base + offset);
+       iounmap(anatop_base);
+
+       switch (digprog & 0xff) {
+       case 0:
+               revision = IMX_CHIP_REVISION_1_0;
+               break;
+       case 1:
+               revision = IMX_CHIP_REVISION_1_1;
+               break;
+       case 2:
+               revision = IMX_CHIP_REVISION_1_2;
+               break;
+       default:
+               revision = IMX_CHIP_REVISION_UNKNOWN;
+       }
 
-       return digprog;
+       mxc_set_cpu_type(digprog >> 16 & 0xff);
+       imx_set_soc_revision(revision);
 }
 
 void __init imx_anatop_init(void)
index ceaac9cd7b4230859143d951af389908744b7cc2..ce37af26ff8c6931b62e9459d7ffb7df1daf81ab 100644 (file)
@@ -14,6 +14,9 @@
 #include <linux/clk-provider.h>
 #include <linux/of.h>
 #include <linux/err.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_irq.h>
 
 #include "crm-regs-imx5.h"
 #include "clk.h"
@@ -472,8 +475,9 @@ CLK_OF_DECLARE(imx51_ccm, "fsl,imx51-ccm", mx51_clocks_init_dt);
 
 static void __init mx53_clocks_init(struct device_node *np)
 {
-       int i;
+       int i, irq;
        unsigned long r;
+       void __iomem *base;
 
        clk[pll1_sw] = imx_clk_pllv2("pll1_sw", "osc", MX53_DPLL1_BASE);
        clk[pll2_sw] = imx_clk_pllv2("pll2_sw", "osc", MX53_DPLL2_BASE);
@@ -559,14 +563,17 @@ static void __init mx53_clocks_init(struct device_node *np)
        clk_set_rate(clk[esdhc_a_podf], 200000000);
        clk_set_rate(clk[esdhc_b_podf], 200000000);
 
-       /* System timer */
-       mxc_timer_init(MX53_IO_ADDRESS(MX53_GPT1_BASE_ADDR), MX53_INT_GPT);
-
        clk_prepare_enable(clk[iim_gate]);
        imx_print_silicon_rev("i.MX53", mx53_revision());
        clk_disable_unprepare(clk[iim_gate]);
 
        r = clk_round_rate(clk[usboh3_per_gate], 54000000);
        clk_set_rate(clk[usboh3_per_gate], r);
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,imx53-gpt");
+       base = of_iomap(np, 0);
+       WARN_ON(!base);
+       irq = irq_of_parse_and_map(np, 0);
+       mxc_timer_init(base, irq);
 }
 CLK_OF_DECLARE(imx53_ccm, "fsl,imx53-ccm", mx53_clocks_init);
index 9181a241d3a8e543c41a2433b38cbfa6b774de02..d756d91fd74163852b810a0b0d578eaac5236552 100644 (file)
@@ -14,7 +14,6 @@
 #include <linux/types.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
-#include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/of.h>
 #include "common.h"
 #include "hardware.h"
 
-#define CCR                            0x0
-#define BM_CCR_WB_COUNT                        (0x7 << 16)
-#define BM_CCR_RBC_BYPASS_COUNT                (0x3f << 21)
-#define BM_CCR_RBC_EN                  (0x1 << 27)
-
-#define CCGR0                          0x68
-#define CCGR1                          0x6c
-#define CCGR2                          0x70
-#define CCGR3                          0x74
-#define CCGR4                          0x78
-#define CCGR5                          0x7c
-#define CCGR6                          0x80
-#define CCGR7                          0x84
-
-#define CLPCR                          0x54
-#define BP_CLPCR_LPM                   0
-#define BM_CLPCR_LPM                   (0x3 << 0)
-#define BM_CLPCR_BYPASS_PMIC_READY     (0x1 << 2)
-#define BM_CLPCR_ARM_CLK_DIS_ON_LPM    (0x1 << 5)
-#define BM_CLPCR_SBYOS                 (0x1 << 6)
-#define BM_CLPCR_DIS_REF_OSC           (0x1 << 7)
-#define BM_CLPCR_VSTBY                 (0x1 << 8)
-#define BP_CLPCR_STBY_COUNT            9
-#define BM_CLPCR_STBY_COUNT            (0x3 << 9)
-#define BM_CLPCR_COSC_PWRDOWN          (0x1 << 11)
-#define BM_CLPCR_WB_PER_AT_LPM         (0x1 << 16)
-#define BM_CLPCR_WB_CORE_AT_LPM                (0x1 << 17)
-#define BM_CLPCR_BYP_MMDC_CH0_LPM_HS   (0x1 << 19)
-#define BM_CLPCR_BYP_MMDC_CH1_LPM_HS   (0x1 << 21)
-#define BM_CLPCR_MASK_CORE0_WFI                (0x1 << 22)
-#define BM_CLPCR_MASK_CORE1_WFI                (0x1 << 23)
-#define BM_CLPCR_MASK_CORE2_WFI                (0x1 << 24)
-#define BM_CLPCR_MASK_CORE3_WFI                (0x1 << 25)
-#define BM_CLPCR_MASK_SCU_IDLE         (0x1 << 26)
-#define BM_CLPCR_MASK_L2CC_IDLE                (0x1 << 27)
-
-#define CGPR                           0x64
-#define BM_CGPR_CHICKEN_BIT            (0x1 << 17)
-
-static void __iomem *ccm_base;
-
-void imx6q_set_chicken_bit(void)
-{
-       u32 val = readl_relaxed(ccm_base + CGPR);
-
-       val |= BM_CGPR_CHICKEN_BIT;
-       writel_relaxed(val, ccm_base + CGPR);
-}
-
-static void imx6q_enable_rbc(bool enable)
-{
-       u32 val;
-       static bool last_rbc_mode;
-
-       if (last_rbc_mode == enable)
-               return;
-       /*
-        * need to mask all interrupts in GPC before
-        * operating RBC configurations
-        */
-       imx_gpc_mask_all();
-
-       /* configure RBC enable bit */
-       val = readl_relaxed(ccm_base + CCR);
-       val &= ~BM_CCR_RBC_EN;
-       val |= enable ? BM_CCR_RBC_EN : 0;
-       writel_relaxed(val, ccm_base + CCR);
-
-       /* configure RBC count */
-       val = readl_relaxed(ccm_base + CCR);
-       val &= ~BM_CCR_RBC_BYPASS_COUNT;
-       val |= enable ? BM_CCR_RBC_BYPASS_COUNT : 0;
-       writel(val, ccm_base + CCR);
-
-       /*
-        * need to delay at least 2 cycles of CKIL(32K)
-        * due to hardware design requirement, which is
-        * ~61us, here we use 65us for safe
-        */
-       udelay(65);
-
-       /* restore GPC interrupt mask settings */
-       imx_gpc_restore_all();
-
-       last_rbc_mode = enable;
-}
-
-static void imx6q_enable_wb(bool enable)
-{
-       u32 val;
-       static bool last_wb_mode;
-
-       if (last_wb_mode == enable)
-               return;
-
-       /* configure well bias enable bit */
-       val = readl_relaxed(ccm_base + CLPCR);
-       val &= ~BM_CLPCR_WB_PER_AT_LPM;
-       val |= enable ? BM_CLPCR_WB_PER_AT_LPM : 0;
-       writel_relaxed(val, ccm_base + CLPCR);
-
-       /* configure well bias count */
-       val = readl_relaxed(ccm_base + CCR);
-       val &= ~BM_CCR_WB_COUNT;
-       val |= enable ? BM_CCR_WB_COUNT : 0;
-       writel_relaxed(val, ccm_base + CCR);
-
-       last_wb_mode = enable;
-}
-
-int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode)
-{
-       u32 val = readl_relaxed(ccm_base + CLPCR);
-
-       val &= ~BM_CLPCR_LPM;
-       switch (mode) {
-       case WAIT_CLOCKED:
-               imx6q_enable_wb(false);
-               imx6q_enable_rbc(false);
-               break;
-       case WAIT_UNCLOCKED:
-               val |= 0x1 << BP_CLPCR_LPM;
-               val |= BM_CLPCR_ARM_CLK_DIS_ON_LPM;
-               break;
-       case STOP_POWER_ON:
-               val |= 0x2 << BP_CLPCR_LPM;
-               break;
-       case WAIT_UNCLOCKED_POWER_OFF:
-               val |= 0x1 << BP_CLPCR_LPM;
-               val &= ~BM_CLPCR_VSTBY;
-               val &= ~BM_CLPCR_SBYOS;
-               break;
-       case STOP_POWER_OFF:
-               val |= 0x2 << BP_CLPCR_LPM;
-               val |= 0x3 << BP_CLPCR_STBY_COUNT;
-               val |= BM_CLPCR_VSTBY;
-               val |= BM_CLPCR_SBYOS;
-               imx6q_enable_wb(true);
-               imx6q_enable_rbc(true);
-               break;
-       default:
-               return -EINVAL;
-       }
-
-       writel_relaxed(val, ccm_base + CLPCR);
-
-       return 0;
-}
-
 static const char *step_sels[] = { "osc", "pll2_pfd2_396m", };
 static const char *pll1_sw_sels[]      = { "pll1_sys", "step", };
 static const char *periph_pre_sels[]   = { "pll2_bus", "pll2_pfd2_396m", "pll2_pfd0_352m", "pll2_198m", };
@@ -182,7 +32,7 @@ static const char *periph2_clk2_sels[]       = { "pll3_usb_otg", "pll2_bus", };
 static const char *periph_sels[]       = { "periph_pre", "periph_clk2", };
 static const char *periph2_sels[]      = { "periph2_pre", "periph2_clk2", };
 static const char *axi_sels[]          = { "periph", "pll2_pfd2_396m", "periph", "pll3_pfd1_540m", };
-static const char *audio_sels[]        = { "pll4_post_div", "pll3_pfd2_508m", "pll3_pfd3_454m", "pll3_usb_otg", };
+static const char *audio_sels[]        = { "pll4_audio_div", "pll3_pfd2_508m", "pll3_pfd3_454m", "pll3_usb_otg", };
 static const char *gpu_axi_sels[]      = { "axi", "ahb", };
 static const char *gpu2d_core_sels[]   = { "axi", "pll3_usb_otg", "pll2_pfd0_352m", "pll2_pfd2_396m", };
 static const char *gpu3d_core_sels[]   = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd2_396m", };
@@ -196,7 +46,7 @@ static const char *ipu2_di0_sels[]   = { "ipu2_di0_pre", "dummy", "dummy", "ldb_di
 static const char *ipu2_di1_sels[]     = { "ipu2_di1_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", };
 static const char *hsi_tx_sels[]       = { "pll3_120m", "pll2_pfd2_396m", };
 static const char *pcie_axi_sels[]     = { "axi", "ahb", };
-static const char *ssi_sels[]          = { "pll3_pfd2_508m", "pll3_pfd3_454m", "pll4_post_div", };
+static const char *ssi_sels[]          = { "pll3_pfd2_508m", "pll3_pfd3_454m", "pll4_audio_div", };
 static const char *usdhc_sels[]        = { "pll2_pfd2_396m", "pll2_pfd0_352m", };
 static const char *enfc_sels[] = { "pll2_pfd0_352m", "pll2_bus", "pll3_usb_otg", "pll2_pfd2_396m", };
 static const char *emi_sels[]          = { "pll2_pfd2_396m", "pll3_usb_otg", "axi", "pll2_pfd0_352m", };
@@ -205,7 +55,7 @@ static const char *vdo_axi_sels[]    = { "axi", "ahb", };
 static const char *vpu_axi_sels[]      = { "axi", "pll2_pfd2_396m", "pll2_pfd0_352m", };
 static const char *cko1_sels[] = { "pll3_usb_otg", "pll2_bus", "pll1_sys", "pll5_video_div",
                                    "dummy", "axi", "enfc", "ipu1_di0", "ipu1_di1", "ipu2_di0",
-                                   "ipu2_di1", "ahb", "ipg", "ipg_per", "ckil", "pll4_post_div", };
+                                   "ipu2_di1", "ahb", "ipg", "ipg_per", "ckil", "pll4_audio_div", };
 static const char *cko2_sels[] = {
        "mmdc_ch0_axi", "mmdc_ch1_axi", "usdhc4", "usdhc1",
        "gpu2d_axi", "dummy", "ecspi_root", "gpu3d_axi",
@@ -217,6 +67,11 @@ static const char *cko2_sels[] = {
        "uart_serial", "spdif", "asrc", "hsi_tx",
 };
 static const char *cko_sels[] = { "cko1", "cko2", };
+static const char *lvds_sels[] = {
+       "dummy", "dummy", "dummy", "dummy", "dummy", "dummy",
+       "pll4_audio", "pll5_video", "pll8_mlb", "enet_ref",
+       "pcie_ref", "sata_ref",
+};
 
 enum mx6q_clks {
        dummy, ckil, ckih, osc, pll2_pfd0_352m, pll2_pfd1_594m, pll2_pfd2_396m,
@@ -251,7 +106,8 @@ enum mx6q_clks {
        ssi2_ipg, ssi3_ipg, rom, usbphy1, usbphy2, ldb_di0_div_3_5, ldb_di1_div_3_5,
        sata_ref, sata_ref_100m, pcie_ref, pcie_ref_125m, enet_ref, usbphy1_gate,
        usbphy2_gate, pll4_post_div, pll5_post_div, pll5_video_div, eim_slow,
-       spdif, cko2_sel, cko2_podf, cko2, cko, vdoa, clk_max
+       spdif, cko2_sel, cko2_podf, cko2, cko, vdoa, pll4_audio_div,
+       lvds1_sel, lvds2_sel, lvds1_gate, lvds2_gate, clk_max
 };
 
 static struct clk *clk[clk_max];
@@ -300,7 +156,7 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
        WARN_ON(!base);
 
        /* Audio/video PLL post dividers do not work on i.MX6q revision 1.0 */
-       if (cpu_is_imx6q() && imx6q_revision() == IMX_CHIP_REVISION_1_0) {
+       if (cpu_is_imx6q() && imx_get_soc_revision() == IMX_CHIP_REVISION_1_0) {
                post_div_table[1].div = 1;
                post_div_table[2].div = 1;
                video_div_table[1].div = 1;
@@ -342,6 +198,18 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
                        base + 0xe0, 0, 2, 0, clk_enet_ref_table,
                        &imx_ccm_lock);
 
+       clk[lvds1_sel] = imx_clk_mux("lvds1_sel", base + 0x160, 0, 5, lvds_sels, ARRAY_SIZE(lvds_sels));
+       clk[lvds2_sel] = imx_clk_mux("lvds2_sel", base + 0x160, 5, 5, lvds_sels, ARRAY_SIZE(lvds_sels));
+
+       /*
+        * lvds1_gate and lvds2_gate are pseudo-gates.  Both can be
+        * independently configured as clock inputs or outputs.  We treat
+        * the "output_enable" bit as a gate, even though it's really just
+        * enabling clock output.
+        */
+       clk[lvds1_gate] = imx_clk_gate("lvds1_gate", "dummy", base + 0x160, 10);
+       clk[lvds2_gate] = imx_clk_gate("lvds2_gate", "dummy", base + 0x160, 11);
+
        /*                                name              parent_name        reg       idx */
        clk[pll2_pfd0_352m] = imx_clk_pfd("pll2_pfd0_352m", "pll2_bus",     base + 0x100, 0);
        clk[pll2_pfd1_594m] = imx_clk_pfd("pll2_pfd1_594m", "pll2_bus",     base + 0x100, 1);
@@ -359,13 +227,15 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
        clk[twd]       = imx_clk_fixed_factor("twd",       "arm",            1, 2);
 
        clk[pll4_post_div] = clk_register_divider_table(NULL, "pll4_post_div", "pll4_audio", CLK_SET_RATE_PARENT, base + 0x70, 19, 2, 0, post_div_table, &imx_ccm_lock);
+       clk[pll4_audio_div] = clk_register_divider(NULL, "pll4_audio_div", "pll4_post_div", CLK_SET_RATE_PARENT, base + 0x170, 15, 1, 0, &imx_ccm_lock);
        clk[pll5_post_div] = clk_register_divider_table(NULL, "pll5_post_div", "pll5_video", CLK_SET_RATE_PARENT, base + 0xa0, 19, 2, 0, post_div_table, &imx_ccm_lock);
        clk[pll5_video_div] = clk_register_divider_table(NULL, "pll5_video_div", "pll5_post_div", CLK_SET_RATE_PARENT, base + 0x170, 30, 2, 0, video_div_table, &imx_ccm_lock);
 
        np = ccm_node;
        base = of_iomap(np, 0);
        WARN_ON(!base);
-       ccm_base = base;
+
+       imx6q_pm_set_ccm_base(base);
 
        /*                                  name                reg       shift width parent_names     num_parents */
        clk[step]             = imx_clk_mux("step",             base + 0xc,  8,  1, step_sels,         ARRAY_SIZE(step_sels));
@@ -573,7 +443,8 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
        clk_register_clkdev(clk[pll4_post_div], "pll4_post_div", NULL);
        clk_register_clkdev(clk[pll4_audio], "pll4_audio", NULL);
 
-       if ((imx6q_revision() != IMX_CHIP_REVISION_1_0) || cpu_is_imx6dl()) {
+       if ((imx_get_soc_revision() != IMX_CHIP_REVISION_1_0) ||
+           cpu_is_imx6dl()) {
                clk_set_parent(clk[ldb_di0_sel], clk[pll5_video_div]);
                clk_set_parent(clk[ldb_di1_sel], clk[pll5_video_div]);
        }
@@ -603,8 +474,9 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
        if (ret)
                pr_warn("failed to set up CLKO: %d\n", ret);
 
-       /* Set initial power mode */
-       imx6q_set_lpm(WAIT_CLOCKED);
+       /* All existing boards with PCIe use LVDS1 */
+       if (IS_ENABLED(CONFIG_PCI_IMX6))
+               clk_set_parent(clk[lvds1_sel], clk[sata_ref]);
 
        np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt");
        base = of_iomap(np, 0);
index a5c3c5d21aeedbcb324bca659730948f3e8d1a36..c0c4ef55e35bd7e522b4f83d038d50f752265db4 100644 (file)
@@ -127,6 +127,9 @@ static void __init imx6sl_clocks_init(struct device_node *ccm_node)
        base = of_iomap(np, 0);
        WARN_ON(!base);
 
+       /* Reuse imx6q pm code */
+       imx6q_pm_set_ccm_base(base);
+
        /*                                              name                reg       shift width parent_names     num_parents */
        clks[IMX6SL_CLK_STEP]             = imx_clk_mux("step",             base + 0xc,  8,  1, step_sels,         ARRAY_SIZE(step_sels));
        clks[IMX6SL_CLK_PLL1_SW]          = imx_clk_mux("pll1_sw",          base + 0xc,  2,  1, pll1_sw_sels,      ARRAY_SIZE(pll1_sw_sels));
index 28e8ca0871e8fd77295218a1386baee463d648e2..7cbe22d0c6e9c8ae4060e71c06d2c7eb73c0d389 100644 (file)
 
 #include <linux/reboot.h>
 
+struct irq_data;
 struct platform_device;
 struct pt_regs;
 struct clk;
 enum mxc_cpu_pwr_mode;
 
-extern void mx1_map_io(void);
-extern void mx21_map_io(void);
-extern void mx25_map_io(void);
-extern void mx27_map_io(void);
-extern void mx31_map_io(void);
-extern void mx35_map_io(void);
-extern void mx51_map_io(void);
-extern void mx53_map_io(void);
-extern void imx1_init_early(void);
-extern void imx21_init_early(void);
-extern void imx25_init_early(void);
-extern void imx27_init_early(void);
-extern void imx31_init_early(void);
-extern void imx35_init_early(void);
-extern void imx51_init_early(void);
-extern void imx53_init_early(void);
-extern void mxc_init_irq(void __iomem *);
-extern void tzic_init_irq(void __iomem *);
-extern void mx1_init_irq(void);
-extern void mx21_init_irq(void);
-extern void mx25_init_irq(void);
-extern void mx27_init_irq(void);
-extern void mx31_init_irq(void);
-extern void mx35_init_irq(void);
-extern void mx51_init_irq(void);
-extern void mx53_init_irq(void);
-extern void imx1_soc_init(void);
-extern void imx21_soc_init(void);
-extern void imx25_soc_init(void);
-extern void imx27_soc_init(void);
-extern void imx31_soc_init(void);
-extern void imx35_soc_init(void);
-extern void imx51_soc_init(void);
-extern void imx51_init_late(void);
-extern void imx53_init_late(void);
-extern void epit_timer_init(void __iomem *base, int irq);
-extern void mxc_timer_init(void __iomem *, int);
-extern int mx1_clocks_init(unsigned long fref);
-extern int mx21_clocks_init(unsigned long lref, unsigned long fref);
-extern int mx25_clocks_init(void);
-extern int mx27_clocks_init(unsigned long fref);
-extern int mx31_clocks_init(unsigned long fref);
-extern int mx35_clocks_init(void);
-extern int mx51_clocks_init(unsigned long ckil, unsigned long osc,
+void mx1_map_io(void);
+void mx21_map_io(void);
+void mx25_map_io(void);
+void mx27_map_io(void);
+void mx31_map_io(void);
+void mx35_map_io(void);
+void mx51_map_io(void);
+void mx53_map_io(void);
+void imx1_init_early(void);
+void imx21_init_early(void);
+void imx25_init_early(void);
+void imx27_init_early(void);
+void imx31_init_early(void);
+void imx35_init_early(void);
+void imx51_init_early(void);
+void imx53_init_early(void);
+void mxc_init_irq(void __iomem *);
+void tzic_init_irq(void __iomem *);
+void mx1_init_irq(void);
+void mx21_init_irq(void);
+void mx25_init_irq(void);
+void mx27_init_irq(void);
+void mx31_init_irq(void);
+void mx35_init_irq(void);
+void mx51_init_irq(void);
+void mx53_init_irq(void);
+void imx1_soc_init(void);
+void imx21_soc_init(void);
+void imx25_soc_init(void);
+void imx27_soc_init(void);
+void imx31_soc_init(void);
+void imx35_soc_init(void);
+void imx51_soc_init(void);
+void imx51_init_late(void);
+void imx53_init_late(void);
+void epit_timer_init(void __iomem *base, int irq);
+void mxc_timer_init(void __iomem *, int);
+int mx1_clocks_init(unsigned long fref);
+int mx21_clocks_init(unsigned long lref, unsigned long fref);
+int mx25_clocks_init(void);
+int mx27_clocks_init(unsigned long fref);
+int mx31_clocks_init(unsigned long fref);
+int mx35_clocks_init(void);
+int mx51_clocks_init(unsigned long ckil, unsigned long osc,
                        unsigned long ckih1, unsigned long ckih2);
-extern int mx25_clocks_init_dt(void);
-extern int mx27_clocks_init_dt(void);
-extern int mx31_clocks_init_dt(void);
-extern struct platform_device *mxc_register_gpio(char *name, int id,
+int mx25_clocks_init_dt(void);
+int mx27_clocks_init_dt(void);
+int mx31_clocks_init_dt(void);
+struct platform_device *mxc_register_gpio(char *name, int id,
        resource_size_t iobase, resource_size_t iosize, int irq, int irq_high);
-extern void mxc_set_cpu_type(unsigned int type);
-extern void mxc_restart(enum reboot_mode, const char *);
-extern void mxc_arch_reset_init(void __iomem *);
-extern void mxc_arch_reset_init_dt(void);
-extern int mx53_revision(void);
-extern int imx6q_revision(void);
-extern int mx53_display_revision(void);
-extern void imx_set_aips(void __iomem *);
-extern int mxc_device_init(void);
+void mxc_set_cpu_type(unsigned int type);
+void mxc_restart(enum reboot_mode, const char *);
+void mxc_arch_reset_init(void __iomem *);
+void mxc_arch_reset_init_dt(void);
+int mx53_revision(void);
+void imx_set_aips(void __iomem *);
+int mxc_device_init(void);
+void imx_set_soc_revision(unsigned int rev);
+unsigned int imx_get_soc_revision(void);
+void imx_init_revision_from_anatop(void);
+struct device *imx_soc_device_init(void);
 
 enum mxc_cpu_pwr_mode {
        WAIT_CLOCKED,           /* wfi only */
@@ -93,8 +96,8 @@ enum mx3_cpu_pwr_mode {
        MX3_SLEEP,
 };
 
-extern void mx3_cpu_lp_set(enum mx3_cpu_pwr_mode mode);
-extern void imx_print_silicon_rev(const char *cpu, int srev);
+void mx3_cpu_lp_set(enum mx3_cpu_pwr_mode mode);
+void imx_print_silicon_rev(const char *cpu, int srev);
 
 void avic_handle_irq(struct pt_regs *);
 void tzic_handle_irq(struct pt_regs *);
@@ -108,54 +111,61 @@ void tzic_handle_irq(struct pt_regs *);
 #define imx51_handle_irq tzic_handle_irq
 #define imx53_handle_irq tzic_handle_irq
 
-extern void imx_enable_cpu(int cpu, bool enable);
-extern void imx_set_cpu_jump(int cpu, void *jump_addr);
-extern u32 imx_get_cpu_arg(int cpu);
-extern void imx_set_cpu_arg(int cpu, u32 arg);
-extern void v7_cpu_resume(void);
+void imx_enable_cpu(int cpu, bool enable);
+void imx_set_cpu_jump(int cpu, void *jump_addr);
+u32 imx_get_cpu_arg(int cpu);
+void imx_set_cpu_arg(int cpu, u32 arg);
+void v7_cpu_resume(void);
 #ifdef CONFIG_SMP
-extern void v7_secondary_startup(void);
-extern void imx_scu_map_io(void);
-extern void imx_smp_prepare(void);
-extern void imx_scu_standby_enable(void);
+void v7_secondary_startup(void);
+void imx_scu_map_io(void);
+void imx_smp_prepare(void);
+void imx_scu_standby_enable(void);
 #else
 static inline void imx_scu_map_io(void) {}
 static inline void imx_smp_prepare(void) {}
 static inline void imx_scu_standby_enable(void) {}
 #endif
-extern void imx_src_init(void);
-extern void imx_src_prepare_restart(void);
-extern void imx_gpc_init(void);
-extern void imx_gpc_pre_suspend(void);
-extern void imx_gpc_post_resume(void);
-extern void imx_gpc_mask_all(void);
-extern void imx_gpc_restore_all(void);
-extern void imx_anatop_init(void);
-extern void imx_anatop_pre_suspend(void);
-extern void imx_anatop_post_resume(void);
-extern u32 imx_anatop_get_digprog(void);
-extern int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode);
-extern void imx6q_set_chicken_bit(void);
-
-extern void imx_cpu_die(unsigned int cpu);
-extern int imx_cpu_kill(unsigned int cpu);
+void imx_src_init(void);
+#ifdef CONFIG_HAVE_IMX_SRC
+void imx_src_prepare_restart(void);
+#else
+static inline void imx_src_prepare_restart(void) {}
+#endif
+void imx_gpc_init(void);
+void imx_gpc_pre_suspend(void);
+void imx_gpc_post_resume(void);
+void imx_gpc_mask_all(void);
+void imx_gpc_restore_all(void);
+void imx_gpc_irq_mask(struct irq_data *d);
+void imx_gpc_irq_unmask(struct irq_data *d);
+void imx_anatop_init(void);
+void imx_anatop_pre_suspend(void);
+void imx_anatop_post_resume(void);
+int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode);
+void imx6q_set_chicken_bit(void);
+
+void imx_cpu_die(unsigned int cpu);
+int imx_cpu_kill(unsigned int cpu);
 
 #ifdef CONFIG_PM
-extern void imx6q_pm_init(void);
-extern void imx5_pm_init(void);
+void imx6q_pm_init(void);
+void imx6q_pm_set_ccm_base(void __iomem *base);
+void imx5_pm_init(void);
 #else
 static inline void imx6q_pm_init(void) {}
+static inline void imx6q_pm_set_ccm_base(void __iomem *base) {}
 static inline void imx5_pm_init(void) {}
 #endif
 
 #ifdef CONFIG_NEON
-extern int mx51_neon_fixup(void);
+int mx51_neon_fixup(void);
 #else
 static inline int mx51_neon_fixup(void) { return 0; }
 #endif
 
 #ifdef CONFIG_CACHE_L2X0
-extern void imx_init_l2cache(void);
+void imx_init_l2cache(void);
 #else
 static inline void imx_init_l2cache(void) {}
 #endif
index e70e3acbf9bd04516257010c86958e99da766e04..ba3b498a67ecc47e78198d756b21aa6197f46ebc 100644 (file)
@@ -1,6 +1,9 @@
-
+#include <linux/err.h>
 #include <linux/module.h>
 #include <linux/io.h>
+#include <linux/of.h>
+#include <linux/slab.h>
+#include <linux/sys_soc.h>
 
 #include "hardware.h"
 #include "common.h"
 unsigned int __mxc_cpu_type;
 EXPORT_SYMBOL(__mxc_cpu_type);
 
+static unsigned int imx_soc_revision;
+
 void mxc_set_cpu_type(unsigned int type)
 {
        __mxc_cpu_type = type;
 }
 
+void imx_set_soc_revision(unsigned int rev)
+{
+       imx_soc_revision = rev;
+}
+
+unsigned int imx_get_soc_revision(void)
+{
+       return imx_soc_revision;
+}
+
 void imx_print_silicon_rev(const char *cpu, int srev)
 {
        if (srev == IMX_CHIP_REVISION_UNKNOWN)
@@ -44,3 +59,81 @@ void __init imx_set_aips(void __iomem *base)
        reg = __raw_readl(base + 0x50) & 0x00FFFFFF;
        __raw_writel(reg, base + 0x50);
 }
+
+struct device * __init imx_soc_device_init(void)
+{
+       struct soc_device_attribute *soc_dev_attr;
+       struct soc_device *soc_dev;
+       struct device_node *root;
+       const char *soc_id;
+       int ret;
+
+       soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+       if (!soc_dev_attr)
+               return NULL;
+
+       soc_dev_attr->family = "Freescale i.MX";
+
+       root = of_find_node_by_path("/");
+       ret = of_property_read_string(root, "model", &soc_dev_attr->machine);
+       of_node_put(root);
+       if (ret)
+               goto free_soc;
+
+       switch (__mxc_cpu_type) {
+       case MXC_CPU_MX1:
+               soc_id = "i.MX1";
+               break;
+       case MXC_CPU_MX21:
+               soc_id = "i.MX21";
+               break;
+       case MXC_CPU_MX25:
+               soc_id = "i.MX25";
+               break;
+       case MXC_CPU_MX27:
+               soc_id = "i.MX27";
+               break;
+       case MXC_CPU_MX31:
+               soc_id = "i.MX31";
+               break;
+       case MXC_CPU_MX35:
+               soc_id = "i.MX35";
+               break;
+       case MXC_CPU_MX51:
+               soc_id = "i.MX51";
+               break;
+       case MXC_CPU_MX53:
+               soc_id = "i.MX53";
+               break;
+       case MXC_CPU_IMX6SL:
+               soc_id = "i.MX6SL";
+               break;
+       case MXC_CPU_IMX6DL:
+               soc_id = "i.MX6DL";
+               break;
+       case MXC_CPU_IMX6Q:
+               soc_id = "i.MX6Q";
+               break;
+       default:
+               soc_id = "Unknown";
+       }
+       soc_dev_attr->soc_id = soc_id;
+
+       soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%d.%d",
+                                          (imx_soc_revision >> 4) & 0xf,
+                                          imx_soc_revision & 0xf);
+       if (!soc_dev_attr->revision)
+               goto free_soc;
+
+       soc_dev = soc_device_register(soc_dev_attr);
+       if (IS_ERR(soc_dev))
+               goto free_rev;
+
+       return soc_device_to_device(soc_dev);
+
+free_rev:
+       kfree(soc_dev_attr->revision);
+free_soc:
+       kfree(soc_dev_attr);
+       return NULL;
+}
index e02de188ae83ba7a5e51b4184f1cc85c05c86d34..074b1a81ba764aa2caeecf6f973c3807e2f5b4a2 100644 (file)
@@ -171,7 +171,7 @@ static irqreturn_t epit_timer_interrupt(int irq, void *dev_id)
 
 static struct irqaction epit_timer_irq = {
        .name           = "i.MX EPIT Timer Tick",
-       .flags          = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
+       .flags          = IRQF_TIMER | IRQF_IRQPOLL,
        .handler        = epit_timer_interrupt,
 };
 
index 44a65e9ff1fc9366bb62c35242c4f6dcc188a0d2..586e0171a65294200bb2d1a0c9115c73975fb2aa 100644 (file)
@@ -90,7 +90,7 @@ void imx_gpc_restore_all(void)
                writel_relaxed(gpc_saved_imrs[i], reg_imr1 + i * 4);
 }
 
-static void imx_gpc_irq_unmask(struct irq_data *d)
+void imx_gpc_irq_unmask(struct irq_data *d)
 {
        void __iomem *reg;
        u32 val;
@@ -105,7 +105,7 @@ static void imx_gpc_irq_unmask(struct irq_data *d)
        writel_relaxed(val, reg);
 }
 
-static void imx_gpc_irq_mask(struct irq_data *d)
+void imx_gpc_irq_mask(struct irq_data *d)
 {
        void __iomem *reg;
        u32 val;
index 3daf1ed90579a74a97f4d25f4292d8d09e50a1f5..b35e99cc5e5b4f20ae32b7968ad2698941591d98 100644 (file)
@@ -52,7 +52,9 @@ void imx_cpu_die(unsigned int cpu)
         * the register being cleared to kill the cpu.
         */
        imx_set_cpu_arg(cpu, ~0);
-       cpu_do_idle();
+
+       while (1)
+               cpu_do_idle();
 }
 
 int imx_cpu_kill(unsigned int cpu)
index 368a6e3f5926b2d62c12e17fc6ecf8216e4be06c..58b864a3fc207a9df50c911e17930c00d93a584c 100644 (file)
@@ -404,8 +404,7 @@ static int armadillo5x0_sdhc1_init(struct device *dev,
 
        /* When supported the trigger type have to be BOTH */
        ret = request_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_ATA_DMACK)),
-                         detect_irq,
-                         IRQF_DISABLED | IRQF_TRIGGER_FALLING,
+                         detect_irq, IRQF_TRIGGER_FALLING,
                          "sdhc-detect", data);
 
        if (ret)
index eae56423f0aeebf0c8ad82a698d6f4684b4238f7..170f13f7215784e2aa2d35e433d92c7586bf9d01 100644 (file)
@@ -23,8 +23,9 @@
 #include <linux/of_address.h>
 #include <linux/of_irq.h>
 #include <linux/of_platform.h>
-#include <linux/pm_opp.h>
+#include <linux/pci.h>
 #include <linux/phy.h>
+#include <linux/pm_opp.h>
 #include <linux/reboot.h>
 #include <linux/regmap.h>
 #include <linux/micrel_phy.h>
 #include "cpuidle.h"
 #include "hardware.h"
 
-static u32 chip_revision;
-
-int imx6q_revision(void)
-{
-       return chip_revision;
-}
-
-static void __init imx6q_init_revision(void)
-{
-       u32 rev = imx_anatop_get_digprog();
-
-       switch (rev & 0xff) {
-       case 0:
-               chip_revision = IMX_CHIP_REVISION_1_0;
-               break;
-       case 1:
-               chip_revision = IMX_CHIP_REVISION_1_1;
-               break;
-       case 2:
-               chip_revision = IMX_CHIP_REVISION_1_2;
-               break;
-       default:
-               chip_revision = IMX_CHIP_REVISION_UNKNOWN;
-       }
-
-       mxc_set_cpu_type(rev >> 16 & 0xff);
-}
-
-static void imx6q_restart(enum reboot_mode mode, const char *cmd)
-{
-       struct device_node *np;
-       void __iomem *wdog_base;
-
-       np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-wdt");
-       wdog_base = of_iomap(np, 0);
-       if (!wdog_base)
-               goto soft;
-
-       imx_src_prepare_restart();
-
-       /* enable wdog */
-       writew_relaxed(1 << 2, wdog_base);
-       /* write twice to ensure the request will not get ignored */
-       writew_relaxed(1 << 2, wdog_base);
-
-       /* wait for reset to assert ... */
-       mdelay(500);
-
-       pr_err("Watchdog reset failed to assert reset\n");
-
-       /* delay to allow the serial port to show the message */
-       mdelay(50);
-
-soft:
-       /* we'll take a jump through zero as a poor second */
-       soft_restart(0);
-}
-
 /* For imx6q sabrelite board: set KSZ9021RN RGMII pad skew */
 static int ksz9021rn_phy_fixup(struct phy_device *phydev)
 {
@@ -137,6 +80,34 @@ static int ksz9031rn_phy_fixup(struct phy_device *dev)
        return 0;
 }
 
+/*
+ * fixup for PLX PEX8909 bridge to configure GPIO1-7 as output High
+ * as they are used for slots1-7 PERST#
+ */
+static void ventana_pciesw_early_fixup(struct pci_dev *dev)
+{
+       u32 dw;
+
+       if (!of_machine_is_compatible("gw,ventana"))
+               return;
+
+       if (dev->devfn != 0)
+               return;
+
+       pci_read_config_dword(dev, 0x62c, &dw);
+       dw |= 0xaaa8; // GPIO1-7 outputs
+       pci_write_config_dword(dev, 0x62c, dw);
+
+       pci_read_config_dword(dev, 0x644, &dw);
+       dw |= 0xfe;   // GPIO1-7 output high
+       pci_write_config_dword(dev, 0x644, dw);
+
+       msleep(100);
+}
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_PLX, 0x8609, ventana_pciesw_early_fixup);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_PLX, 0x8606, ventana_pciesw_early_fixup);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_PLX, 0x8604, ventana_pciesw_early_fixup);
+
 static int ar8031_phy_fixup(struct phy_device *dev)
 {
        u16 val;
@@ -190,12 +161,20 @@ static void __init imx6q_1588_init(void)
 
 static void __init imx6q_init_machine(void)
 {
+       struct device *parent;
+
        imx_print_silicon_rev(cpu_is_imx6dl() ? "i.MX6DL" : "i.MX6Q",
-                             imx6q_revision());
+                             imx_get_soc_revision());
+
+       mxc_arch_reset_init_dt();
+
+       parent = imx_soc_device_init();
+       if (parent == NULL)
+               pr_warn("failed to initialize soc device\n");
 
        imx6q_enet_phy_init();
 
-       of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+       of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
 
        imx_anatop_init();
        imx6q_pm_init();
@@ -270,7 +249,7 @@ static void __init imx6q_init_late(void)
         * WAIT mode is broken on TO 1.0 and 1.1, so there is no point
         * to run cpuidle on them.
         */
-       if (imx6q_revision() > IMX_CHIP_REVISION_1_1)
+       if (imx_get_soc_revision() > IMX_CHIP_REVISION_1_1)
                imx6q_cpuidle_init();
 
        if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) {
@@ -287,7 +266,7 @@ static void __init imx6q_map_io(void)
 
 static void __init imx6q_init_irq(void)
 {
-       imx6q_init_revision();
+       imx_init_revision_from_anatop();
        imx_init_l2cache();
        imx_src_init();
        imx_gpc_init();
@@ -307,5 +286,5 @@ DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad/DualLite (Device Tree)")
        .init_machine   = imx6q_init_machine,
        .init_late      = imx6q_init_late,
        .dt_compat      = imx6q_dt_compat,
-       .restart        = imx6q_restart,
+       .restart        = mxc_restart,
 MACHINE_END
index c70bd7c649746fdab1022a2c67af0df84d230267..2f952e3fcf899172b40ffc7e1cfff7aa94718bc2 100644 (file)
 #include <linux/irqchip.h>
 #include <linux/of.h>
 #include <linux/of_platform.h>
+#include <linux/mfd/syscon.h>
+#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
+#include <linux/regmap.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
 #include "common.h"
 
+static void __init imx6sl_fec_init(void)
+{
+       struct regmap *gpr;
+
+       /* set FEC clock from internal PLL clock source */
+       gpr = syscon_regmap_lookup_by_compatible("fsl,imx6sl-iomuxc-gpr");
+       if (!IS_ERR(gpr)) {
+               regmap_update_bits(gpr, IOMUXC_GPR1,
+                       IMX6SL_GPR1_FEC_CLOCK_MUX2_SEL_MASK, 0);
+               regmap_update_bits(gpr, IOMUXC_GPR1,
+                       IMX6SL_GPR1_FEC_CLOCK_MUX1_SEL_MASK, 0);
+       } else {
+               pr_err("failed to find fsl,imx6sl-iomux-gpr regmap\n");
+       }
+}
+
 static void __init imx6sl_init_machine(void)
 {
+       struct device *parent;
+
        mxc_arch_reset_init_dt();
 
-       of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+       parent = imx_soc_device_init();
+       if (parent == NULL)
+               pr_warn("failed to initialize soc device\n");
+
+       of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
+
+       imx6sl_fec_init();
+       imx_anatop_init();
+       /* Reuse imx6q pm code */
+       imx6q_pm_init();
 }
 
 static void __init imx6sl_init_irq(void)
 {
+       imx_init_revision_from_anatop();
        imx_init_l2cache();
        imx_src_init();
        imx_gpc_init();
index 1ed916175d41bf4f5ccfc10e5fc981b151234874..50044a21b388f76a97458a70e87d6166809c1b53 100644 (file)
@@ -311,7 +311,7 @@ static int mx31_3ds_sdhc1_init(struct device *dev,
        }
 
        ret = request_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1)),
-                         detect_irq, IRQF_DISABLED |
+                         detect_irq,
                          IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
                          "sdhc1-detect", data);
        if (ret) {
index 20cc53f4cee1f1372c619925d0fe74e47eafd075..639a3dfb00923317871724f1848ace2d9c7e0125 100644 (file)
@@ -371,8 +371,7 @@ static int pcm970_sdhc1_init(struct device *dev, irq_handler_t detect_irq,
 #endif
 
        ret = request_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_SCK6)), detect_irq,
-                       IRQF_DISABLED | IRQF_TRIGGER_FALLING,
-                               "sdhc-detect", data);
+                       IRQF_TRIGGER_FALLING, "sdhc-detect", data);
        if (ret)
                goto err_gpio_free_2;
 
index eb3cce38c70d3f09eb29d9b7d51343bca5327989..d1d52600f458c3604eb77c4bcfae51432b2a932c 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/init.h>
 #include <linux/clk.h>
 #include <linux/pinctrl/machine.h>
+#include <linux/of_address.h>
 
 #include <asm/mach/map.h>
 
@@ -88,8 +89,15 @@ void __init imx51_init_early(void)
 
 void __init imx53_init_early(void)
 {
+       struct device_node *np;
+       void __iomem *base;
+
        mxc_set_cpu_type(MXC_CPU_MX53);
-       mxc_iomux_v3_init(MX53_IO_ADDRESS(MX53_IOMUXC_BASE_ADDR));
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,imx53-iomuxc");
+       base = of_iomap(np, 0);
+       WARN_ON(!base);
+       mxc_iomux_v3_init(base);
        imx_src_init();
 }
 
@@ -100,7 +108,14 @@ void __init mx51_init_irq(void)
 
 void __init mx53_init_irq(void)
 {
-       tzic_init_irq(MX53_IO_ADDRESS(MX53_TZIC_BASE_ADDR));
+       struct device_node *np;
+       void __iomem *base;
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,imx53-tzic");
+       base = of_iomap(np, 0);
+       WARN_ON(!base);
+
+       tzic_init_irq(base);
 }
 
 static struct sdma_platform_data imx51_sdma_pdata __initdata = {
index d4361b80c5fba0c60d5436bbdd0401ffd97b9a3f..649fe49ce85eed34765474badbc1be36a9627b4b 100644 (file)
@@ -130,8 +130,7 @@ static int mxc_mmc1_init(struct device *dev,
        gpio_direction_input(gpio_wp);
 
        ret = request_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_1)),
-                         detect_irq,
-                         IRQF_DISABLED | IRQF_TRIGGER_FALLING,
+                         detect_irq, IRQF_TRIGGER_FALLING,
                          "MMC detect", data);
        if (ret)
                goto exit_free_wp;
index 8629e5be7ecd19f665a13a10a554d4b3bedab00f..b08ab3ad4a6db2d09d4344ef0e319b8bc8a64cf1 100644 (file)
@@ -34,6 +34,7 @@
 #define MXC_CPU_MX35           35
 #define MXC_CPU_MX51           51
 #define MXC_CPU_MX53           53
+#define MXC_CPU_IMX6SL         0x60
 #define MXC_CPU_IMX6DL         0x61
 #define MXC_CPU_IMX6Q          0x63
 
@@ -152,6 +153,11 @@ extern unsigned int __mxc_cpu_type;
 #endif
 
 #ifndef __ASSEMBLY__
+static inline bool cpu_is_imx6sl(void)
+{
+       return __mxc_cpu_type == MXC_CPU_IMX6SL;
+}
+
 static inline bool cpu_is_imx6dl(void)
 {
        return __mxc_cpu_type == MXC_CPU_IMX6DL;
index 204942749e2199bbe4ff1632e974e17d4612d37b..aecd9f8037e0aab65e44482ffe817314b6bbd1be 100644 (file)
  * http://www.gnu.org/copyleft/gpl.html
  */
 
+#include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/io.h>
+#include <linux/irq.h>
+#include <linux/mfd/syscon.h>
+#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
 #include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/regmap.h>
 #include <linux/suspend.h>
 #include <asm/cacheflush.h>
 #include <asm/proc-fns.h>
 #include "common.h"
 #include "hardware.h"
 
+#define CCR                            0x0
+#define BM_CCR_WB_COUNT                        (0x7 << 16)
+#define BM_CCR_RBC_BYPASS_COUNT                (0x3f << 21)
+#define BM_CCR_RBC_EN                  (0x1 << 27)
+
+#define CLPCR                          0x54
+#define BP_CLPCR_LPM                   0
+#define BM_CLPCR_LPM                   (0x3 << 0)
+#define BM_CLPCR_BYPASS_PMIC_READY     (0x1 << 2)
+#define BM_CLPCR_ARM_CLK_DIS_ON_LPM    (0x1 << 5)
+#define BM_CLPCR_SBYOS                 (0x1 << 6)
+#define BM_CLPCR_DIS_REF_OSC           (0x1 << 7)
+#define BM_CLPCR_VSTBY                 (0x1 << 8)
+#define BP_CLPCR_STBY_COUNT            9
+#define BM_CLPCR_STBY_COUNT            (0x3 << 9)
+#define BM_CLPCR_COSC_PWRDOWN          (0x1 << 11)
+#define BM_CLPCR_WB_PER_AT_LPM         (0x1 << 16)
+#define BM_CLPCR_WB_CORE_AT_LPM                (0x1 << 17)
+#define BM_CLPCR_BYP_MMDC_CH0_LPM_HS   (0x1 << 19)
+#define BM_CLPCR_BYP_MMDC_CH1_LPM_HS   (0x1 << 21)
+#define BM_CLPCR_MASK_CORE0_WFI                (0x1 << 22)
+#define BM_CLPCR_MASK_CORE1_WFI                (0x1 << 23)
+#define BM_CLPCR_MASK_CORE2_WFI                (0x1 << 24)
+#define BM_CLPCR_MASK_CORE3_WFI                (0x1 << 25)
+#define BM_CLPCR_MASK_SCU_IDLE         (0x1 << 26)
+#define BM_CLPCR_MASK_L2CC_IDLE                (0x1 << 27)
+
+#define CGPR                           0x64
+#define BM_CGPR_CHICKEN_BIT            (0x1 << 17)
+
+static void __iomem *ccm_base;
+
+void imx6q_set_chicken_bit(void)
+{
+       u32 val = readl_relaxed(ccm_base + CGPR);
+
+       val |= BM_CGPR_CHICKEN_BIT;
+       writel_relaxed(val, ccm_base + CGPR);
+}
+
+static void imx6q_enable_rbc(bool enable)
+{
+       u32 val;
+
+       /*
+        * need to mask all interrupts in GPC before
+        * operating RBC configurations
+        */
+       imx_gpc_mask_all();
+
+       /* configure RBC enable bit */
+       val = readl_relaxed(ccm_base + CCR);
+       val &= ~BM_CCR_RBC_EN;
+       val |= enable ? BM_CCR_RBC_EN : 0;
+       writel_relaxed(val, ccm_base + CCR);
+
+       /* configure RBC count */
+       val = readl_relaxed(ccm_base + CCR);
+       val &= ~BM_CCR_RBC_BYPASS_COUNT;
+       val |= enable ? BM_CCR_RBC_BYPASS_COUNT : 0;
+       writel(val, ccm_base + CCR);
+
+       /*
+        * need to delay at least 2 cycles of CKIL(32K)
+        * due to hardware design requirement, which is
+        * ~61us, here we use 65us for safe
+        */
+       udelay(65);
+
+       /* restore GPC interrupt mask settings */
+       imx_gpc_restore_all();
+}
+
+static void imx6q_enable_wb(bool enable)
+{
+       u32 val;
+
+       /* configure well bias enable bit */
+       val = readl_relaxed(ccm_base + CLPCR);
+       val &= ~BM_CLPCR_WB_PER_AT_LPM;
+       val |= enable ? BM_CLPCR_WB_PER_AT_LPM : 0;
+       writel_relaxed(val, ccm_base + CLPCR);
+
+       /* configure well bias count */
+       val = readl_relaxed(ccm_base + CCR);
+       val &= ~BM_CCR_WB_COUNT;
+       val |= enable ? BM_CCR_WB_COUNT : 0;
+       writel_relaxed(val, ccm_base + CCR);
+}
+
+int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode)
+{
+       struct irq_desc *iomuxc_irq_desc;
+       u32 val = readl_relaxed(ccm_base + CLPCR);
+
+       val &= ~BM_CLPCR_LPM;
+       switch (mode) {
+       case WAIT_CLOCKED:
+               break;
+       case WAIT_UNCLOCKED:
+               val |= 0x1 << BP_CLPCR_LPM;
+               val |= BM_CLPCR_ARM_CLK_DIS_ON_LPM;
+               break;
+       case STOP_POWER_ON:
+               val |= 0x2 << BP_CLPCR_LPM;
+               break;
+       case WAIT_UNCLOCKED_POWER_OFF:
+               val |= 0x1 << BP_CLPCR_LPM;
+               val &= ~BM_CLPCR_VSTBY;
+               val &= ~BM_CLPCR_SBYOS;
+               break;
+       case STOP_POWER_OFF:
+               val |= 0x2 << BP_CLPCR_LPM;
+               val |= 0x3 << BP_CLPCR_STBY_COUNT;
+               val |= BM_CLPCR_VSTBY;
+               val |= BM_CLPCR_SBYOS;
+               if (cpu_is_imx6sl()) {
+                       val |= BM_CLPCR_BYPASS_PMIC_READY;
+                       val |= BM_CLPCR_BYP_MMDC_CH0_LPM_HS;
+               } else {
+                       val |= BM_CLPCR_BYP_MMDC_CH1_LPM_HS;
+               }
+               break;
+       default:
+               return -EINVAL;
+       }
+
+       /*
+        * Unmask the always pending IOMUXC interrupt #32 as wakeup source to
+        * deassert dsm_request signal, so that we can ensure dsm_request
+        * is not asserted when we're going to write CLPCR register to set LPM.
+        * After setting up LPM bits, we need to mask this wakeup source.
+        */
+       iomuxc_irq_desc = irq_to_desc(32);
+       imx_gpc_irq_unmask(&iomuxc_irq_desc->irq_data);
+       writel_relaxed(val, ccm_base + CLPCR);
+       imx_gpc_irq_mask(&iomuxc_irq_desc->irq_data);
+
+       return 0;
+}
+
 static int imx6q_suspend_finish(unsigned long val)
 {
        cpu_do_idle();
@@ -33,14 +180,19 @@ static int imx6q_pm_enter(suspend_state_t state)
        switch (state) {
        case PM_SUSPEND_MEM:
                imx6q_set_lpm(STOP_POWER_OFF);
+               imx6q_enable_wb(true);
+               imx6q_enable_rbc(true);
                imx_gpc_pre_suspend();
                imx_anatop_pre_suspend();
                imx_set_cpu_jump(0, v7_cpu_resume);
                /* Zzz ... */
                cpu_suspend(0, imx6q_suspend_finish);
-               imx_smp_prepare();
+               if (cpu_is_imx6q() || cpu_is_imx6dl())
+                       imx_smp_prepare();
                imx_anatop_post_resume();
                imx_gpc_post_resume();
+               imx6q_enable_rbc(false);
+               imx6q_enable_wb(false);
                imx6q_set_lpm(WAIT_CLOCKED);
                break;
        default:
@@ -55,7 +207,29 @@ static const struct platform_suspend_ops imx6q_pm_ops = {
        .valid = suspend_valid_only_mem,
 };
 
+void __init imx6q_pm_set_ccm_base(void __iomem *base)
+{
+       ccm_base = base;
+}
+
 void __init imx6q_pm_init(void)
 {
+       struct regmap *gpr;
+
+       WARN_ON(!ccm_base);
+
+       /*
+        * Force IOMUXC irq pending, so that the interrupt to GPC can be
+        * used to deassert dsm_request signal when the signal gets
+        * asserted unexpectedly.
+        */
+       gpr = syscon_regmap_lookup_by_compatible("fsl,imx6q-iomuxc-gpr");
+       if (!IS_ERR(gpr))
+               regmap_update_bits(gpr, IOMUXC_GPR1, IMX6Q_GPR1_GINT,
+                                  IMX6Q_GPR1_GINT);
+
+       /* Set initial power mode */
+       imx6q_set_lpm(WAIT_CLOCKED);
+
        suspend_set_ops(&imx6q_pm_ops);
 }
index 10a6b1a8c5acee611c2ae0c74766866b70cffd67..4754373e7e7d3a97b29e5af8a143bb27379bb9a5 100644 (file)
@@ -91,6 +91,7 @@ void imx_enable_cpu(int cpu, bool enable)
        spin_lock(&scr_lock);
        val = readl_relaxed(src_base + SRC_SCR);
        val = enable ? val | mask : val & ~mask;
+       val |= 1 << (BP_SRC_SCR_CORE1_RST + cpu - 1);
        writel_relaxed(val, src_base + SRC_SCR);
        spin_unlock(&scr_lock);
 }
index 80c177c36c5f25665ada2fbf93cf2ac4b007eee6..e6edcd38b282fdaa74027731841c187ed93cda4d 100644 (file)
@@ -42,6 +42,9 @@ void mxc_restart(enum reboot_mode mode, const char *cmd)
 {
        unsigned int wcr_enable;
 
+       if (cpu_is_imx6q() || cpu_is_imx6dl())
+               imx_src_prepare_restart();
+
        if (wdog_clk)
                clk_enable(wdog_clk);
 
@@ -52,6 +55,8 @@ void mxc_restart(enum reboot_mode mode, const char *cmd)
 
        /* Assert SRS signal */
        __raw_writew(wcr_enable, wdog_base);
+       /* write twice to ensure the request will not get ignored */
+       __raw_writew(wcr_enable, wdog_base);
 
        /* wait for reset to assert... */
        mdelay(500);
index cd46529e9eaa1a8925129370fb25476a861908e8..9b6638aadeaa8958069f018c734c077593410044 100644 (file)
@@ -250,7 +250,7 @@ static irqreturn_t mxc_timer_interrupt(int irq, void *dev_id)
 
 static struct irqaction mxc_timer_irq = {
        .name           = "i.MX Timer Tick",
-       .flags          = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
+       .flags          = IRQF_TIMER | IRQF_IRQPOLL,
        .handler        = mxc_timer_interrupt,
 };
 
index cc511a4890a3a94c98e529843400b043b93e4614..1dc5acd4fc99bb7f0001217214d53199dd89174d 100644 (file)
@@ -330,6 +330,11 @@ static void __init crystalfontz_init(void)
        update_fec_mac_prop(OUI_CRYSTALFONTZ);
 }
 
+static void __init m28cu3_init(void)
+{
+       update_fec_mac_prop(OUI_DENX);
+}
+
 static const char __init *mxs_get_soc_id(void)
 {
        struct device_node *np;
@@ -457,6 +462,8 @@ static void __init mxs_machine_init(void)
                apx4devkit_init();
        else if (of_machine_is_compatible("crystalfontz,cfa10036"))
                crystalfontz_init();
+       else if (of_machine_is_compatible("msr,m28cu3"))
+               m28cu3_init();
 
        of_platform_populate(NULL, of_default_bus_match_table,
                             NULL, parent);
index e00e9f362fd50641e3dbf79722e06cfa9a752fb5..b6d36b38b99c3a055fd15a8b50ded667745f9c5a 100644 (file)
 #define IMX6Q_GPR13_SATA_TX_LVL_1_240_V                (0x1f << 2)
 #define IMX6Q_GPR13_SATA_MPLL_CLK_EN           BIT(1)
 #define IMX6Q_GPR13_SATA_TX_EDGE_RATE          BIT(0)
+
+/* For imx6sl iomux gpr register field define */
+#define IMX6SL_GPR1_FEC_CLOCK_MUX1_SEL_MASK    (0x3 << 17)
+#define IMX6SL_GPR1_FEC_CLOCK_MUX2_SEL_MASK    (0x1 << 14)
+
 #endif /* __LINUX_IMX6Q_IOMUXC_GPR_H */