|  | /* | 
|  | * 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 <dt-bindings/gpio/gpio.h> | 
|  | #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 { | 
|  | ethernet1 = ð1; | 
|  | i2c0 = &i2c1; | 
|  | i2c1 = &i2c2; | 
|  | i2c2 = &i2c3; | 
|  | led0 = &led0; | 
|  | led1 = &led1; | 
|  | led2 = &led2; | 
|  | ssi0 = &ssi1; | 
|  | spi0 = &ecspi1; | 
|  | usb0 = &usbh1; | 
|  | usb1 = &usbotg; | 
|  | }; | 
|  |  | 
|  | chosen { | 
|  | bootargs = "console=ttymxc1,115200"; | 
|  | }; | 
|  |  | 
|  | leds { | 
|  | compatible = "gpio-leds"; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_gpio_leds>; | 
|  |  | 
|  | led0: user1 { | 
|  | label = "user1"; | 
|  | gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 -> MX6_PANLEDG */ | 
|  | default-state = "on"; | 
|  | linux,default-trigger = "heartbeat"; | 
|  | }; | 
|  |  | 
|  | led1: user2 { | 
|  | label = "user2"; | 
|  | gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; /* 106 -> MX6_PANLEDR */ | 
|  | default-state = "off"; | 
|  | }; | 
|  |  | 
|  | led2: user3 { | 
|  | label = "user3"; | 
|  | gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* 111 -> MX6_LOCLED# */ | 
|  | default-state = "off"; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | memory { | 
|  | reg = <0x10000000 0x40000000>; | 
|  | }; | 
|  |  | 
|  | pps { | 
|  | compatible = "pps-gpio"; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_gpio_leds>; | 
|  | gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | regulators { | 
|  | compatible = "simple-bus"; | 
|  | #address-cells = <1>; | 
|  | #size-cells = <0>; | 
|  |  | 
|  | reg_1p0v: regulator@0 { | 
|  | compatible = "regulator-fixed"; | 
|  | reg = <0>; | 
|  | regulator-name = "1P0V"; | 
|  | regulator-min-microvolt = <1000000>; | 
|  | regulator-max-microvolt = <1000000>; | 
|  | regulator-always-on; | 
|  | }; | 
|  |  | 
|  | reg_3p3v: regulator@1 { | 
|  | compatible = "regulator-fixed"; | 
|  | reg = <1>; | 
|  | regulator-name = "3P3V"; | 
|  | regulator-min-microvolt = <3300000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  | regulator-always-on; | 
|  | }; | 
|  |  | 
|  | reg_usb_h1_vbus: regulator@2 { | 
|  | compatible = "regulator-fixed"; | 
|  | reg = <2>; | 
|  | regulator-name = "usb_h1_vbus"; | 
|  | regulator-min-microvolt = <5000000>; | 
|  | regulator-max-microvolt = <5000000>; | 
|  | regulator-always-on; | 
|  | }; | 
|  |  | 
|  | reg_usb_otg_vbus: regulator@3 { | 
|  | compatible = "regulator-fixed"; | 
|  | reg = <3>; | 
|  | regulator-name = "usb_otg_vbus"; | 
|  | regulator-min-microvolt = <5000000>; | 
|  | regulator-max-microvolt = <5000000>; | 
|  | gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; | 
|  | enable-active-high; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | sound { | 
|  | compatible = "fsl,imx6q-ventana-sgtl5000", | 
|  | "fsl,imx-audio-sgtl5000"; | 
|  | model = "sgtl5000-audio"; | 
|  | 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>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &ecspi1 { | 
|  | fsl,spi-num-chipselects = <1>; | 
|  | cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_ecspi1>; | 
|  | status = "okay"; | 
|  |  | 
|  | flash: m25p80@0 { | 
|  | compatible = "sst,w25q256", "jedec,spi-nor"; | 
|  | spi-max-frequency = <30000000>; | 
|  | reg = <0>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &fec { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_enet>; | 
|  | phy-mode = "rgmii-id"; | 
|  | phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &hdmi { | 
|  | ddc-i2c-bus = <&i2c3>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &i2c1 { | 
|  | clock-frequency = <100000>; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_i2c1>; | 
|  | 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>; | 
|  | }; | 
|  |  | 
|  | rtc: ds1672@68 { | 
|  | compatible = "dallas,ds1672"; | 
|  | reg = <0x68>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &i2c2 { | 
|  | clock-frequency = <100000>; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_i2c2>; | 
|  | 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; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &i2c3 { | 
|  | clock-frequency = <100000>; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_i2c3>; | 
|  | 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 = <®_3p3v>; | 
|  | }; | 
|  |  | 
|  | touchscreen: egalax_ts@04 { | 
|  | compatible = "eeti,egalax_ts"; | 
|  | reg = <0x04>; | 
|  | interrupt-parent = <&gpio7>; | 
|  | interrupts = <12 2>; | 
|  | wakeup-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &ldb { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &pcie { | 
|  | reset-gpio = <&gpio1 29 GPIO_ACTIVE_LOW>; | 
|  | status = "okay"; | 
|  |  | 
|  | eth1: sky2@8 { /* MAC/PHY on bus 8 */ | 
|  | compatible = "marvell,sky2"; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &ssi1 { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &uart1 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_uart1>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &uart2 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_uart2>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &uart5 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_uart5>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &usbotg { | 
|  | vbus-supply = <®_usb_otg_vbus>; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_usbotg>; | 
|  | disable-over-current; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &usbh1 { | 
|  | vbus-supply = <®_usb_h1_vbus>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &usdhc3 { | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&pinctrl_usdhc3>; | 
|  | cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; | 
|  | vmmc-supply = <®_3p3v>; | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &iomuxc { | 
|  | imx6q-gw5400-a { | 
|  |  | 
|  | pinctrl_audmux: audmuxgrp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_SD2_DAT0__AUD4_RXD		0x130b0 | 
|  | MX6QDL_PAD_SD2_DAT3__AUD4_TXC		0x130b0 | 
|  | MX6QDL_PAD_SD2_DAT2__AUD4_TXD		0x110b0 | 
|  | MX6QDL_PAD_SD2_DAT1__AUD4_TXFS		0x130b0 | 
|  | MX6QDL_PAD_GPIO_0__CCM_CLKO1		0x130b0 /* AUD4_MCK */ | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_ecspi1: ecspi1grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_EIM_D17__ECSPI1_MISO		0x100b1 | 
|  | MX6QDL_PAD_EIM_D18__ECSPI1_MOSI		0x100b1 | 
|  | MX6QDL_PAD_EIM_D16__ECSPI1_SCLK		0x100b1 | 
|  | MX6QDL_PAD_EIM_D19__GPIO3_IO19		0x1b0b0 /* SPINOR_CS0# */ | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_enet: enetgrp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b0b0 | 
|  | MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b0b0 | 
|  | MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0 | 
|  | MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0 | 
|  | MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0 | 
|  | MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_gpio_leds: gpioledsgrp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_KEY_COL0__GPIO4_IO06		0x1b0b0 /* user1 led */ | 
|  | MX6QDL_PAD_KEY_COL2__GPIO4_IO10		0x1b0b0 /* user2 led */ | 
|  | MX6QDL_PAD_KEY_ROW4__GPIO4_IO15		0x1b0b0 /* user3 led */ | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_i2c1: i2c1grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_EIM_D21__I2C1_SCL		0x4001b8b1 | 
|  | MX6QDL_PAD_EIM_D28__I2C1_SDA		0x4001b8b1 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_i2c2: i2c2grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1 | 
|  | MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_i2c3: i2c3grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_GPIO_3__I2C3_SCL		0x4001b8b1 | 
|  | MX6QDL_PAD_GPIO_6__I2C3_SDA		0x4001b8b1 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_pcie: pciegrp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28	0x1b0b0 /* PCIE IRQ */ | 
|  | MX6QDL_PAD_ENET_TXD1__GPIO1_IO29	0x1b0b0 /* PCIE RST */ | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_pps: ppsgrp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_GPIO_5__GPIO1_IO05		0x1b0b0 /* GPS_PPS */ | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_uart1: uart1grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA	0x1b0b1 | 
|  | MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA	0x1b0b1 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_uart2: uart2grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA	0x1b0b1 | 
|  | MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA	0x1b0b1 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_uart5: uart5grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_KEY_COL1__UART5_TX_DATA	0x1b0b1 | 
|  | MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA	0x1b0b1 | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_usbotg: usbotggrp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_GPIO_1__USB_OTG_ID		0x17059 | 
|  | MX6QDL_PAD_EIM_D22__GPIO3_IO22		0x1b0b0 /* OTG_PWR_EN */ | 
|  | >; | 
|  | }; | 
|  |  | 
|  | pinctrl_usdhc3: usdhc3grp { | 
|  | fsl,pins = < | 
|  | MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059 | 
|  | MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059 | 
|  | MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059 | 
|  | MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059 | 
|  | MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059 | 
|  | MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059 | 
|  | >; | 
|  | }; | 
|  | }; | 
|  | }; |