/* * Copyright (C) 2014 Variscite, Ltd. All Rights Reserved * Donio Ron: ron.d@variscite.com * * Copyright 2012 Freescale Semiconductor, Inc. * Copyright 2011 Linaro Ltd. * * 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 * */ / { aliases { mxcfb0 = &mxcfb1; mxcfb1 = &mxcfb2; mxcfb2 = &mxcfb3; mxcfb3 = &mxcfb4; }; memory { reg = <0x10000000 0x40000000>; }; regulators { compatible = "simple-bus"; reg_usb_otg_vbus: usb_otg_vbus { compatible = "regulator-fixed"; regulator-name = "usb_otg_vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; enable-active-high; }; reg_usb_h1_vbus: usb_h1_vbus { compatible = "regulator-fixed"; regulator-name = "usb_h1_vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; }; reg_audio: tlv320aic3x_supply { compatible = "regulator-fixed"; regulator-name = "tlv320aic3x-supply"; enable-active-high; }; #if 0 reg_sensor: sensor_supply { compatible = "regulator-fixed"; regulator-name = "sensor-supply"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&gpio2 31 0>; startup-delay-us = <500>; enable-active-high; }; #endif reg_3p3v: 3p3v { compatible = "regulator-fixed"; regulator-name = "3P3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; wlcore { compatible = "wlcore"; gpio = <207>; /* The wl8 driver expects gpio to be an integer, so gpio6_17 is (6-1)*32+17=207 irq property must not be set as driver derives irq number from gpio if no irq set use edge irqs for suspend/resume */ platform-quirks = <1>; /* if a 12xx card is there, configure the clock to WL12XX_REFCLOCK_38_XTAL */ board-ref-clock = <4>; }; }; gpio-keys { compatible = "gpio-keys"; power { label = "Back"; gpios = <&gpio5 20 0>; linux,code = <158>; /* KEY_BACK */ }; }; sound { compatible = "fsl,imx6q-var-som-tlv320aic3x", "fsl,imx-audio-tlv320aic3x"; model = "tlv320aic3x-audio"; ssi-controller = <&ssi2>; audio-codec = <&codec>; audio-routing = /* Headphone connected to HPLOUT, HPROUT */ "Headphone Jack", "HPLOUT", "Headphone Jack", "HPROUT", /* Line Out connected to LLOUT, RLOUT */ "Line Out", "LLOUT", "Line Out", "RLOUT", /* Mic connected to (MIC3L | MIC3R) */ "Mic Bias", "MIC3L", "Mic Bias", "MIC3R", "Mic Jack", "Mic Bias", /* Line In connected to (LINE1L | LINE2L), (LINE1R | LINE2R) */ "Line In", "LINE1L", "Line In", "LINE2L", "Line In", "LINE1R", "Line In", "LINE2R"; mux-int-port = <2>; mux-ext-port = <3>; }; sound-hdmi { compatible = "fsl,imx6q-audio-hdmi", "fsl,imx-audio-hdmi"; model = "imx-audio-hdmi"; hdmi-controller = <&hdmi_audio>; }; mxcfb1: fb@0 { compatible = "fsl,mxc_sdc_fb"; disp_dev = "ldb"; interface_pix_fmt = "RGB24"; mode_str ="VAR-WVGA-CTW"; default_bpp = <16>; int_clk = <0>; late_init = <0>; status = "okay"; }; mxcfb2: fb@1 { compatible = "fsl,mxc_sdc_fb"; disp_dev = "hdmi"; interface_pix_fmt = "RGB24"; mode_str ="1920x1080M@60"; default_bpp = <24>; int_clk = <0>; late_init = <0>; status = "okay"; }; mxcfb3: fb@2 { compatible = "fsl,mxc_sdc_fb"; disp_dev = "lcd"; interface_pix_fmt = "RGB565"; mode_str ="CLAA-WVGA"; default_bpp = <16>; int_clk = <0>; late_init = <0>; status = "disabled"; }; mxcfb4: fb@3 { compatible = "fsl,mxc_sdc_fb"; disp_dev = "ldb"; interface_pix_fmt = "RGB666"; mode_str ="LDB-XGA"; default_bpp = <16>; int_clk = <0>; late_init = <0>; status = "disabled"; }; lcd@0 { compatible = "fsl,lcd"; ipu_id = <0>; disp_id = <0>; default_ifmt = "RGB565"; // pinctrl-names = "default"; // pinctrl-0 = <&pinctrl_ipu1_1>; status = "okay"; }; backlight { compatible = "pwm-backlight"; gpios = <&gpio4 30 1>; pwms = <&pwm4 0 5000000>; brightness-levels = <0 4 8 16 32 64 128 255>; default-brightness-level = <128>; }; v4l2_cap_0 { compatible = "fsl,imx6q-v4l2-capture"; ipu_id = <0>; csi_id = <1>; mclk_source = <0>; status = "okay"; }; v4l2_out { compatible = "fsl,mxc_v4l2_output"; status = "okay"; }; wlan { compatible = "ti,wilink6"; interrupt-parent = <&gpio6>; interrupts = <17 0>; clocks = <&refclock>; clock-names = "refclock"; refclock: refclock { compatible = "ti,wilink-clock"; #clock-cells = <0>; clock-frequency = <38400000>; }; }; wlan_bt_rfkill { compatible = "net,rfkill-gpio"; name = "wlan_bt_rfkill"; type = <2>; /* bluetooth */ gpios = <&gpio6 18 0>; }; #if 0 lvds_cabc_ctrl { lvds0-gpios = <&gpio6 15 0>; lvds1-gpios = <&gpio6 16 0>; }; #endif }; &audmux { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_audmux_2>; status = "okay"; }; &cpu0 { operating-points = < /* kHz uV */ 1200000 1275000 996000 1250000 852000 1250000 792000 1150000 396000 1150000 >; arm-supply = <&sw1a_reg>; soc-supply = <&sw1c_reg>; pu-supply = <&pu_dummy>; /* use pu_dummy if VDDSOC share with VDDPU */ }; #if 0 &ecspi3 { fsl,spi-num-chipselects = <0>; cs-gpios = <&gpio4 24 0>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ecspi3_1>; status = "okay"; ads7846@0 { reg = <0>; /* CS0 */ compatible = "ti,ads7846"; interrupt-parent = <&gpio4>; interrupts = <25 0>; spi-max-frequency = <1500000>; pendown-gpio = <&gpio4 25 0>; vcc-supply = <®_soc>; ti,x-min = /bits/ 16 <4200>; ti,x-max = /bits/ 16 <8080>; ti,y-min = /bits/ 16 <4330>; ti,y-max = /bits/ 16 <7980>; ti,x-plate-ohms = /bits/ 16 <180>; ti,pressure-max = /bits/ 16 <255>; ti,debounce-max = /bits/ 16 <10>; ti,debounce-tol = /bits/ 16 <3>; ti,debounce-rep = /bits/ 16 <1>; ti,settle-delay-usec = /bits/ 16 <150>; ti,keep-vref-on; linux,wakeup; }; }; #endif &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet_4>; phy-mode = "rgmii"; status = "okay"; }; &gpc { fsl,cpu_pupscr_sw2iso = <0xf>; fsl,cpu_pupscr_sw = <0xf>; fsl,cpu_pdnscr_iso2sw = <0x1>; fsl,cpu_pdnscr_iso = <0x1>; fsl,ldo-bypass = <1>; /* use ldo-bypass, u-boot will check it and configure */ fsl,wdog-reset = <1>; /* watchdog select of reset source */ pu-supply = <®_pu>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */ }; &gpu { pu-supply = <®_pu>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */ }; &vpu { pu-supply = <®_pu>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */ }; &hdmi_audio { status = "okay"; }; &hdmi_core { ipu_id = <0>; disp_id = <0>; status = "okay"; }; &hdmi_video { fsl,phy_reg_vlev = <0x0294>; fsl,phy_reg_cksymtx = <0x800d>; status = "okay"; }; &i2c1 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1_2>; status = "okay"; ov5640_mipi: ov5640_mipi@3c { compatible = "ovti,ov5640_mipi"; reg = <0x3c>; clocks = <&clks 200>; clock-names = "csi_mclk"; // DOVDD-supply = <&vgen4_reg>; /* 1.8v */ // AVDD-supply = <&vgen3_reg>; /* 2.8v, rev C board is VGEN3 rev B board is VGEN5 */ // DVDD-supply = <&vgen2_reg>; /* 1.5v*/ pwn-gpios = <&gpio3 13 1>; rst-gpios = <&gpio4 10 0>; csi_id = <1>; mclk = <24000000>; mclk_source = <0>; }; }; &i2c2 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2_2>; status = "okay"; hdmi: edid@50 { compatible = "fsl,imx6-hdmi-i2c"; reg = <0x50>; }; codec: tlv320aic3x@1b { compatible = "ti,tlv320aic3x"; reg = <0x1b>; clocks = <&clks 201>; clock-names = "clko_clk"; IOVDD-supply = <®_audio>; DVDD-supply = <®_audio>; AVDD-supply = <®_audio>; DRVDD-supply = <®_audio>; gpio-reset = <&gpio1 0 1>; gpio-cfg = < 0x0000 /* 0:Default */ 0x0000 /* 1:Default */ 0x0013 /* 2:FN_DMICCLK */ 0x0000 /* 3:Default */ 0x8014 /* 4:FN_DMICCDAT */ 0x0000 /* 5:Default */ >; }; 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 = <3300000>; regulator-boot-on; regulator-always-on; }; sw3a_reg: sw3a { regulator-min-microvolt = <800000>; regulator-max-microvolt = <3950000>; regulator-boot-on; regulator-always-on; }; sw3b_reg: sw3b { regulator-min-microvolt = <800000>; regulator-max-microvolt = <3950000>; regulator-boot-on; regulator-always-on; }; sw4_reg: sw4 { regulator-min-microvolt = <800000>; regulator-max-microvolt = <3950000>; }; snvs_reg: vsnvs { regulator-min-microvolt = <1200000>; 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 = <1800000>; regulator-max-microvolt = <3300000>; }; vgen3_reg: vgen3 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; vgen4_reg: vgen4 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; vgen5_reg: vgen5 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; vgen6_reg: vgen6 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; }; }; }; &i2c3 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c3_3>; status = "okay"; ctw6120_tsc@38 { compatible = "fsl,ctw6120-tsc"; // pinctrl-names = "default"; // pinctrl-0 = <&ctw6120_pins>; reg = <0x38>; interrupt-parent = <&gpio3>; interrupts = <7 0>; x-size = <800>; y-size = <480>; }; }; &iomuxc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hog_1>; hog { pinctrl_hog_1: hoggrp-1 { fsl,pins = < /* User Button */ MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x80000000 /* Backlight PWM */ MX6QDL_PAD_DISP0_DAT9__PWM2_OUT 0x1b0b1 /* Backlight enable */ MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x80000000 /* CTW6120 IRQ */ MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x80000000 /* Touch */ MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x80000000 /* touch panel CS */ MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25 0x80000000 /* touch panel irq */ /* for Bluetooth/wifi enable */ MX6QDL_PAD_SD3_DAT7__GPIO6_IO17 0x100b0 /* wl12xx_wl_irq */ // MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x000b0 /* wl12xx_wl_en */ MX6QDL_PAD_SD3_DAT6__GPIO6_IO18 0x000b0 /* wl12xx_bt_en */ /* SDMMC2 CD/WP */ MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x80000000 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x80000000 /* USBOTG ID pin */ // MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x80000000 /* PMIC INT */ MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x80000000 /* Wifi Slow Clock */ MX6QDL_PAD_ENET_RXD0__OSC32K_32K_OUT 0x000b0 /* WIFI Slow clock */ /* Audio Clock */ MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* Audio Codec Clock */ /* Camera Clock */ MX6QDL_PAD_GPIO_3__CCM_CLKO2 0x130b0 /* Camera MCLK */ >; }; pinctrl_pcie: pciegrp { fsl,pins = < /* PCIE */ MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x80000000 /* PCIE_DIS */ MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x80000000 /* PCIE_WAKEUP */ MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x80000000 /* PCIE_RST */ MX6QDL_PAD_SD4_DAT4__GPIO2_IO12 0x80000000 /* PCIE_PWR_ENA */ >; }; pinctrl_usbotg_var: usbotggrp-3 { fsl,pins = < MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x17059 >; }; }; }; &ldb { ipu_id = <1>; disp_id = <0>; ext_ref = <1>; mode = "sep0"; sec_ipu_id = <1>; sec_disp_id = <1>; status = "okay"; }; &mipi_csi { status = "okay"; ipu_id = <0>; csi_id = <1>; v_channel = <0>; lanes = <2>; }; &pcie { pinctrl-0 = <&pinctrl_pcie>; power-on-gpio = <&gpio2 12 0>; /* gpio pin number of power-enable signal */ reset-gpio = <&gpio5 13 0>; /* gpio pin number of power good signal */ wake-up-gpio = <&gpio3 22 1>; /* gpio pin number of incoming wakeup signal */ disable-gpio = <&gpio3 21 0>; /* gpio pin number of outgoing rfkill/endpoint disable signal */ status = "okay"; }; #if 0 &pwm1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm1_1>; status = "okay"; }; #endif &ssi2 { fsl,mode = "i2s-slave"; status = "okay"; }; /* Console Uart */ &uart1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1_1>; status = "okay"; }; /* Bluetooth Uart */ &uart2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart2_3>; fsl,uart-has-rtscts; status = "okay"; }; /* ttymxc2 UART */ &uart3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart3_2>; fsl,uart-has-rtscts; status = "okay"; }; &flexcan1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flexcan1_3>; status = "okay"; }; &gpmi { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpmi_nand_v1>; status = "okay"; partition@0 { label = "bootloader"; reg = <0x00000000 0x00200000>; }; partition@1 { label = "dtb"; reg = <0x001e0000 0x00020000>; }; partition@2 { label = "kernel"; reg = <0x00200000 0x00600000>; }; partition@3 { label = "rootfs"; reg = <0x00800000 0x1f800000>; }; }; &usbh1 { vbus-supply = <®_usb_h1_vbus>; status = "okay"; }; &usbotg { vbus-supply = <®_usb_otg_vbus>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbotg_var>; disable-over-current; status = "okay"; }; &usdhc2 { /* uSDHC2, MMC/SD card */ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usdhc2_2>; cd-gpios = <&gpio4 14 0>; wp-gpios = <&gpio4 15 0>; no-1-8-v; keep-power-in-suspend; enable-sdio-wakeup; status = "okay"; }; &usdhc3 { /* uSDHC3, TiWi wl1271 */ pinctrl-names = "default"; //, "state_100mhz", "state_200mhz"; pinctrl-0 = <&pinctrl_usdhc3_2>; keep-power-in-suspend; enable-sdio-wakeup; en-gpios = <&gpio7 8 0>; non-removable; cap-power-off-card; max-frequency = <24000000>; status = "okay"; };