diff options
Diffstat (limited to 'recipes-kernel/linux/linux-imx-3.10.17/0009-ENGR00301078-2-ARM-dts-imx6sl-evk-add-support-for-pf.patch')
-rw-r--r-- | recipes-kernel/linux/linux-imx-3.10.17/0009-ENGR00301078-2-ARM-dts-imx6sl-evk-add-support-for-pf.patch | 1202 |
1 files changed, 1202 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-imx-3.10.17/0009-ENGR00301078-2-ARM-dts-imx6sl-evk-add-support-for-pf.patch b/recipes-kernel/linux/linux-imx-3.10.17/0009-ENGR00301078-2-ARM-dts-imx6sl-evk-add-support-for-pf.patch new file mode 100644 index 0000000..326e0a7 --- /dev/null +++ b/recipes-kernel/linux/linux-imx-3.10.17/0009-ENGR00301078-2-ARM-dts-imx6sl-evk-add-support-for-pf.patch @@ -0,0 +1,1202 @@ +From 3082ee40d024412e8c275f1945e4a06a638e81bb Mon Sep 17 00:00:00 2001 +From: Robin Gong <b38343@freescale.com> +Date: Thu, 6 Mar 2014 19:36:02 +0800 +Subject: [PATCH 09/10] ENGR00301078-2: ARM: dts: imx6sl-evk: add support for + pfuze200 on imx6sl-evk +Organization: O.S. Systems Software LTDA. + +move pmic device node from imx6sl-evk.dtsi to upper-level, and add +another layer on imx6sl-evk to diff pfuze100 or pfuze200. Meanwhile +only works in ldo-enable mode if using pfuze200, since 'SW1C' switch +regulator is cut for cost-down which means VDDARM_IN and VDDSOC_IN have +to share the same switch regulator + +Signed-off-by: Robin Gong <b38343@freescale.com> + +Upstream-Status: Pending +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/imx6sl-evk-common.dtsi | 504 +++++++++++++++++++++++++++++++ + arch/arm/boot/dts/imx6sl-evk-pf200.dts | 122 ++++++++ + arch/arm/boot/dts/imx6sl-evk.dts | 497 +----------------------------- + 4 files changed, 630 insertions(+), 494 deletions(-) + create mode 100644 arch/arm/boot/dts/imx6sl-evk-common.dtsi + create mode 100644 arch/arm/boot/dts/imx6sl-evk-pf200.dts + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index c744cda..c5f9a19 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -135,6 +135,7 @@ dtb-$(CONFIG_ARCH_MXC) += \ + imx6sl-evk.dtb \ + imx6sl-evk-csi.dtb \ + imx6sl-evk-ldo.dtb \ ++ imx6sl-evk-pf200.dtb \ + vf610-twr.dtb + dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ + imx23-olinuxino.dtb \ +diff --git a/arch/arm/boot/dts/imx6sl-evk-common.dtsi b/arch/arm/boot/dts/imx6sl-evk-common.dtsi +new file mode 100644 +index 0000000..a1a3969 +--- /dev/null ++++ b/arch/arm/boot/dts/imx6sl-evk-common.dtsi +@@ -0,0 +1,504 @@ ++/* ++ * Copyright (C) 2014 Freescale Semiconductor, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++/ { ++ memory { ++ reg = <0x80000000 0x40000000>; ++ }; ++ ++ battery: max8903@0 { ++ compatible = "fsl,max8903-charger"; ++ pinctrl-names = "default"; ++ dok_input = <&gpio4 13 1>; ++ uok_input = <&gpio4 13 1>; ++ chg_input = <&gpio4 15 1>; ++ flt_input = <&gpio4 14 1>; ++ fsl,dcm_always_high; ++ fsl,dc_valid; ++ fsl,adc_disable; ++ status = "okay"; ++ }; ++ ++ regulators { ++ compatible = "simple-bus"; ++ ++ reg_lcd_3v3: lcd-3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "lcd-3v3"; ++ gpio = <&gpio4 3 0>; ++ enable-active-high; ++ }; ++ ++ reg_aud3v: wm8962_supply_3v15 { ++ compatible = "regulator-fixed"; ++ regulator-name = "wm8962-supply-3v15"; ++ regulator-min-microvolt = <3150000>; ++ regulator-max-microvolt = <3150000>; ++ regulator-boot-on; ++ }; ++ ++ reg_aud4v: wm8962_supply_4v2 { ++ compatible = "regulator-fixed"; ++ regulator-name = "wm8962-supply-4v2"; ++ regulator-min-microvolt = <4325000>; ++ regulator-max-microvolt = <4325000>; ++ regulator-boot-on; ++ }; ++ ++ 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; ++ }; ++ }; ++ ++ backlight { ++ compatible = "pwm-backlight"; ++ pwms = <&pwm1 0 5000000>; ++ brightness-levels = <0 4 8 16 32 64 128 255>; ++ default-brightness-level = <6>; ++ }; ++ ++ csi_v4l2_cap { ++ compatible = "fsl,imx6sl-csi-v4l2"; ++ status = "disabled"; ++ }; ++ ++ pxp_v4l2_out { ++ compatible = "fsl,imx6sl-pxp-v4l2"; ++ status = "okay"; ++ }; ++ ++ sound { ++ compatible = "fsl,imx6q-sabresd-wm8962", ++ "fsl,imx-audio-wm8962"; ++ model = "wm8962-audio"; ++ ssi-controller = <&ssi2>; ++ audio-codec = <&codec>; ++ audio-routing = ++ "Headphone Jack", "HPOUTL", ++ "Headphone Jack", "HPOUTR", ++ "Ext Spk", "SPKOUTL", ++ "Ext Spk", "SPKOUTR", ++ "AMIC", "MICBIAS", ++ "IN3R", "AMIC"; ++ amic-mono; ++ mux-int-port = <2>; ++ mux-ext-port = <3>; ++ hp-det-gpios = <&gpio4 19 1>; ++ }; ++ ++ sound-spdif { ++ compatible = "fsl,imx-audio-spdif", ++ "fsl,imx6sl-evk-spdif"; ++ model = "imx-spdif"; ++ spdif-controller = <&spdif>; ++ spdif-out; ++ }; ++ ++ sii902x_reset: sii902x-reset { ++ compatible = "gpio-reset"; ++ reset-gpios = <&gpio2 19 1>; ++ reset-delay-us = <100000>; ++ #reset-cells = <0>; ++ }; ++}; ++ ++&audmux { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_audmux_1>; ++ status = "okay"; ++}; ++ ++&csi { ++ status = "disabled"; ++}; ++ ++&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>; ++ }; ++}; ++ ++&epdc { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_epdc_0>; ++ V3P3-supply = <&V3P3_reg>; ++ VCOM-supply = <&VCOM_reg>; ++ DISPLAY-supply = <&DISPLAY_reg>; ++ status = "okay"; ++}; ++ ++&cpu0 { ++ arm-supply = <&sw1a_reg>; ++ soc-supply = <&sw1c_reg>; ++ pu-supply = <&pu_dummy>; /* use pu_dummy if VDDSOC share with VDDPU */ ++}; ++ ++&fec { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&pinctrl_fec_1>; ++ pinctrl-1 = <&pinctrl_fec_1_sleep>; ++ phy-mode = "rmii"; ++ phy-reset-gpios = <&gpio4 21 0>; /* GPIO4_21 */ ++ phy-reset-duration = <1>; ++ 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_dummy>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */ ++}; ++ ++&gpu { ++ pu-supply = <&pu_dummy>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */ ++}; ++ ++&i2c1 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c1_1>; ++ status = "okay"; ++ ++ elan@10 { ++ compatible = "elan,elan-touch"; ++ reg = <0x10>; ++ interrupt-parent = <&gpio2>; ++ interrupts = <10 2>; ++ gpio_elan_cs = <&gpio2 9 0>; ++ gpio_elan_rst = <&gpio4 4 0>; ++ gpio_intr = <&gpio2 10 0>; ++ status = "okay"; ++ }; ++ ++ max17135@48 { ++ compatible = "maxim,max17135"; ++ reg = <0x48>; ++ vneg_pwrup = <1>; ++ gvee_pwrup = <2>; ++ vpos_pwrup = <10>; ++ gvdd_pwrup = <12>; ++ gvdd_pwrdn = <1>; ++ vpos_pwrdn = <2>; ++ gvee_pwrdn = <8>; ++ vneg_pwrdn = <10>; ++ gpio_pmic_pwrgood = <&gpio2 13 0>; ++ gpio_pmic_vcom_ctrl = <&gpio2 3 0>; ++ gpio_pmic_wakeup = <&gpio2 14 0>; ++ gpio_pmic_v3p3 = <&gpio2 7 0>; ++ gpio_pmic_intr = <&gpio2 12 0>; ++ ++ regulators { ++ DISPLAY_reg: DISPLAY { ++ regulator-name = "DISPLAY"; ++ }; ++ ++ GVDD_reg: GVDD { ++ /* 20v */ ++ regulator-name = "GVDD"; ++ }; ++ ++ GVEE_reg: GVEE { ++ /* -22v */ ++ regulator-name = "GVEE"; ++ }; ++ ++ HVINN_reg: HVINN { ++ /* -22v */ ++ regulator-name = "HVINN"; ++ }; ++ ++ HVINP_reg: HVINP { ++ /* 20v */ ++ regulator-name = "HVINP"; ++ }; ++ ++ VCOM_reg: VCOM { ++ regulator-name = "VCOM"; ++ /* 2's-compliment, -4325000 */ ++ regulator-min-microvolt = <0xffbe0178>; ++ /* 2's-compliment, -500000 */ ++ regulator-max-microvolt = <0xfff85ee0>; ++ }; ++ ++ VNEG_reg: VNEG { ++ /* -15v */ ++ regulator-name = "VNEG"; ++ }; ++ ++ VPOS_reg: VPOS { ++ /* 15v */ ++ regulator-name = "VPOS"; ++ }; ++ ++ V3P3_reg: V3P3 { ++ regulator-name = "V3P3"; ++ }; ++ }; ++ }; ++ ++ mma8450@1c { ++ compatible = "fsl,mma8450"; ++ reg = <0x1c>; ++ }; ++}; ++ ++&i2c2 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c2_1>; ++ status = "okay"; ++ ++ codec: wm8962@1a { ++ compatible = "wlf,wm8962"; ++ reg = <0x1a>; ++ clocks = <&clks IMX6SL_CLK_EXTERN_AUDIO>; ++ DCVDD-supply = <&vgen3_reg>; ++ DBVDD-supply = <®_aud3v>; ++ AVDD-supply = <&vgen3_reg>; ++ CPVDD-supply = <&vgen3_reg>; ++ MICVDD-supply = <®_aud3v>; ++ PLLVDD-supply = <&vgen3_reg>; ++ SPKVDD1-supply = <®_aud4v>; ++ SPKVDD2-supply = <®_aud4v>; ++ amic-mono; ++ }; ++ ++ sii902x@39 { ++ compatible = "SiI,sii902x"; ++ interrupt-parent = <&gpio2>; ++ interrupts = <10 2>; ++ mode_str ="1280x720M@60"; ++ bits-per-pixel = <32>; ++ resets = <&sii902x_reset>; ++ reg = <0x39>; ++ }; ++}; ++ ++&i2c3 { ++ clock-frequency = <100000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c3_1>; ++ status = "disabled"; ++ ++ ov564x: ov564x@3c { ++ compatible = "ovti,ov564x"; ++ reg = <0x3c>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_csi_0>; ++ clocks = <&clks IMX6SL_CLK_CSI>; ++ clock-names = "csi_mclk"; ++ AVDD-supply = <&vgen6_reg>; /* 2.8v */ ++ DVDD-supply = <&vgen2_reg>; /* 1.5v*/ ++ pwn-gpios = <&gpio1 25 1>; ++ rst-gpios = <&gpio1 26 0>; ++ csi_id = <0>; ++ mclk = <24000000>; ++ mclk_source = <0>; ++ }; ++}; ++ ++&iomuxc { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&pinctrl_hog>; ++ pinctrl-1 = <&pinctrl_hog_sleep>; ++ ++ hog { ++ pinctrl_hog: hoggrp { ++ fsl,pins = < ++ MX6SL_PAD_KEY_ROW7__GPIO4_IO07 0x17059 ++ MX6SL_PAD_KEY_COL7__GPIO4_IO06 0x17059 ++ MX6SL_PAD_SD2_DAT7__GPIO5_IO00 0x17059 ++ MX6SL_PAD_SD2_DAT6__GPIO4_IO29 0x17059 ++ MX6SL_PAD_REF_CLK_32K__GPIO3_IO22 0x17059 ++ MX6SL_PAD_FEC_TX_CLK__GPIO4_IO21 0x80000000 ++ MX6SL_PAD_KEY_ROW5__GPIO4_IO03 0x110b0 ++ MX6SL_PAD_EPDC_VCOM0__GPIO2_IO03 0x80000000 ++ MX6SL_PAD_EPDC_PWRSTAT__GPIO2_IO13 0x80000000 ++ MX6SL_PAD_EPDC_PWRCTRL0__GPIO2_IO07 0x80000000 ++ MX6SL_PAD_EPDC_PWRWAKEUP__GPIO2_IO14 0x80000000 ++ MX6SL_PAD_EPDC_PWRINT__GPIO2_IO12 0x80000000 ++ MX6SL_PAD_EPDC_PWRCTRL3__GPIO2_IO10 0x170b0 ++ MX6SL_PAD_EPDC_PWRCTRL2__GPIO2_IO09 0x80000000 ++ MX6SL_PAD_KEY_COL6__GPIO4_IO04 0x110b0 ++ MX6SL_PAD_ECSPI2_MISO__GPIO4_IO14 0x17000 ++ MX6SL_PAD_ECSPI2_MOSI__GPIO4_IO13 0x17000 ++ MX6SL_PAD_ECSPI2_SS0__GPIO4_IO15 0x17000 ++ MX6SL_PAD_FEC_RX_ER__GPIO4_IO19 0x1b0b0 ++ MX6SL_PAD_LCD_RESET__GPIO2_IO19 0x1b0b0 ++ MX6SL_PAD_KEY_COL4__GPIO4_IO00 0x80000000 ++ MX6SL_PAD_KEY_COL5__GPIO4_IO02 0x80000000 ++ >; ++ }; ++ ++ pinctrl_hog_sleep: hoggrp_sleep { ++ fsl,pins = < ++ MX6SL_PAD_KEY_ROW5__GPIO4_IO03 0x3080 ++ MX6SL_PAD_KEY_COL6__GPIO4_IO04 0x3080 ++ MX6SL_PAD_LCD_RESET__GPIO2_IO19 0x3080 ++ >; ++ }; ++ }; ++}; ++ ++&kpp { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&pinctrl_kpp_1>; ++ pinctrl-1 = <&pinctrl_kpp_1_sleep>; ++ linux,keymap = < ++ 0x00000067 /* KEY_UP */ ++ 0x0001006c /* KEY_DOWN */ ++ 0x0002001c /* KEY_ENTER */ ++ 0x01000066 /* KEY_HOME */ ++ 0x0101006a /* KEY_RIGHT */ ++ 0x01020069 /* KEY_LEFT */ ++ 0x02000072 /* KEY_VOLUMEDOWN */ ++ 0x02010073 /* KEY_VOLUMEUP */ ++ >; ++ status = "okay"; ++}; ++ ++&lcdif { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_lcdif_dat_0 ++ &pinctrl_lcdif_ctrl_0>; ++ lcd-supply = <®_lcd_3v3>; ++ display = <&display>; ++ status = "okay"; ++ ++ display: display { ++ bits-per-pixel = <16>; ++ bus-width = <24>; ++ ++ display-timings { ++ native-mode = <&timing0>; ++ timing0: timing0 { ++ clock-frequency = <33500000>; ++ hactive = <800>; ++ vactive = <480>; ++ hback-porch = <89>; ++ hfront-porch = <164>; ++ vback-porch = <23>; ++ vfront-porch = <10>; ++ hsync-len = <10>; ++ vsync-len = <10>; ++ hsync-active = <0>; ++ vsync-active = <0>; ++ de-active = <1>; ++ pixelclk-active = <0>; ++ }; ++ }; ++ }; ++}; ++ ++&pwm1 { ++ pinctrl-names = "default", "sleep"; ++ pinctrl-0 = <&pinctrl_pwm1_0>; ++ pinctrl-1 = <&pinctrl_pwm1_0_sleep>; ++ status = "okay"; ++}; ++ ++&pxp { ++ status = "okay"; ++}; ++ ++&spdif { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_spdif_1>; ++ status = "okay"; ++}; ++ ++&ssi2 { ++ fsl,mode = "i2s-slave"; ++ status = "okay"; ++}; ++ ++&uart1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart1_1>; ++ status = "okay"; ++}; ++ ++&usbotg1 { ++ vbus-supply = <®_usb_otg1_vbus>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usbotg1_1>; ++ disable-over-current; ++ imx6-usb-charger-detection; ++ status = "okay"; ++}; ++ ++&usbotg2 { ++ vbus-supply = <®_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>; ++ keep-power-in-suspend; ++ enable-sdio-wakeup; ++ status = "okay"; ++}; ++ ++&usdhc2 { ++ 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>; ++ keep-power-in-suspend; ++ enable-sdio-wakeup; ++ status = "okay"; ++}; ++ ++&usdhc3 { ++ 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>; ++ keep-power-in-suspend; ++ enable-sdio-wakeup; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/imx6sl-evk-pf200.dts b/arch/arm/boot/dts/imx6sl-evk-pf200.dts +new file mode 100644 +index 0000000..55d3081 +--- /dev/null ++++ b/arch/arm/boot/dts/imx6sl-evk-pf200.dts +@@ -0,0 +1,122 @@ ++/* ++ * Copyright (C) 2013-2014 Freescale Semiconductor, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++/dts-v1/; ++ ++#include "imx6sl.dtsi" ++#include "imx6sl-evk-common.dtsi" ++ ++/ { ++ model = "Freescale i.MX6 SoloLite EVK Board(PFUZE200)"; ++ compatible = "fsl,imx6sl-evk", "fsl,imx6sl"; ++}; ++ ++&cpu0 { ++ arm-supply = <®_arm>; ++ soc-supply = <®_soc>; ++ pu-supply = <®_pu>; /* use pu_dummy if VDDSOC share with VDDPU */ ++}; ++ ++&gpc { ++ fsl,ldo-bypass = <0>; /* 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 */ ++}; ++ ++&i2c1 { ++ pmic: pfuze200@08 { ++ compatible = "fsl,pfuze200"; ++ reg = <0x08>; ++ ++ regulators { ++ sw1a_reg: sw1ab { ++ regulator-min-microvolt = <300000>; ++ regulator-max-microvolt = <1875000>; ++ regulator-boot-on; ++ regulator-always-on; ++ regulator-ramp-delay = <6250>; ++ }; ++ ++ sw2_reg: sw2 { ++ regulator-min-microvolt = <800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-boot-on; ++ regulator-always-on; ++ }; ++ ++ sw3a_reg: sw3a { ++ regulator-min-microvolt = <400000>; ++ regulator-max-microvolt = <1975000>; ++ regulator-boot-on; ++ regulator-always-on; ++ }; ++ ++ sw3b_reg: sw3b { ++ regulator-min-microvolt = <400000>; ++ regulator-max-microvolt = <1975000>; ++ regulator-boot-on; ++ regulator-always-on; ++ }; ++ ++ swbst_reg: swbst { ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5150000>; ++ }; ++ ++ snvs_reg: vsnvs { ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-boot-on; ++ regulator-always-on; ++ }; ++ ++ vref_reg: vrefddr { ++ regulator-boot-on; ++ regulator-always-on; ++ }; ++ ++ vgen1_reg: vgen1 { ++ regulator-min-microvolt = <800000>; ++ regulator-max-microvolt = <1550000>; ++ }; ++ ++ vgen2_reg: vgen2 { ++ regulator-min-microvolt = <800000>; ++ regulator-max-microvolt = <1550000>; ++ }; ++ ++ vgen3_reg: vgen3 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ }; ++ ++ vgen4_reg: vgen4 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ }; ++ ++ vgen5_reg: vgen5 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ }; ++ ++ vgen6_reg: vgen6 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ }; ++ }; ++ }; ++}; +diff --git a/arch/arm/boot/dts/imx6sl-evk.dts b/arch/arm/boot/dts/imx6sl-evk.dts +index 4966f38..ed0ce89 100644 +--- a/arch/arm/boot/dts/imx6sl-evk.dts ++++ b/arch/arm/boot/dts/imx6sl-evk.dts +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2013 Freescale Semiconductor, Inc. ++ * Copyright (C) 2013-2014 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as +@@ -9,195 +9,14 @@ + /dts-v1/; + + #include "imx6sl.dtsi" ++#include "imx6sl-evk-common.dtsi" + + / { +- model = "Freescale i.MX6 SoloLite EVK Board"; ++ model = "Freescale i.MX6 SoloLite EVK Board(PFUZE100)"; + compatible = "fsl,imx6sl-evk", "fsl,imx6sl"; +- +- memory { +- reg = <0x80000000 0x40000000>; +- }; +- +- battery: max8903@0 { +- compatible = "fsl,max8903-charger"; +- pinctrl-names = "default"; +- dok_input = <&gpio4 13 1>; +- uok_input = <&gpio4 13 1>; +- chg_input = <&gpio4 15 1>; +- flt_input = <&gpio4 14 1>; +- fsl,dcm_always_high; +- fsl,dc_valid; +- fsl,adc_disable; +- status = "okay"; +- }; +- regulators { +- compatible = "simple-bus"; +- +- reg_lcd_3v3: lcd-3v3 { +- compatible = "regulator-fixed"; +- regulator-name = "lcd-3v3"; +- gpio = <&gpio4 3 0>; +- enable-active-high; +- }; +- +- reg_aud3v: wm8962_supply_3v15 { +- compatible = "regulator-fixed"; +- regulator-name = "wm8962-supply-3v15"; +- regulator-min-microvolt = <3150000>; +- regulator-max-microvolt = <3150000>; +- regulator-boot-on; +- }; +- +- reg_aud4v: wm8962_supply_4v2 { +- compatible = "regulator-fixed"; +- regulator-name = "wm8962-supply-4v2"; +- regulator-min-microvolt = <4325000>; +- regulator-max-microvolt = <4325000>; +- regulator-boot-on; +- }; +- +- 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; +- }; +- }; +- +- backlight { +- compatible = "pwm-backlight"; +- pwms = <&pwm1 0 5000000>; +- brightness-levels = <0 4 8 16 32 64 128 255>; +- default-brightness-level = <6>; +- }; +- +- csi_v4l2_cap { +- compatible = "fsl,imx6sl-csi-v4l2"; +- status = "disabled"; +- }; +- +- pxp_v4l2_out { +- compatible = "fsl,imx6sl-pxp-v4l2"; +- status = "okay"; +- }; +- +- sound { +- compatible = "fsl,imx6q-sabresd-wm8962", +- "fsl,imx-audio-wm8962"; +- model = "wm8962-audio"; +- ssi-controller = <&ssi2>; +- audio-codec = <&codec>; +- audio-routing = +- "Headphone Jack", "HPOUTL", +- "Headphone Jack", "HPOUTR", +- "Ext Spk", "SPKOUTL", +- "Ext Spk", "SPKOUTR", +- "AMIC", "MICBIAS", +- "IN3R", "AMIC"; +- amic-mono; +- mux-int-port = <2>; +- mux-ext-port = <3>; +- hp-det-gpios = <&gpio4 19 1>; +- }; +- +- sound-spdif { +- compatible = "fsl,imx-audio-spdif", +- "fsl,imx6sl-evk-spdif"; +- model = "imx-spdif"; +- spdif-controller = <&spdif>; +- spdif-out; +- }; +- +- sii902x_reset: sii902x-reset { +- compatible = "gpio-reset"; +- reset-gpios = <&gpio2 19 1>; +- reset-delay-us = <100000>; +- #reset-cells = <0>; +- }; +-}; +- +-&audmux { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_audmux_1>; +- status = "okay"; +-}; +- +-&csi { +- status = "disabled"; +-}; +- +-&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>; +- }; +-}; +- +-&epdc { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_epdc_0>; +- V3P3-supply = <&V3P3_reg>; +- VCOM-supply = <&VCOM_reg>; +- DISPLAY-supply = <&DISPLAY_reg>; +- status = "okay"; +-}; +- +-&cpu0 { +- arm-supply = <&sw1a_reg>; +- soc-supply = <&sw1c_reg>; +- pu-supply = <&pu_dummy>; /* use pu_dummy if VDDSOC share with VDDPU */ +-}; +- +-&fec { +- pinctrl-names = "default", "sleep"; +- pinctrl-0 = <&pinctrl_fec_1>; +- pinctrl-1 = <&pinctrl_fec_1_sleep>; +- phy-mode = "rmii"; +- phy-reset-gpios = <&gpio4 21 0>; /* GPIO4_21 */ +- phy-reset-duration = <1>; +- 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_dummy>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */ +-}; +- +-&gpu { +- pu-supply = <&pu_dummy>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */ + }; + + &i2c1 { +- clock-frequency = <100000>; +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_i2c1_1>; +- status = "okay"; +- + pmic: pfuze100@08 { + compatible = "fsl,pfuze100"; + reg = <0x08>; +@@ -297,314 +116,4 @@ + }; + }; + }; +- +- elan@10 { +- compatible = "elan,elan-touch"; +- reg = <0x10>; +- interrupt-parent = <&gpio2>; +- interrupts = <10 2>; +- gpio_elan_cs = <&gpio2 9 0>; +- gpio_elan_rst = <&gpio4 4 0>; +- gpio_intr = <&gpio2 10 0>; +- status = "okay"; +- }; +- +- max17135@48 { +- compatible = "maxim,max17135"; +- reg = <0x48>; +- vneg_pwrup = <1>; +- gvee_pwrup = <2>; +- vpos_pwrup = <10>; +- gvdd_pwrup = <12>; +- gvdd_pwrdn = <1>; +- vpos_pwrdn = <2>; +- gvee_pwrdn = <8>; +- vneg_pwrdn = <10>; +- gpio_pmic_pwrgood = <&gpio2 13 0>; +- gpio_pmic_vcom_ctrl = <&gpio2 3 0>; +- gpio_pmic_wakeup = <&gpio2 14 0>; +- gpio_pmic_v3p3 = <&gpio2 7 0>; +- gpio_pmic_intr = <&gpio2 12 0>; +- +- regulators { +- DISPLAY_reg: DISPLAY { +- regulator-name = "DISPLAY"; +- }; +- +- GVDD_reg: GVDD { +- /* 20v */ +- regulator-name = "GVDD"; +- }; +- +- GVEE_reg: GVEE { +- /* -22v */ +- regulator-name = "GVEE"; +- }; +- +- HVINN_reg: HVINN { +- /* -22v */ +- regulator-name = "HVINN"; +- }; +- +- HVINP_reg: HVINP { +- /* 20v */ +- regulator-name = "HVINP"; +- }; +- +- VCOM_reg: VCOM { +- regulator-name = "VCOM"; +- /* 2's-compliment, -4325000 */ +- regulator-min-microvolt = <0xffbe0178>; +- /* 2's-compliment, -500000 */ +- regulator-max-microvolt = <0xfff85ee0>; +- }; +- +- VNEG_reg: VNEG { +- /* -15v */ +- regulator-name = "VNEG"; +- }; +- +- VPOS_reg: VPOS { +- /* 15v */ +- regulator-name = "VPOS"; +- }; +- +- V3P3_reg: V3P3 { +- regulator-name = "V3P3"; +- }; +- }; +- }; +- +- mma8450@1c { +- compatible = "fsl,mma8450"; +- reg = <0x1c>; +- }; +-}; +- +-&i2c2 { +- clock-frequency = <100000>; +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_i2c2_1>; +- status = "okay"; +- +- codec: wm8962@1a { +- compatible = "wlf,wm8962"; +- reg = <0x1a>; +- clocks = <&clks IMX6SL_CLK_EXTERN_AUDIO>; +- DCVDD-supply = <&vgen3_reg>; +- DBVDD-supply = <®_aud3v>; +- AVDD-supply = <&vgen3_reg>; +- CPVDD-supply = <&vgen3_reg>; +- MICVDD-supply = <®_aud3v>; +- PLLVDD-supply = <&vgen3_reg>; +- SPKVDD1-supply = <®_aud4v>; +- SPKVDD2-supply = <®_aud4v>; +- amic-mono; +- }; +- +- sii902x@39 { +- compatible = "SiI,sii902x"; +- interrupt-parent = <&gpio2>; +- interrupts = <10 2>; +- mode_str ="1280x720M@60"; +- bits-per-pixel = <32>; +- resets = <&sii902x_reset>; +- reg = <0x39>; +- }; +-}; +- +-&i2c3 { +- clock-frequency = <100000>; +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_i2c3_1>; +- status = "disabled"; +- +- ov564x: ov564x@3c { +- compatible = "ovti,ov564x"; +- reg = <0x3c>; +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_csi_0>; +- clocks = <&clks IMX6SL_CLK_CSI>; +- clock-names = "csi_mclk"; +- AVDD-supply = <&vgen6_reg>; /* 2.8v */ +- DVDD-supply = <&vgen2_reg>; /* 1.5v*/ +- pwn-gpios = <&gpio1 25 1>; +- rst-gpios = <&gpio1 26 0>; +- csi_id = <0>; +- mclk = <24000000>; +- mclk_source = <0>; +- }; +-}; +- +-&iomuxc { +- pinctrl-names = "default", "sleep"; +- pinctrl-0 = <&pinctrl_hog>; +- pinctrl-1 = <&pinctrl_hog_sleep>; +- +- hog { +- pinctrl_hog: hoggrp { +- fsl,pins = < +- MX6SL_PAD_KEY_ROW7__GPIO4_IO07 0x17059 +- MX6SL_PAD_KEY_COL7__GPIO4_IO06 0x17059 +- MX6SL_PAD_SD2_DAT7__GPIO5_IO00 0x17059 +- MX6SL_PAD_SD2_DAT6__GPIO4_IO29 0x17059 +- MX6SL_PAD_REF_CLK_32K__GPIO3_IO22 0x17059 +- MX6SL_PAD_FEC_TX_CLK__GPIO4_IO21 0x80000000 +- MX6SL_PAD_KEY_ROW5__GPIO4_IO03 0x110b0 +- MX6SL_PAD_EPDC_VCOM0__GPIO2_IO03 0x80000000 +- MX6SL_PAD_EPDC_PWRSTAT__GPIO2_IO13 0x80000000 +- MX6SL_PAD_EPDC_PWRCTRL0__GPIO2_IO07 0x80000000 +- MX6SL_PAD_EPDC_PWRWAKEUP__GPIO2_IO14 0x80000000 +- MX6SL_PAD_EPDC_PWRINT__GPIO2_IO12 0x80000000 +- MX6SL_PAD_EPDC_PWRCTRL3__GPIO2_IO10 0x170b0 +- MX6SL_PAD_EPDC_PWRCTRL2__GPIO2_IO09 0x80000000 +- MX6SL_PAD_KEY_COL6__GPIO4_IO04 0x110b0 +- MX6SL_PAD_ECSPI2_MISO__GPIO4_IO14 0x17000 +- MX6SL_PAD_ECSPI2_MOSI__GPIO4_IO13 0x17000 +- MX6SL_PAD_ECSPI2_SS0__GPIO4_IO15 0x17000 +- MX6SL_PAD_FEC_RX_ER__GPIO4_IO19 0x1b0b0 +- MX6SL_PAD_LCD_RESET__GPIO2_IO19 0x1b0b0 +- MX6SL_PAD_KEY_COL4__GPIO4_IO00 0x80000000 +- MX6SL_PAD_KEY_COL5__GPIO4_IO02 0x80000000 +- >; +- }; +- +- pinctrl_hog_sleep: hoggrp_sleep { +- fsl,pins = < +- MX6SL_PAD_KEY_ROW5__GPIO4_IO03 0x3080 +- MX6SL_PAD_KEY_COL6__GPIO4_IO04 0x3080 +- MX6SL_PAD_LCD_RESET__GPIO2_IO19 0x3080 +- >; +- }; +- }; +-}; +- +-&kpp { +- pinctrl-names = "default", "sleep"; +- pinctrl-0 = <&pinctrl_kpp_1>; +- pinctrl-1 = <&pinctrl_kpp_1_sleep>; +- linux,keymap = < +- 0x00000067 /* KEY_UP */ +- 0x0001006c /* KEY_DOWN */ +- 0x0002001c /* KEY_ENTER */ +- 0x01000066 /* KEY_HOME */ +- 0x0101006a /* KEY_RIGHT */ +- 0x01020069 /* KEY_LEFT */ +- 0x02000072 /* KEY_VOLUMEDOWN */ +- 0x02010073 /* KEY_VOLUMEUP */ +- >; +- status = "okay"; +-}; +- +-&lcdif { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_lcdif_dat_0 +- &pinctrl_lcdif_ctrl_0>; +- lcd-supply = <®_lcd_3v3>; +- display = <&display>; +- status = "okay"; +- +- display: display { +- bits-per-pixel = <16>; +- bus-width = <24>; +- +- display-timings { +- native-mode = <&timing0>; +- timing0: timing0 { +- clock-frequency = <33500000>; +- hactive = <800>; +- vactive = <480>; +- hback-porch = <89>; +- hfront-porch = <164>; +- vback-porch = <23>; +- vfront-porch = <10>; +- hsync-len = <10>; +- vsync-len = <10>; +- hsync-active = <0>; +- vsync-active = <0>; +- de-active = <1>; +- pixelclk-active = <0>; +- }; +- }; +- }; +-}; +- +-&pwm1 { +- pinctrl-names = "default", "sleep"; +- pinctrl-0 = <&pinctrl_pwm1_0>; +- pinctrl-1 = <&pinctrl_pwm1_0_sleep>; +- status = "okay"; +-}; +- +-&pxp { +- status = "okay"; +-}; +- +-&spdif { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_spdif_1>; +- status = "okay"; +-}; +- +-&ssi2 { +- fsl,mode = "i2s-slave"; +- status = "okay"; +-}; +- +-&uart1 { +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_uart1_1>; +- status = "okay"; +-}; +- +-&usbotg1 { +- vbus-supply = <®_usb_otg1_vbus>; +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_usbotg1_1>; +- disable-over-current; +- imx6-usb-charger-detection; +- status = "okay"; +-}; +- +-&usbotg2 { +- vbus-supply = <®_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>; +- keep-power-in-suspend; +- enable-sdio-wakeup; +- status = "okay"; +-}; +- +-&usdhc2 { +- 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>; +- keep-power-in-suspend; +- enable-sdio-wakeup; +- status = "okay"; +-}; +- +-&usdhc3 { +- 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>; +- keep-power-in-suspend; +- enable-sdio-wakeup; +- status = "okay"; + }; +-- +2.1.0 + |