ARM: dts: vf-colibri-aster: Add support for Aster with Vybrid
authorSanchayan Maity <maitysanchayan@gmail.com>
Wed, 7 Jun 2017 06:35:01 +0000 (12:05 +0530)
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>
Sat, 17 Jun 2017 14:57:14 +0000 (16:57 +0200)
Add support for Aster carrier board with Vybrid.

Notes:
- In case where the RPi standard specifies a GPIO and we have another
pinmux for the concerned pin due to Colibri standard, the Colibri
standard has been given preference.

- Vybrid DSPI driver does not support the use of GPIOs as chip selects.
On Aster Colibri standard SPI chip select is exposed on Arduino header
and a GPIO for chip select is brought out on RPi header. Since DSPI
driver does not support use of GPIOs as chip selects and to allow use
of DSPI on both Arduino and RPi headers, the chip selects have been
multiplexed as GPIOs.

The user space application will be responsible for controlling these
chip selects explicitly.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/vf-colibri-aster.dtsi [new file with mode: 0644]
arch/arm/boot/dts/vf500-colibri-aster.dts [new file with mode: 0644]
arch/arm/boot/dts/vf610-colibri-aster.dts [new file with mode: 0644]

index dd806e1adfeba337025e5a1487c1457538d158d1..a5738197983acb746d1189beec553daa3f6850d5 100644 (file)
@@ -357,6 +357,8 @@ dtb-$(CONFIG_SOC_LS1021A) += \
 dtb-$(CONFIG_SOC_VF610) += \
        vf500-colibri-eval-v3.dtb \
        vf610-colibri-eval-v3.dtb \
+       vf500-colibri-aster.dtb \
+       vf610-colibri-aster.dtb \
        vf610m4-colibri.dtb \
        vf500-colibri-dual-eth.dtb \
        vf610-colibri-dual-eth.dtb \
diff --git a/arch/arm/boot/dts/vf-colibri-aster.dtsi b/arch/arm/boot/dts/vf-colibri-aster.dtsi
new file mode 100644 (file)
index 0000000..5fee7cb
--- /dev/null
@@ -0,0 +1,189 @@
+/*
+ * 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.
+ */
+
+#include <dt-bindings/input/input.h>
+
+/ {
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               ethernet0 = &fec1;
+               ethernet1 = &fec0;
+       };
+
+       panel: panel {
+               compatible = "edt,et057090dhu";
+               backlight = <&bl>;
+               power-supply =  <&reg_3v3>;
+       };
+
+       extcon_usbc_det: usbc_det {
+               compatible = "linux,extcon-usb-gpio";
+               debounce = <25>;
+               id-gpio = <&gpio3 6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_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>;
+               regulator-always-on;
+       };
+
+       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 = <&gpio2 19 GPIO_ACTIVE_LOW>; /* USBH_PEN resp. USBH_P_EN */
+               vin-supply = <&reg_5v0>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpiokeys>;
+
+               power {
+                       label = "Wake-Up";
+                       gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+                       linux,code = <KEY_WAKEUP>;
+                       debounce-interval = <10>;
+                       gpio-key,wakeup;
+               };
+       };
+};
+
+&bl {
+       brightness-levels = <0 4 8 16 32 64 128 255>;
+       default-brightness-level = <6>;
+       power-supply =  <&reg_3v3>;
+       status  = "okay";
+};
+
+&dcu0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_dcu0_1>;
+       fsl,panel = <&panel>;
+       status = "okay";
+};
+
+&dspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_aster_dspi1 &pinctrl_aster_spi_gpio>;
+       status = "okay";
+
+       spidev0: spidev@0 {
+               compatible = "toradex,evalspi";
+               reg = <0>;
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&esdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_esdhc1>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&fec1 {
+       phy-mode = "rmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       /* M41T0M6 real time clock on carrier board */
+       rtc: m41t0m6@68 {
+               compatible = "st,m41t0";
+               reg = <0x68>;
+       };
+};
+
+&pwm0 {
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&reg_module_3v3 {
+       vin-supply = <&reg_3v3>;
+};
+
+&tcon0 {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usbdev0 {
+       extcon = <&extcon_usbc_det>, <&extcon_usbc_det>;
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usbh_vbus>;
+};
+
+&iomuxc {
+       vf610-colibri {
+               pinctrl_gpiokeys: gpiokeys {
+                       fsl,pins = <
+                               VF610_PAD_PTB19__GPIO_41        0x218d
+                       >;
+               };
+
+               pinctrl_aster_dspi1: dspi1grp {
+                       fsl,pins = <
+                               VF610_PAD_PTD6__DSPI1_SIN               0x33e1
+                               VF610_PAD_PTD7__DSPI1_SOUT              0x33e2
+                               VF610_PAD_PTD8__DSPI1_SCK               0x33e2
+                       >;
+               };
+
+               pinctrl_aster_spi_gpio: spigpios {
+                       fsl,pins = <
+                               /* CS0 */
+                               VF610_PAD_PTD5__GPIO_84                 0x22ed
+                               /* CS1 */
+                               VF610_PAD_PTB18__GPIO_40                0x22ed
+                       >;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/vf500-colibri-aster.dts b/arch/arm/boot/dts/vf500-colibri-aster.dts
new file mode 100644 (file)
index 0000000..e314a7a
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * 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 "vf500-colibri.dtsi"
+#include "vf-colibri-aster.dtsi"
+
+/ {
+       model = "Toradex Colibri VF50 on Colibri Aster Board";
+       compatible = "toradex,vf500-colibri_vf50-on-aster", "toradex,vf500-colibri_vf50", "fsl,vf500";
+};
+
+&touchscreen {
+       vf50-ts-min-pressure = <200>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/vf610-colibri-aster.dts b/arch/arm/boot/dts/vf610-colibri-aster.dts
new file mode 100644 (file)
index 0000000..55efc16
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * 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 "vf610-colibri.dtsi"
+#include "vf-colibri-aster.dtsi"
+
+/ {
+       model = "Toradex Colibri VF61 on Colibri Aster Board";
+       compatible = "toradex,vf610-colibri_vf61-on-aster", "toradex,vf610-colibri_vf61", "fsl,vf610";
+};