From 8d5f3e4f71972bca32b80889f2787942c7e3ed1f Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Thu, 16 Nov 2017 21:07:27 +0100 Subject: colibri_imx6ull: add dtb for wifi variant Add a device tree for the Colibri iMX6ULL 512MB Wi-Fi / BT. This is done by splitting out common nodes / properties into common *dtsi files and keep only the differences in a separate files. Signed-off-by: Max Krummenacher Acked-by: Stefan Agner --- arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts | 360 +------------------- arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi | 362 +++++++++++++++++++++ arch/arm/boot/dts/imx6ull-colibri-nonwifi.dtsi | 22 ++ arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts | 18 + arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi | 52 +++ arch/arm/boot/dts/imx6ull-colibri.dtsi | 53 ++- 7 files changed, 497 insertions(+), 373 deletions(-) create mode 100644 arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi create mode 100644 arch/arm/boot/dts/imx6ull-colibri-nonwifi.dtsi create mode 100644 arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts create mode 100644 arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index ed339ea6f518..0740405706ff 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -430,7 +430,8 @@ dtb-$(CONFIG_SOC_IMX6ULL) += \ imx6ull-9x9-evk.dtb \ imx6ull-9x9-evk-btwifi.dtb \ imx6ull-9x9-evk-ldo.dtb \ - imx6ull-colibri-eval-v3.dtb + imx6ull-colibri-eval-v3.dtb \ + imx6ull-colibri-wifi-eval-v3.dtb dtb-$(CONFIG_SOC_IMX6SLL) += \ imx6sll-lpddr2-arm2.dtb \ imx6sll-lpddr3-arm2.dtb \ diff --git a/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts index 45fb5e9a96b2..b782e30b006b 100644 --- a/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts +++ b/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts @@ -9,364 +9,10 @@ /dts-v1/; -#include "imx6ull-colibri.dtsi" +#include "imx6ull-colibri-nonwifi.dtsi" +#include "imx6ull-colibri-eval-v3.dtsi" / { - model = "Toradex Colibri iMX6ULL on Colibri Evaluation Board V3"; + model = "Toradex Colibri iMX6ULL 256MB on Colibri Evaluation Board V3"; compatible = "toradex,colibri_imx6ull-eval", "fsl,imx6ull"; - - chosen { - bootargs = "console=ttymxc0,115200"; - }; - - clocks { - /* fixed crystal dedicated to mpc258x */ - clk16m: clk@1 { - compatible = "fixed-clock"; - reg=<1>; - #clock-cells = <0>; - clock-frequency = <16000000>; - clock-output-names = "clk16m"; - }; - }; - - gpio-keys { - compatible = "gpio-keys"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_snvs_gpiokeys>; - - power { - label = "Wake-Up"; - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; - linux,code = ; - debounce-interval = <10>; - gpio-key,wakeup; - }; - }; - - extcon_usbc_det: usbc_det { - compatible = "linux,extcon-usb-gpio"; - debounce = <25>; - id-gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_snvs_usbc_det>; - }; - - reg_3v3: regulator-3v3 { - compatible = "regulator-fixed"; - regulator-name = "3.3V"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-always-on; - }; - - reg_5v0: regulator-5v0 { - compatible = "regulator-fixed"; - regulator-name = "5V"; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - }; - - reg_usbh_vbus: regulator-usbh-vbus { - compatible = "regulator-fixed"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usbh1_reg>; - regulator-name = "VCC_USB[1-4]"; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - gpio = <&gpio1 2 GPIO_ACTIVE_LOW>; - vin-supply = <®_5v0>; - }; -}; - -&bl { - brightness-levels = <0 4 8 16 32 64 128 255>; - default-brightness-level = <6>; - status = "okay"; -}; - -&adc1 { - status = "okay"; -}; - -&pxp { - status = "okay"; -}; - -&ecspi1 { - status = "okay"; - - mcp258x0: mcp258x@0 { - compatible = "microchip,mcp2515"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_can_int>; - reg = <0>; - clocks = <&clk16m>; - interrupt-parent = <&gpio2>; - interrupts = <4 IRQ_TYPE_EDGE_FALLING>; - spi-max-frequency = <10000000>; - status = "okay"; - }; - - spidev0: spidev@0 { - compatible = "toradex,evalspi"; - reg = <0>; - spi-max-frequency = <23000000>; - status = "disabled"; - }; -}; - -&i2c1 { - pinctrl-names = "default", "gpio"; - pinctrl-0 = <&pinctrl_i2c1>; - pinctrl-1 = <&pinctrl_i2c1_gpio>; - sda-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; - scl-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>; - status = "okay"; - - /* Atmel maxtouch controller */ - atmel_mxt_ts: atmel_mxt_ts@4a { - compatible = "atmel,maxtouch"; - reg = <0x4a>; - interrupt-parent = <&gpio5>; - interrupts = <4 IRQ_TYPE_EDGE_FALLING>; - status = "disabled"; - }; - - touch: touchrevf0710a@10 { - compatible = "touchrevolution,fusion-f0710a"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_gpiotouch>; - reg = <0x10>; - /* SODIMM 28, Pen down interrupt */ - gpios = <&gpio4 16 GPIO_ACTIVE_HIGH - /* SODIMM 30, Reset interrupt */ - &gpio2 5 GPIO_ACTIVE_LOW - >; - status = "disabled"; - }; - - /* M41T0M6 real time clock on carrier board */ - rtc: m41t0m6@68 { - compatible = "st,m41t0"; - reg = <0x68>; - }; -}; - -&iomuxc { - imx6ull-eval-v3 { - pinctrl_gpiotouch: touchgpios { - fsl,pins = < - MX6UL_PAD_NAND_DQS__GPIO4_IO16 0x74 - MX6UL_PAD_ENET1_TX_EN__GPIO2_IO05 0x14 - >; - }; - }; -}; - -&lcdif { - display = <&display0>; - status = "okay"; - - display0: lcd-display { - bits-per-pixel = <16>; - bus-width = <18>; - - display-timings { - native-mode = <&timing_vga>; - - /* Standard VGA timing */ - timing_vga: 640x480 { - clock-frequency = <25175000>; - hactive = <640>; - vactive = <480>; - hback-porch = <40>; - hfront-porch = <24>; - vback-porch = <32>; - vfront-porch = <11>; - hsync-len = <96>; - vsync-len = <2>; - - de-active = <1>; - hsync-active = <0>; - vsync-active = <0>; - pixelclk-active = <0>; - }; - - /* WVGA Timing, e.g. EDT ET070080DH6 */ - timing_wvga: 800x480 { - clock-frequency = <33260000>; - hactive = <800>; - vactive = <480>; - hback-porch = <216>; - hfront-porch = <40>; - vback-porch = <35>; - vfront-porch = <10>; - hsync-len = <128>; - vsync-len = <2>; - - de-active = <1>; - hsync-active = <0>; - vsync-active = <0>; - pixelclk-active = <0>; - }; - /* WVGA Timing, TouchRevolution Fusion 7" */ - timing_wvga2: 800x480pixclkact { - clock-frequency = <33260000>; - hactive = <800>; - vactive = <480>; - hback-porch = <216>; - hfront-porch = <40>; - vback-porch = <35>; - vfront-porch = <10>; - hsync-len = <128>; - vsync-len = <2>; - - de-active = <1>; - hsync-active = <0>; - vsync-active = <0>; - pixelclk-active = <1>; - }; - /* Standard SVGA timing */ - timing_svga: 800x600 { - clock-frequency = <40000000>; - hactive = <800>; - vactive = <600>; - hback-porch = <88>; - hfront-porch = <40>; - vback-porch = <23>; - vfront-porch = <1>; - hsync-len = <128>; - vsync-len = <4>; - - de-active = <1>; - hsync-active = <1>; - vsync-active = <1>; - pixelclk-active = <0>; - }; - /* TouchRevolution Fusion 10"/CLAA101NC05 10.1 inch */ - timing_wsvga: 1024x600 { - clock-frequency = <48000000>; - hactive = <1024>; - vactive = <600>; - hback-porch = <104>; - hfront-porch = <43>; - vback-porch = <24>; - vfront-porch = <20>; - hsync-len = <5>; - vsync-len = <5>; - - de-active = <1>; - hsync-active = <0>; - vsync-active = <0>; - pixelclk-active = <0>; - }; - /* Standard XGA timing */ - timing_xga: 1024x768 { - clock-frequency = <65000000>; - hactive = <1024>; - vactive = <768>; - hback-porch = <160>; - hfront-porch = <24>; - vback-porch = <29>; - vfront-porch = <3>; - hsync-len = <136>; - vsync-len = <6>; - - de-active = <1>; - hsync-active = <0>; - vsync-active = <0>; - pixelclk-active = <0>; - }; - }; - }; -}; - -#if 0 -/* PWM */ -&pwm4 { - status = "okay"; -}; - -/* PWM */ -&pwm5 { - status = "okay"; -}; - -/* PWM */ -&pwm6 { - status = "okay"; -}; - -/* PWM */ -&pwm7 { - status = "okay"; -}; -#endif - -&uart1 { - status = "okay"; -}; - -&uart2 { - status = "okay"; -}; - -&uart5 { - status = "okay"; -}; - -&usbotg1 { - extcon = <&extcon_usbc_det>; - vbus-supply = <®_usbh_vbus>; - status = "okay"; -}; - -&usbotg2 { - vbus-supply = <®_usbh_vbus>; - status = "okay"; -}; - -/* The define SD_1_8 allows to use the SD interface at a higher speed mode - * if the card supports it. For this the signaling voltage is switched from - * 3.3V to 1.8V under the usdhc1's drivers control. - * All pins supplied with NVCC_SD1 must be able to cope with this - * and must (MUST!!!) not be driven with a voltage higher than 1.8V or - * the interface will not work. - */ -/* #define SD_1_8 */ -&usdhc1 { -#ifdef SD_1_8 - pinctrl-names = "default", "state_100mhz", "state_200mhz"; - pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_snvs_cd_usdhc1>; - pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_snvs_cd_usdhc1>; - pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_snvs_cd_usdhc1>; - vqmmc-supply = <®_LDO2>; -#else - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_snvs_cd_usdhc1>; - no-1-8-v; -#endif - cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; - disable-wp; - enable-sdio-wakeup; - keep-power-in-suspend; - status = "okay"; - vmmc-supply = <®_3v3>; -}; - -&iomuxc { - imx6ull-eval-v3 { - pinctrl_gpiotouch: touchgpios { - fsl,pins = < - MX6UL_PAD_NAND_DQS__GPIO4_IO16 0x74 - MX6UL_PAD_ENET1_TX_EN__GPIO2_IO05 0x14 - >; - }; - }; -}; - -&usbotg2 { - vbus-supply = <®_usbh_vbus>; - status = "okay"; }; diff --git a/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi b/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi new file mode 100644 index 000000000000..4009de5d2fb6 --- /dev/null +++ b/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi @@ -0,0 +1,362 @@ +/* + * Copyright 2017 Toradex AG + * + * 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. + */ + +/ { + chosen { + bootargs = "console=ttymxc0,115200"; + }; + + clocks { + /* fixed crystal dedicated to mpc258x */ + clk16m: clk@1 { + compatible = "fixed-clock"; + reg=<1>; + #clock-cells = <0>; + clock-frequency = <16000000>; + clock-output-names = "clk16m"; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_snvs_gpiokeys>; + + power { + label = "Wake-Up"; + gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; + linux,code = ; + debounce-interval = <10>; + gpio-key,wakeup; + }; + }; + + extcon_usbc_det: usbc_det { + compatible = "linux,extcon-usb-gpio"; + debounce = <25>; + id-gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_snvs_usbc_det>; + }; + + reg_3v3: regulator-3v3 { + compatible = "regulator-fixed"; + regulator-name = "3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + reg_5v0: regulator-5v0 { + compatible = "regulator-fixed"; + regulator-name = "5V"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + reg_usbh_vbus: regulator-usbh-vbus { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbh1_reg>; + regulator-name = "VCC_USB[1-4]"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio1 2 GPIO_ACTIVE_LOW>; + vin-supply = <®_5v0>; + }; +}; + +&bl { + brightness-levels = <0 4 8 16 32 64 128 255>; + default-brightness-level = <6>; + status = "okay"; +}; + +&adc1 { + status = "okay"; +}; + +&pxp { + status = "okay"; +}; + +&ecspi1 { + status = "okay"; + + mcp258x0: mcp258x@0 { + compatible = "microchip,mcp2515"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_can_int>; + reg = <0>; + clocks = <&clk16m>; + interrupt-parent = <&gpio2>; + interrupts = <4 IRQ_TYPE_EDGE_FALLING>; + spi-max-frequency = <10000000>; + status = "okay"; + }; + + spidev0: spidev@0 { + compatible = "toradex,evalspi"; + reg = <0>; + spi-max-frequency = <23000000>; + status = "disabled"; + }; +}; + +&i2c1 { + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c1>; + pinctrl-1 = <&pinctrl_i2c1_gpio>; + sda-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; + scl-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>; + status = "okay"; + + /* Atmel maxtouch controller */ + atmel_mxt_ts: atmel_mxt_ts@4a { + compatible = "atmel,maxtouch"; + reg = <0x4a>; + interrupt-parent = <&gpio5>; + interrupts = <4 IRQ_TYPE_EDGE_FALLING>; + status = "disabled"; + }; + + touch: touchrevf0710a@10 { + compatible = "touchrevolution,fusion-f0710a"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpiotouch>; + reg = <0x10>; + /* SODIMM 28, Pen down interrupt */ + gpios = <&gpio4 16 GPIO_ACTIVE_HIGH + /* SODIMM 30, Reset interrupt */ + &gpio2 5 GPIO_ACTIVE_LOW + >; + status = "disabled"; + }; + + /* M41T0M6 real time clock on carrier board */ + rtc: m41t0m6@68 { + compatible = "st,m41t0"; + reg = <0x68>; + }; +}; + +&iomuxc { + imx6ull-eval-v3 { + pinctrl_gpiotouch: touchgpios { + fsl,pins = < + MX6UL_PAD_NAND_DQS__GPIO4_IO16 0x74 + MX6UL_PAD_ENET1_TX_EN__GPIO2_IO05 0x14 + >; + }; + }; +}; + +&lcdif { + display = <&display0>; + status = "okay"; + + display0: lcd-display { + bits-per-pixel = <16>; + bus-width = <18>; + + display-timings { + native-mode = <&timing_vga>; + + /* Standard VGA timing */ + timing_vga: 640x480 { + clock-frequency = <25175000>; + hactive = <640>; + vactive = <480>; + hback-porch = <40>; + hfront-porch = <24>; + vback-porch = <32>; + vfront-porch = <11>; + hsync-len = <96>; + vsync-len = <2>; + + de-active = <1>; + hsync-active = <0>; + vsync-active = <0>; + pixelclk-active = <0>; + }; + + /* WVGA Timing, e.g. EDT ET070080DH6 */ + timing_wvga: 800x480 { + clock-frequency = <33260000>; + hactive = <800>; + vactive = <480>; + hback-porch = <216>; + hfront-porch = <40>; + vback-porch = <35>; + vfront-porch = <10>; + hsync-len = <128>; + vsync-len = <2>; + + de-active = <1>; + hsync-active = <0>; + vsync-active = <0>; + pixelclk-active = <0>; + }; + /* WVGA Timing, TouchRevolution Fusion 7" */ + timing_wvga2: 800x480pixclkact { + clock-frequency = <33260000>; + hactive = <800>; + vactive = <480>; + hback-porch = <216>; + hfront-porch = <40>; + vback-porch = <35>; + vfront-porch = <10>; + hsync-len = <128>; + vsync-len = <2>; + + de-active = <1>; + hsync-active = <0>; + vsync-active = <0>; + pixelclk-active = <1>; + }; + /* Standard SVGA timing */ + timing_svga: 800x600 { + clock-frequency = <40000000>; + hactive = <800>; + vactive = <600>; + hback-porch = <88>; + hfront-porch = <40>; + vback-porch = <23>; + vfront-porch = <1>; + hsync-len = <128>; + vsync-len = <4>; + + de-active = <1>; + hsync-active = <1>; + vsync-active = <1>; + pixelclk-active = <0>; + }; + /* TouchRevolution Fusion 10"/CLAA101NC05 10.1 inch */ + timing_wsvga: 1024x600 { + clock-frequency = <48000000>; + hactive = <1024>; + vactive = <600>; + hback-porch = <104>; + hfront-porch = <43>; + vback-porch = <24>; + vfront-porch = <20>; + hsync-len = <5>; + vsync-len = <5>; + + de-active = <1>; + hsync-active = <0>; + vsync-active = <0>; + pixelclk-active = <0>; + }; + /* Standard XGA timing */ + timing_xga: 1024x768 { + clock-frequency = <65000000>; + hactive = <1024>; + vactive = <768>; + hback-porch = <160>; + hfront-porch = <24>; + vback-porch = <29>; + vfront-porch = <3>; + hsync-len = <136>; + vsync-len = <6>; + + de-active = <1>; + hsync-active = <0>; + vsync-active = <0>; + pixelclk-active = <0>; + }; + }; + }; +}; + +#if 0 +/* PWM */ +&pwm4 { + status = "okay"; +}; + +/* PWM */ +&pwm5 { + status = "okay"; +}; + +/* PWM */ +&pwm6 { + status = "okay"; +}; + +/* PWM */ +&pwm7 { + status = "okay"; +}; +#endif + +&uart1 { + status = "okay"; +}; + +&uart2 { + status = "okay"; +}; + +&uart5 { + status = "okay"; +}; + +&usbotg1 { + extcon = <&extcon_usbc_det>; + vbus-supply = <®_usbh_vbus>; + status = "okay"; +}; + +&usbotg2 { + vbus-supply = <®_usbh_vbus>; + status = "okay"; +}; + +/* The define SD_1_8 allows to use the SD interface at a higher speed mode + * if the card supports it. For this the signaling voltage is switched from + * 3.3V to 1.8V under the usdhc1's drivers control. + */ +/* #define SD_1_8 */ +&usdhc1 { +#ifdef SD_1_8 + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_snvs_cd_usdhc1>; + pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_snvs_cd_usdhc1>; + pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_snvs_cd_usdhc1>; + vqmmc-supply = <®_sd1_vmmc>; +#else + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_snvs_cd_usdhc1>; + no-1-8-v; +#endif + cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; + disable-wp; + enable-sdio-wakeup; + keep-power-in-suspend; + status = "okay"; + vmmc-supply = <®_3v3>; +}; + +&iomuxc { + imx6ull-eval-v3 { + pinctrl_gpiotouch: touchgpios { + fsl,pins = < + MX6UL_PAD_NAND_DQS__GPIO4_IO16 0x74 + MX6UL_PAD_ENET1_TX_EN__GPIO2_IO05 0x14 + >; + }; + }; +}; + +&usbotg2 { + vbus-supply = <®_usbh_vbus>; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/imx6ull-colibri-nonwifi.dtsi b/arch/arm/boot/dts/imx6ull-colibri-nonwifi.dtsi new file mode 100644 index 000000000000..574362112633 --- /dev/null +++ b/arch/arm/boot/dts/imx6ull-colibri-nonwifi.dtsi @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2017 Toradex AG + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include "imx6ull-colibri.dtsi" + + +&iomuxc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hog_1 &pinctrl_hog_2 &pinctrl_hog_3 + &pinctrl_hog_4 &pinctrl_hog_5 &pinctrl_hog_6>; +}; + +&iomuxc_snvs { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_snvs_hog_1 &pinctrl_snvs_hog_2 &pinctrl_snvs_hog_3>; +}; + diff --git a/arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts b/arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts new file mode 100644 index 000000000000..a156d6456c66 --- /dev/null +++ b/arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts @@ -0,0 +1,18 @@ +/* + * Copyright 2017 Toradex AG + * + * 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 "imx6ull-colibri-wifi.dtsi" +#include "imx6ull-colibri-eval-v3.dtsi" + +/ { + model = "Toradex Colibri iMX6ULL 512MB on Colibri Evaluation Board V3"; + compatible = "toradex,colibri_imx6ull-wifi-eval", "fsl,imx6ull"; +}; diff --git a/arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi b/arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi new file mode 100644 index 000000000000..cd890c5a24a5 --- /dev/null +++ b/arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2017 Toradex AG + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include "imx6ull-colibri.dtsi" + +/ { + reg_wifi_pwd: regulator-wifi-pwd { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wifi_pdn>; + gpio = <&gpio5 11 0>; + enable-active-high; + regulator-always-on; + regulator-name = "WIFI_PDN"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; +}; + +&iomuxc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hog_1 &pinctrl_hog_2 &pinctrl_hog_3 + &pinctrl_hog_4 &pinctrl_hog_5>; + +}; + +&iomuxc_snvs { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_snvs_hog_1 &pinctrl_snvs_hog_2>; +}; + +&usdhc2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2>; + no-1-8-v; + disable-wp; + enable-sdio-wakeup; + keep-power-in-suspend; + broken-cd; + /* non-removable;*/ + status = "okay"; + /* + * Does not work for a WiFi chip since vmmc get turned on only during + * SDIO communication... + */ +// vmmc-supply = <®_wifi_pwd>; +}; diff --git a/arch/arm/boot/dts/imx6ull-colibri.dtsi b/arch/arm/boot/dts/imx6ull-colibri.dtsi index 32d5327bcb78..432b3ab0a1a0 100644 --- a/arch/arm/boot/dts/imx6ull-colibri.dtsi +++ b/arch/arm/boot/dts/imx6ull-colibri.dtsi @@ -222,17 +222,12 @@ }; &iomuxc { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_hog_1 &pinctrl_hog_2 &pinctrl_hog_3 - &pinctrl_hog_4 &pinctrl_hog_5>; - imx6ull-colibri { pinctrl_hog_1: hoggrp-1 { fsl,pins = < MX6UL_PAD_ENET1_RX_DATA0__GPIO2_IO00 0x74 /* SODIMM 55 */ MX6UL_PAD_ENET1_RX_DATA1__GPIO2_IO01 0x74 /* SODIMM 63 */ MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25 0X14 /* SODIMM 77 */ - MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x14 /* SODIMM 89 */ MX6UL_PAD_JTAG_TCK__GPIO1_IO14 0x14 /* SODIMM 99 */ MX6UL_PAD_NAND_CE1_B__GPIO4_IO14 0x14 /* SODIMM 133 */ MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24 0x14 /* SODIMM 135 */ @@ -247,13 +242,7 @@ fsl,pins = < MX6UL_PAD_CSI_DATA04__GPIO4_IO25 0x74 /* SODIMM 69 */ MX6UL_PAD_CSI_MCLK__GPIO4_IO17 0x14 /* SODIMM 75 */ - MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x14 /* SODIMM 79 */ - MX6UL_PAD_CSI_VSYNC__GPIO4_IO19 0x14 /* SODIMM 81 */ MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x14 /* SODIMM 85 */ - MX6UL_PAD_CSI_DATA03__GPIO4_IO24 0x14 /* SODIMM 97 */ - MX6UL_PAD_CSI_DATA00__GPIO4_IO21 0x14 /* SODIMM 101 */ - MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x14 /* SODIMM 103 */ - MX6UL_PAD_CSI_HSYNC__GPIO4_IO20 0x14 /* SODIMM 94 */ MX6UL_PAD_CSI_PIXCLK__GPIO4_IO18 0x14 /* SODIMM 96 */ MX6UL_PAD_CSI_DATA05__GPIO4_IO26 0x14 /* SODIMM 98 */ >; @@ -278,6 +267,18 @@ >; }; + pinctrl_hog_6: hoggrp-6 { /* Wifi pins */ + fsl,pins = < + MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x14 /* SODIMM 89 */ + MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x14 /* SODIMM 79 */ + MX6UL_PAD_CSI_VSYNC__GPIO4_IO19 0x14 /* SODIMM 81 */ + MX6UL_PAD_CSI_DATA03__GPIO4_IO24 0x14 /* SODIMM 97 */ + MX6UL_PAD_CSI_DATA00__GPIO4_IO21 0x14 /* SODIMM 101 */ + MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x14 /* SODIMM 103 */ + MX6UL_PAD_CSI_HSYNC__GPIO4_IO20 0x14 /* SODIMM 94 */ + >; + }; + pinctrl_can_int: canintgrp { fsl,pins = < MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04 0X14 /* SODIMM 73 */ @@ -501,20 +502,29 @@ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9 >; }; + + pinctrl_usdhc2: usdhc2grp { + fsl,pins = < + MX6UL_PAD_CSI_DATA00__USDHC2_DATA0 0x17059 + MX6UL_PAD_CSI_DATA01__USDHC2_DATA1 0x17059 + MX6UL_PAD_CSI_DATA02__USDHC2_DATA2 0x17059 + MX6UL_PAD_CSI_DATA03__USDHC2_DATA3 0x17059 + MX6UL_PAD_CSI_HSYNC__USDHC2_CMD 0x17059 + MX6UL_PAD_CSI_VSYNC__USDHC2_CLK 0x17059 + + MX6UL_PAD_GPIO1_IO03__REF_CLK_32K 0x14 + >; + }; }; }; &iomuxc_snvs { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_snvs_hog_1 &pinctrl_snvs_hog_2>; - imx6ull-colibri { pinctrl_snvs_hog_1: snvs-hoggrp-1 { fsl,pins = < MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x14 /* SODIMM 93 */ MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x14 /* SODIMM 95 */ MX6ULL_PAD_BOOT_MODE0__GPIO5_IO10 0x74 /* SODIMM 105 */ - MX6ULL_PAD_BOOT_MODE1__GPIO5_IO11 0x14 /* SODIMM 127 */ MX6ULL_PAD_SNVS_TAMPER5__GPIO5_IO05 0x14 /* SODIMM 131 USBH OC */ MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x74 /* SODIMM 138 */ >; @@ -526,6 +536,12 @@ >; }; + pinctrl_snvs_hog_3: snvs-hoggrp-3 { /* Wifi pins */ + fsl,pins = < + MX6ULL_PAD_BOOT_MODE1__GPIO5_IO11 0x14 /* SODIMM 127 */ + >; + }; + pinctrl_snvs_ad7879_int: snvs-ad7879-int { /* TOUCH Interrupt */ fsl,pins = < MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x1b0b0 @@ -555,6 +571,12 @@ MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x1b0b0 /* CD */ >; }; + + pinctrl_wifi_pdn: wifi-pdn { + fsl,pins = < + MX6ULL_PAD_BOOT_MODE1__GPIO5_IO11 0x14 + >; + }; }; }; @@ -601,3 +623,4 @@ &usbotg2 { dr_mode = "host"; }; + -- cgit v1.2.3