ARM: tegra: Device tree changes for v4.20-rc1

This contains a massive amount of changes from Marcel Ziswiler for
 various boards by Toradex.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAlutQ+UTHHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zoap9EACWCtuZX1sqPHrU3qNIlqgb2GTFq9IR
 DOt+J0kxbVHddvgnaxnHdXq25nQ7fSCIx+k06C1Gs4/PmhMm4wLkJhaE7l80Ru5i
 5hKMlp/4mf4GN+aEqsLje6QndbUMUhVWTEk7U/OIybE4DeVq50ApKBP5lbuurAa/
 T/EeMUWzfsgbH64AXgLMrgQ8i9sM+FuGWGvIBPIwvOXJiyEcOwoO5/c7BkQngQkZ
 eglydbt9TWlWkdB4C9OM4/TGCHbnC8gO9XqBMniMI5mCTVpihPQ/O3RPfp8iWy83
 hfpxzyWK2w0LY2nyn4UdUhlc4YKD/piu290BHlx0HBEv0ovJrktlAYghhvQWbgIz
 7LHn8BV4jid23vn8tPhbmaWRZfXEwCviUqVVroKNuz6cJzNktXuXJQYI2QcSYCvf
 BQmynXWrcdMH8zFzXDSKUAIbgnj17kWSk0BACqdutj21GPhBJA7NbFhYpNUVngYU
 0JfVV14plzvZff4FIZCExH46zaHz5hlszrlNVI+wqRIGnpOvE9FZBTNbnZlm+e6x
 KHhUqyGA8dlMidgtb/kSKAfKsqWKwC5CsXkmFJeaVrfUcaBftY5zmVmkv4KCVL8u
 c7j3N8PjeSJR+Pf9yE7YwzZJttegiljw5VwFjVR5Z7nEtTYD2U9WGtHu1OgqgKm+
 8wJFaLJ/psinfw==
 =XdYT
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-4.20-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/dt

ARM: tegra: Device tree changes for v4.20-rc1

This contains a massive amount of changes from Marcel Ziswiler for
various boards by Toradex.

* tag 'tegra-for-4.20-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: (129 commits)
  ARM: dts: paz00: fix wakeup gpio keycode
  ARM: tegra: tegra20: Fix mixed tabs-spaces indentation
  ARM: tegra: colibri_t20: add eval board device tree
  ARM: tegra: colibri_t20: rename ac97 label to tegra_ac97
  ARM: tegra: colibri_t20: get rid of fake clocks simple bus
  ARM: tegra: colibri_t20: rename tps6586x@34 and drop unused pmic label
  ARM: tegra: colibri_t20: iris: drop unused i2c_ddc label
  ARM: tegra: colibri_t20: rename i2c_ddc to hdmi_ddc
  ARM: tegra: colibri_t20: drop module level model and compatible
  ARM: tegra: colibri_t20: iris: add colibri ssp support
  ARM: tegra: colibri_t20: iris: simplify model and compatible properties
  ARM: tegra: colibri_t20: simplify model and compatible properties
  ARM: tegra: colibri_t20: add compatibility comment
  ARM: tegra: colibri_t20: annotate/move sd card detect
  ARM: tegra: colibri_t20: add gpio hogs for gmi_wr_n buffers
  ARM: tegra: colibri_t20: add gpio hog to unreset usb ethernet chip
  ARM: tegra: colibri_t20: add i2c-thermtrip
  ARM: tegra: colibri_t20: annotate/rename lm95245 temperature sensor
  ARM: tegra: colibri_t20: iris: add dr_mode property
  ARM: tegra: colibri_t20: iris: add gpio wakeup key
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2018-09-28 17:32:55 +02:00
commit d4db2b19eb
19 changed files with 4208 additions and 1247 deletions

View file

@ -47,12 +47,17 @@ board-specific compatible values:
nvidia,ventana
toradex,apalis_t30
toradex,apalis_t30-eval
toradex,apalis_t30-v1.1
toradex,apalis_t30-v1.1-eval
toradex,apalis-tk1
toradex,apalis-tk1-eval
toradex,colibri_t20-512
toradex,apalis-tk1-v1.2
toradex,apalis-tk1-v1.2-eval
toradex,colibri_t20
toradex,colibri_t20-eval-v3
toradex,colibri_t20-iris
toradex,colibri_t30
toradex,colibri_t30-eval-v3
toradex,iris
Trusted Foundations
-------------------------------------------

View file

@ -298,6 +298,7 @@ pine64 Pine64
pixcir PIXCIR MICROELECTRONICS Co., Ltd
plathome Plat'Home Co., Ltd.
plda PLDA
plx Broadcom Corporation (formerly PLX Technology)
portwell Portwell Inc.
poslab Poslab Technology Co., Ltd.
powervr PowerVR (deprecated, use img)

View file

@ -1063,6 +1063,7 @@ dtb-$(CONFIG_ARCH_TANGO) += \
tango4-vantage-1172.dtb
dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
tegra20-harmony.dtb \
tegra20-colibri-eval-v3.dtb \
tegra20-colibri-iris.dtb \
tegra20-medcom-wide.dtb \
tegra20-paz00.dtb \
@ -1073,6 +1074,7 @@ dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
tegra20-ventana.dtb
dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += \
tegra30-apalis-eval.dtb \
tegra30-apalis-v1.1-eval.dtb \
tegra30-beaver.dtb \
tegra30-cardhu-a02.dtb \
tegra30-cardhu-a04.dtb \

View file

@ -72,6 +72,7 @@ pci@1,0 {
host1x@50000000 {
hdmi@54280000 {
status = "okay";
hdmi-supply = <&reg_5v0>;
};
};
@ -122,7 +123,7 @@ rtc@68 {
/*
* GEN2_I2C: I2C2_SDA/SCL (DDC) on MXM3 pin 205/207 (e.g. display EDID)
*/
hdmi_ddc: i2c@7000c400 {
i2c@7000c400 {
status = "okay";
};
@ -141,29 +142,19 @@ i2c@7000c500 {
spi@7000d400 {
status = "okay";
spi-max-frequency = <50000000>;
spidev0: spidev@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <50000000>;
};
};
/* SPI4: Apalis SPI2 */
spi@7000da00 {
status = "okay";
spi-max-frequency = <50000000>;
spidev1: spidev@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <50000000>;
};
};
/* Apalis Serial ATA */
sata@70020000 {
status = "okay";
target-5v-supply = <&reg_5v0>;
target-12v-supply = <&reg_12v0>;
};
hda@70030000 {
@ -177,18 +168,18 @@ usb@70090000 {
/* Apalis MMC1 */
sdhci@700b0000 {
status = "okay";
bus-width = <4>;
/* MMC1_CD# */
cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
bus-width = <4>;
vqmmc-supply = <&vddio_sdmmc1>;
};
/* Apalis SD1 */
sdhci@700b0400 {
status = "okay";
bus-width = <4>;
/* SD1_CD# */
cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
bus-width = <4>;
vqmmc-supply = <&vddio_sdmmc3>;
};
@ -225,11 +216,12 @@ usb-phy@7d008000 {
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm 3 5000000>; /* BKL1_PWM */
brightness-levels = <255 231 223 207 191 159 127 0>;
default-brightness-level = <6>;
/* BKL1_ON */
enable-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_HIGH>;
power-supply = <&reg_3v3>;
pwms = <&pwm 3 5000000>; /* BKL1_PWM */
};
gpio-keys {
@ -244,6 +236,13 @@ wakeup {
};
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3.3V_SW";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V_SW";
@ -251,6 +250,13 @@ reg_5v0: regulator-5v0 {
regulator-max-microvolt = <5000000>;
};
reg_12v0: regulator-12v0 {
compatible = "regulator-fixed";
regulator-name = "12V_SW";
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
};
/* USBO1_EN */
reg_usbo1_vbus: regulator-usbo1-vbus {
compatible = "regulator-fixed";
@ -276,7 +282,7 @@ reg_usbh_vbus: regulator-usbh-vbus {
&gpio {
/* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
pex_perst_n {
pex-perst-n {
gpio-hog;
gpios = <TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
output-high;

View file

@ -11,7 +11,8 @@
/ {
model = "Toradex Apalis TK1 on Apalis Evaluation Board";
compatible = "toradex,apalis-tk1-v1.2-eval", "toradex,apalis-tk1-eval",
"toradex,apalis-tk1", "nvidia,tegra124";
"toradex,apalis-tk1-v1.2", "toradex,apalis-tk1",
"nvidia,tegra124";
aliases {
rtc0 = "/i2c@7000c000/rtc@68";
@ -36,6 +37,7 @@ pci@1,0 {
host1x@50000000 {
hdmi@54280000 {
status = "okay";
hdmi-supply = <&reg_5v0>;
};
};
@ -98,7 +100,7 @@ i2c@7000c500 {
* I2C4 (DDC): I2C4_SDA/SCL (DDC) on MXM3 pin 205/207
* (e.g. display EDID)
*/
hdmi_ddc: i2c@7000c700 {
i2c@7000c700 {
status = "okay";
};
@ -106,29 +108,19 @@ hdmi_ddc: i2c@7000c700 {
spi@7000d400 {
status = "okay";
spi-max-frequency = <50000000>;
spidev0: spidev@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <50000000>;
};
};
/* SPI4: Apalis SPI2 */
spi@7000da00 {
status = "okay";
spi-max-frequency = <50000000>;
spidev1: spidev@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <50000000>;
};
};
/* Apalis Serial ATA */
sata@70020000 {
status = "okay";
target-5v-supply = <&reg_5v0>;
target-12v-supply = <&reg_12v0>;
};
hda@70030000 {
@ -142,18 +134,18 @@ usb@70090000 {
/* Apalis MMC1 */
sdhci@700b0000 {
status = "okay";
bus-width = <4>;
/* MMC1_CD# */
cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
bus-width = <4>;
vqmmc-supply = <&vddio_sdmmc1>;
};
/* Apalis SD1 */
sdhci@700b0400 {
status = "okay";
bus-width = <4>;
/* SD1_CD# */
cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
bus-width = <4>;
vqmmc-supply = <&vddio_sdmmc3>;
};
@ -190,11 +182,12 @@ usb-phy@7d008000 {
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm 3 5000000>; /* BKL1_PWM */
brightness-levels = <255 231 223 207 191 159 127 0>;
default-brightness-level = <6>;
/* BKL1_ON */
enable-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_HIGH>;
power-supply = <&reg_3v3>;
pwms = <&pwm 3 5000000>; /* BKL1_PWM */
};
gpio-keys {
@ -209,6 +202,13 @@ wakeup {
};
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3.3V_SW";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V_SW";
@ -216,6 +216,13 @@ reg_5v0: regulator-5v0 {
regulator-max-microvolt = <5000000>;
};
reg_12v0: regulator-12v0 {
compatible = "regulator-fixed";
regulator-name = "12V_SW";
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
};
/* USBO1_EN */
reg_usbo1_vbus: regulator-usbo1-vbus {
compatible = "regulator-fixed";
@ -241,7 +248,7 @@ reg_usbh_vbus: regulator-usbh-vbus {
&gpio {
/* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
pex_perst_n {
pex-perst-n {
gpio-hog;
gpios = <TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
output-high;

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,262 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "tegra20-colibri.dtsi"
/ {
model = "Toradex Colibri T20 on Colibri Evaluation Board";
compatible = "toradex,colibri_t20-eval-v3", "toradex,colibri_t20",
"nvidia,tegra20";
aliases {
rtc0 = "/i2c@7000c000/rtc@68";
rtc1 = "/i2c@7000d000/pmic@34";
rtc2 = "/rtc@7000e000";
serial0 = &uarta;
serial1 = &uartd;
serial2 = &uartb;
};
chosen {
stdout-path = "serial0:115200n8";
};
host1x@50000000 {
dc@54200000 {
rgb {
status = "okay";
nvidia,panel = <&panel>;
};
};
hdmi@54280000 {
status = "okay";
hdmi-supply = <&reg_5v0>;
};
};
pinmux@70000014 {
state_default: pinmux {
bl-on {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
ddc {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
hotplug-detect {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
i2c {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
lcd {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
lm1 {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
mmc {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
mmccd {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
pwm-a-b {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
pwm-c-d {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
ssp {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
uart-a {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
uart-b {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
uart-c {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
usbh-pen {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
};
};
/* Colibri UART-A */
serial@70006000 {
status = "okay";
};
/* Colibri UART-C */
serial@70006040 {
status = "okay";
};
/* Colibri UART-B */
serial@70006300 {
status = "okay";
};
pwm@7000a000 {
status = "okay";
};
/*
* GEN1_I2C: I2C_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
* board)
*/
i2c@7000c000 {
status = "okay";
clock-frequency = <400000>;
/* M41T0M6 real time clock on carrier board */
rtc@68 {
compatible = "st,m41t0";
reg = <0x68>;
};
};
/* GEN2_I2C: unused */
/* CAM_I2C (I2C3): unused */
/* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */
i2c@7000c400 {
status = "okay";
};
/* EHCI instance 0: USB1_DP/N -> USBC_P/N */
usb@c5000000 {
status = "okay";
dr_mode = "otg";
};
usb-phy@c5000000 {
status = "okay";
vbus-supply = <&reg_usbc_vbus>;
};
/* EHCI instance 2: USB3_DP/N -> USBH_P/N */
usb@c5008000 {
status = "okay";
};
usb-phy@c5008000 {
status = "okay";
vbus-supply = <&reg_usbh_vbus>;
};
/* SPI4: Colibri SSP */
spi@7000da00 {
status = "okay";
spi-max-frequency = <25000000>;
can@0 {
compatible = "microchip,mcp2515";
reg = <0>;
clocks = <&clk16m>;
interrupt-parent = <&gpio>;
/* CAN_INT */
interrupts = <TEGRA_GPIO(A, 0) IRQ_TYPE_EDGE_FALLING>;
spi-max-frequency = <10000000>;
vdd-supply = <&reg_3v3>;
xceiver-supply = <&reg_5v0>;
};
};
/* SD/MMC */
sdhci@c8000600 {
status = "okay";
bus-width = <4>;
cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>; /* MMCD */
no-1-8-v;
};
backlight: backlight {
compatible = "pwm-backlight";
brightness-levels = <255 128 64 32 16 8 4 0>;
default-brightness-level = <6>;
/* BL_ON */
enable-gpios = <&gpio TEGRA_GPIO(T, 4) GPIO_ACTIVE_HIGH>;
power-supply = <&reg_3v3>;
pwms = <&pwm 0 5000000>; /* PWM<A> */
};
clk16m: osc3 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <16000000>;
};
gpio-keys {
compatible = "gpio-keys";
wakeup {
label = "SODIMM pin 45 wakeup";
gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
linux,code = <KEY_WAKEUP>;
debounce-interval = <10>;
wakeup-source;
};
};
panel: panel {
/*
* edt,et057090dhu: EDT 5.7" LCD TFT
* edt,et070080dh6: EDT 7.0" LCD TFT
*/
compatible = "edt,et057090dhu", "simple-panel";
backlight = <&backlight>;
power-supply = <&reg_3v3>;
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3.3V_SW";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V_SW";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
reg_usbc_vbus: regulator-usbc-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USB5";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_5v0>;
};
/* USBH_PEN resp. USB_P_EN */
reg_usbh_vbus: regulator-usbh-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USB[1-4]";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
vin-supply = <&reg_5v0>;
};
};

View file

@ -1,15 +1,21 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "tegra20-colibri.dtsi"
/ {
model = "Toradex Colibri T20 256/512 MB on Iris";
compatible = "toradex,iris", "toradex,colibri_t20-512", "nvidia,tegra20";
model = "Toradex Colibri T20 on Iris";
compatible = "toradex,colibri_t20-iris", "toradex,colibri_t20",
"nvidia,tegra20";
aliases {
rtc0 = "/i2c@7000c000/rtc@68";
rtc1 = "/i2c@7000d000/pmic@34";
rtc2 = "/rtc@7000e000";
serial0 = &uarta;
serial1 = &uartd;
serial2 = &uartb;
};
chosen {
@ -17,90 +23,222 @@ chosen {
};
host1x@50000000 {
dc@54200000 {
rgb {
status = "okay";
nvidia,panel = <&panel>;
};
};
hdmi@54280000 {
status = "okay";
hdmi-supply = <&reg_5v0>;
};
};
pinmux@70000014 {
state_default: pinmux {
hdint {
bl-on {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
i2cddc {
ddc {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
sdio4 {
hotplug-detect {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
uarta {
i2c {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
uartd {
lcd {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
lm1 {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
mmc {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
mmccd {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
pwm-a-b {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
pwm-c-d {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
ssp {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
uart-a {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
uart-b {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
uart-c {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
usbh-pen {
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
};
};
/* Colibri UART-A */
serial@70006000 {
status = "okay";
};
/* Colibri UART-C */
serial@70006040 {
status = "okay";
};
/* Colibri UART-B */
serial@70006300 {
status = "okay";
};
i2c_ddc: i2c@7000c400 {
pwm@7000a000 {
status = "okay";
};
/*
* GEN1_I2C: I2C_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
* board)
*/
i2c@7000c000 {
status = "okay";
clock-frequency = <400000>;
/* M41T0M6 real time clock on carrier board */
rtc@68 {
compatible = "st,m41t0";
reg = <0x68>;
};
};
/* GEN2_I2C: unused */
/* CAM_I2C (I2C3): unused */
/* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */
i2c@7000c400 {
status = "okay";
};
/* EHCI instance 0: USB1_DP/N -> USBC_P/N */
usb@c5000000 {
status = "okay";
dr_mode = "otg";
};
usb-phy@c5000000 {
status = "okay";
vbus-supply = <&reg_usbc_vbus>;
};
/* EHCI instance 2: USB3_DP/N -> USBH_P/N */
usb@c5008000 {
status = "okay";
};
usb-phy@c5008000 {
status = "okay";
vbus-supply = <&reg_usbh_vbus>;
};
/* SPI4: Colibri SSP */
spi@7000da00 {
status = "okay";
spi-max-frequency = <25000000>;
};
/* SD/MMC */
sdhci@c8000600 {
status = "okay";
bus-width = <4>;
vmmc-supply = <&vcc_sd_reg>;
vqmmc-supply = <&vcc_sd_reg>;
cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>; /* MMCD */
no-1-8-v;
};
regulators {
regulator@0 {
compatible = "regulator-fixed";
reg = <0>;
regulator-name = "usb_host_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
regulator-always-on;
gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_HIGH>;
};
backlight: backlight {
compatible = "pwm-backlight";
brightness-levels = <255 128 64 32 16 8 4 0>;
default-brightness-level = <6>;
/* BL_ON */
enable-gpios = <&gpio TEGRA_GPIO(T, 4) GPIO_ACTIVE_HIGH>;
power-supply = <&reg_3v3>;
pwms = <&pwm 0 5000000>; /* PWM<A> */
};
vcc_sd_reg: regulator@1 {
compatible = "regulator-fixed";
reg = <1>;
regulator-name = "vcc_sd";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
gpio-keys {
compatible = "gpio-keys";
wakeup {
label = "SODIMM pin 45 wakeup";
gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
linux,code = <KEY_WAKEUP>;
debounce-interval = <10>;
wakeup-source;
};
};
panel: panel {
/*
* edt,et057090dhu: EDT 5.7" LCD TFT
* edt,et070080dh6: EDT 7.0" LCD TFT
*/
compatible = "edt,et057090dhu", "simple-panel";
backlight = <&backlight>;
power-supply = <&reg_3v3>;
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
reg_usbc_vbus: regulator-usbc-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USB2";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_5v0>;
};
/* USBH_PEN resp. USB_P_EN */
reg_usbh_vbus: regulator-usbh-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USB1";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
vin-supply = <&reg_5v0>;
};
};

View file

@ -1,15 +1,13 @@
// SPDX-License-Identifier: GPL-2.0
#include "tegra20.dtsi"
/*
* Toradex Colibri T20 Module Device Tree
* Compatible for Revisions Colibri T20 256MB V1.1B, V1.2A;
* Colibri T20 256MB IT V1.2A; Colibri T20 512MB V1.1C, V1.2A;
* Colibri T20 512MB IT V1.2A
*/
/ {
model = "Toradex Colibri T20 256/512 MB";
compatible = "toradex,colibri_t20-512", "nvidia,tegra20";
aliases {
rtc0 = "/i2c@7000d000/tps6586x@34";
rtc1 = "/rtc@7000e000";
};
memory@0 {
/*
* Set memory to 256 MB to be safe as this could be used on
@ -21,12 +19,11 @@ memory@0 {
host1x@50000000 {
hdmi@54280000 {
vdd-supply = <&hdmi_vdd_reg>;
pll-supply = <&hdmi_pll_reg>;
nvidia,ddc-i2c-bus = <&i2c_ddc>;
nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
GPIO_ACTIVE_HIGH>;
nvidia,ddc-i2c-bus = <&hdmi_ddc>;
nvidia,hpd-gpio =
<&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
pll-supply = <&reg_1v8_avdd_hdmi_pll>;
vdd-supply = <&reg_3v3_avdd_hdmi>;
};
};
@ -35,187 +32,406 @@ pinmux@70000014 {
pinctrl-0 = <&state_default>;
state_default: pinmux {
audio_refclk {
/* Analogue Audio AC97 to WM9712 (On-module) */
audio-refclk {
nvidia,pins = "cdev1";
nvidia,function = "plla_out";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
crt {
nvidia,pins = "crtp";
nvidia,function = "crt";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
dap3 {
nvidia,pins = "dap3";
nvidia,function = "dap3";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
displaya {
nvidia,pins = "ld0", "ld1", "ld2", "ld3",
"ld4", "ld5", "ld6", "ld7", "ld8",
"ld9", "ld10", "ld11", "ld12", "ld13",
"ld14", "ld15", "ld16", "ld17",
"lhs", "lpw0", "lpw2", "lsc0",
"lsc1", "lsck", "lsda", "lspi", "lvs";
nvidia,function = "displaya";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
gpio_dte {
nvidia,pins = "dte";
nvidia,function = "rsvd1";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
gpio_gmi {
nvidia,pins = "ata", "atc", "atd", "ate",
"dap1", "dap2", "dap4", "gpu", "irrx",
"irtx", "spia", "spib", "spic";
nvidia,function = "gmi";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
gpio_pta {
nvidia,pins = "pta";
nvidia,function = "rsvd4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
gpio_uac {
/*
* AC97_RESET, ULPI_RESET, AC97_INT aka WM9712 GENIRQ
* (All on-module), SODIMM Pin 45 Wakeup
*/
gpio-uac {
nvidia,pins = "uac";
nvidia,function = "rsvd2";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
hdint {
nvidia,pins = "hdint";
nvidia,function = "hdmi";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
i2c1 {
nvidia,pins = "rm";
nvidia,function = "i2c1";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
i2c3 {
nvidia,pins = "dtf";
nvidia,function = "i2c3";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
i2cddc {
nvidia,pins = "ddc";
nvidia,function = "i2c2";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
i2cp {
nvidia,pins = "i2cp";
nvidia,function = "i2cp";
/*
* Buffer Enables for nPWE and RDnWR (On-module,
* see GPIO hogging further down below)
*/
gpio-pta {
nvidia,pins = "pta";
nvidia,function = "rsvd4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
irda {
nvidia,pins = "uad";
nvidia,function = "irda";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
nand {
nvidia,pins = "kbca", "kbcc", "kbcd",
"kbce", "kbcf";
nvidia,function = "nand";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
owc {
nvidia,pins = "owc";
nvidia,function = "owr";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/*
* CLK_32K_OUT, CORE_PWR_REQ, CPU_PWR_REQ, PWR_INT_N,
* SYS_CLK_REQ (All on-module)
*/
pmc {
nvidia,pins = "pmc";
nvidia,function = "pwr_on";
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
pwm {
nvidia,pins = "sdb", "sdc", "sdd";
/*
* Colibri Address/Data Bus (GMI)
* Note: spid and spie optionally used for SPI1
*/
gmi {
nvidia,pins = "atc", "atd", "ate", "dap1",
"dap2", "dap4", "gmd", "gpu",
"irrx", "irtx", "spia", "spib",
"spic", "spid", "spie", "uca",
"ucb";
nvidia,function = "gmi";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Further pins may be used as GPIOs */
gmi-gpio1 {
nvidia,pins = "lpw0", "lsc1", "lsck", "lsda";
nvidia,function = "hdmi";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
gmi-gpio2 {
nvidia,pins = "lcsn", "ldc", "lm0", "lsdi";
nvidia,function = "rsvd4";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri BL_ON */
bl-on {
nvidia,pins = "dta";
nvidia,function = "rsvd1";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri Backlight PWM<A>, PWM<B> */
pwm-a-b {
nvidia,pins = "sdc";
nvidia,function = "pwm";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
sdio4 {
nvidia,pins = "atb", "gma", "gme";
nvidia,function = "sdio4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
spi1 {
nvidia,pins = "spid", "spie", "spif";
nvidia,function = "spi1";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
spi4 {
nvidia,pins = "slxa", "slxc", "slxd", "slxk";
nvidia,function = "spi4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
uarta {
nvidia,pins = "sdio1";
nvidia,function = "uarta";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
uartd {
nvidia,pins = "gmc";
nvidia,function = "uartd";
/* Colibri DDC */
ddc {
nvidia,pins = "ddc";
nvidia,function = "i2c2";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/*
* Colibri EXT_IO*
* Note: dtf optionally used for I2C3
*/
ext-io {
nvidia,pins = "dtf", "spdi";
nvidia,function = "rsvd2";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/*
* Colibri Ethernet (On-module)
* ULPI EHCI instance 1 USB2_DP/N -> AX88772B
*/
ulpi {
nvidia,pins = "uaa", "uab", "uda";
nvidia,function = "ulpi";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
ulpi_refclk {
ulpi-refclk {
nvidia,pins = "cdev2";
nvidia,function = "pllp_out4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
usb_gpio {
nvidia,pins = "spig", "spih";
nvidia,function = "spi2_alt";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
/* Colibri HOTPLUG_DETECT (HDMI) */
hotplug-detect {
nvidia,pins = "hdint";
nvidia,function = "hdmi";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
vi {
nvidia,pins = "dta", "dtb", "dtc", "dtd";
nvidia,function = "vi";
/* Colibri I2C */
i2c {
nvidia,pins = "rm";
nvidia,function = "i2c1";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
vi_sc {
/*
* Colibri L_BIAS, LCD_M1 is muxed with LCD_DE
* today's display need DE, disable LCD_M1
*/
lm1 {
nvidia,pins = "lm1";
nvidia,function = "rsvd3";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri LCD (L_* resp. LDD<*>) */
lcd {
nvidia,pins = "ld0", "ld1", "ld2", "ld3",
"ld4", "ld5", "ld6", "ld7",
"ld8", "ld9", "ld10", "ld11",
"ld12", "ld13", "ld14", "ld15",
"ld16", "ld17", "lhs", "lsc0",
"lspi", "lvs";
nvidia,function = "displaya";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri LCD (Optional 24 BPP Support) */
lcd-24 {
nvidia,pins = "ldi", "lhp0", "lhp1", "lhp2",
"lpp", "lvp1";
nvidia,function = "displaya";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri MMC */
mmc {
nvidia,pins = "atb", "gma";
nvidia,function = "sdio4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri MMCCD */
mmccd {
nvidia,pins = "gmb";
nvidia,function = "gmi_int";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri MMC (Optional 8-bit) */
mmc-8bit {
nvidia,pins = "gme";
nvidia,function = "sdio4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/*
* Colibri Parallel Camera (Optional)
* pins multiplexed with others and therefore disabled
* Note: dta used for BL_ON by default
*/
cif-mclk {
nvidia,pins = "csus";
nvidia,function = "vi_sensor_clk";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
cif {
nvidia,pins = "dtb", "dtc", "dtd";
nvidia,function = "vi";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri PWM<C>, PWM<D> */
pwm-c-d {
nvidia,pins = "sdb", "sdd";
nvidia,function = "pwm";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri SSP */
ssp {
nvidia,pins = "slxa", "slxc", "slxd", "slxk";
nvidia,function = "spi4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri UART-A */
uart-a {
nvidia,pins = "sdio1";
nvidia,function = "uarta";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
uart-a-dsr {
nvidia,pins = "lpw1";
nvidia,function = "rsvd3";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
uart-a-dcd {
nvidia,pins = "lpw2";
nvidia,function = "hdmi";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri UART-B */
uart-b {
nvidia,pins = "gmc";
nvidia,function = "uartd";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri UART-C */
uart-c {
nvidia,pins = "uad";
nvidia,function = "irda";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri USB_CDET */
usb-cdet {
nvidia,pins = "spdo";
nvidia,function = "rsvd2";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri USBH_OC */
usbh-oc {
nvidia,pins = "spih";
nvidia,function = "spi2_alt";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri USBH_PEN */
usbh-pen {
nvidia,pins = "spig";
nvidia,function = "spi2_alt";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri VGA not supported */
vga {
nvidia,pins = "crtp";
nvidia,function = "crt";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* I2C3 (Optional) */
i2c3 {
nvidia,pins = "dtf";
nvidia,function = "i2c3";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* JTAG_RTCK */
jtag-rtck {
nvidia,pins = "gpu7";
nvidia,function = "rtck";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/*
* LAN_RESET, LAN_EXT_WAKEUP and LAN_PME
* (All On-module)
*/
gpio-gpv {
nvidia,pins = "gpv";
nvidia,function = "rsvd2";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/*
* LAN_V_BUS, VDD_FAULT, BATT_FAULT, WM9712 PENDOWN
* (All On-module); Colibri CAN_INT
*/
gpio-dte {
nvidia,pins = "dte";
nvidia,function = "rsvd1";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/* NAND (On-module) */
nand {
nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
"kbce", "kbcf";
nvidia,function = "nand";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/* Onewire (Optional) */
owr {
nvidia,pins = "owc";
nvidia,function = "owr";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Power I2C (On-module) */
i2cp {
nvidia,pins = "i2cp";
nvidia,function = "i2cp";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/* RESET_OUT */
reset-out {
nvidia,pins = "ata";
nvidia,function = "gmi";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/*
* SPI1 (Optional)
* Note: spid and spie used for Colibri Address/Data
* Bus (GMI)
*/
spi1 {
nvidia,pins = "spid", "spie", "spif";
nvidia,function = "spi1";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/*
* THERMD_ALERT# (On-module), unlatched I2C address pin
* of LM95245 temperature sensor therefore requires
* disabling for now
*/
lvp0 {
nvidia,pins = "lvp0";
nvidia,function = "rsvd3";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
};
};
ac97: ac97@70002000 {
tegra_ac97: ac97@70002000 {
status = "okay";
nvidia,codec-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
GPIO_ACTIVE_HIGH>;
nvidia,codec-sync-gpio = <&gpio TEGRA_GPIO(P, 0)
GPIO_ACTIVE_HIGH>;
nvidia,codec-reset-gpio =
<&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_HIGH>;
nvidia,codec-sync-gpio =
<&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
};
serial@70006040 {
compatible = "nvidia,tegra20-hsuart";
};
serial@70006300 {
compatible = "nvidia,tegra20-hsuart";
};
nand-controller@70008000 {
@ -243,7 +459,7 @@ i2c@7000c000 {
};
/* DDC_SCL/SDA on X3 pin 15/16 (e.g. display EDID) */
i2c_ddc: i2c@7000c400 {
hdmi_ddc: i2c@7000c400 {
clock-frequency = <10000>;
};
@ -256,59 +472,45 @@ i2c@7000d000 {
status = "okay";
clock-frequency = <100000>;
pmic: tps6586x@34 {
pmic@34 {
compatible = "ti,tps6586x";
reg = <0x34>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
ti,system-power-controller;
#gpio-cells = <2>;
gpio-controller;
sys-supply = <&vdd_3v3_reg>;
vin-sm0-supply = <&sys_reg>;
vin-sm1-supply = <&sys_reg>;
vin-sm2-supply = <&sys_reg>;
vinldo01-supply = <&sm2_reg>;
vinldo23-supply = <&vdd_3v3_reg>;
vinldo4-supply = <&vdd_3v3_reg>;
vinldo678-supply = <&vdd_3v3_reg>;
vinldo9-supply = <&vdd_3v3_reg>;
sys-supply = <&reg_module_3v3>;
vin-sm0-supply = <&reg_3v3_vsys>;
vin-sm1-supply = <&reg_3v3_vsys>;
vin-sm2-supply = <&reg_3v3_vsys>;
vinldo01-supply = <&reg_1v8_vdd_ddr2>;
vinldo23-supply = <&reg_module_3v3>;
vinldo4-supply = <&reg_module_3v3>;
vinldo678-supply = <&reg_module_3v3>;
vinldo9-supply = <&reg_module_3v3>;
regulators {
#address-cells = <1>;
#size-cells = <0>;
sys_reg: regulator@0 {
reg = <0>;
regulator-compatible = "sys";
regulator-name = "vdd_sys";
reg_3v3_vsys: sys {
regulator-name = "VSYS_3.3V";
regulator-always-on;
};
regulator@1 {
reg = <1>;
regulator-compatible = "sm0";
regulator-name = "vdd_sm0,vdd_core";
sm0 {
regulator-name = "VDD_CORE_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
regulator@2 {
reg = <2>;
regulator-compatible = "sm1";
regulator-name = "vdd_sm1,vdd_cpu";
sm1 {
regulator-name = "VDD_CPU_1.0V";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
};
sm2_reg: regulator@3 {
reg = <3>;
regulator-compatible = "sm2";
regulator-name = "vdd_sm2,vin_ldo*";
reg_1v8_vdd_ddr2: sm2 {
regulator-name = "VDD_DDR2_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
@ -316,80 +518,68 @@ sm2_reg: regulator@3 {
/* LDO0 is not connected to anything */
regulator@5 {
reg = <5>;
regulator-compatible = "ldo1";
regulator-name = "vdd_ldo1,avdd_pll*";
/*
* +3.3V_ENABLE_N switching via FET:
* AVDD_AUDIO_S and +3.3V
* see also +3.3V fixed supply
*/
ldo1 {
regulator-name = "AVDD_PLL_1.1V";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
};
regulator@6 {
reg = <6>;
regulator-compatible = "ldo2";
regulator-name = "vdd_ldo2,vdd_rtc";
ldo2 {
regulator-name = "VDD_RTC_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
/* LDO3 is not connected to anything */
regulator@8 {
reg = <8>;
regulator-compatible = "ldo4";
regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
ldo4 {
regulator-name = "VDDIO_SYS_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo5_reg: regulator@9 {
reg = <9>;
regulator-compatible = "ldo5";
regulator-name = "vdd_ldo5,vdd_fuse";
/* Switched via FET from regular +3.3V */
ldo5 {
regulator-name = "+3.3V_USB";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
regulator@10 {
reg = <10>;
regulator-compatible = "ldo6";
regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam";
ldo6 {
regulator-name = "AVDD_VDAC_2.85V";
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
};
hdmi_vdd_reg: regulator@11 {
reg = <11>;
regulator-compatible = "ldo7";
regulator-name = "vdd_ldo7,avdd_hdmi";
reg_3v3_avdd_hdmi: ldo7 {
regulator-name = "AVDD_HDMI_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
hdmi_pll_reg: regulator@12 {
reg = <12>;
regulator-compatible = "ldo8";
regulator-name = "vdd_ldo8,avdd_hdmi_pll";
reg_1v8_avdd_hdmi_pll: ldo8 {
regulator-name = "AVDD_HDMI_PLL_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
regulator@13 {
reg = <13>;
regulator-compatible = "ldo9";
regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
ldo9 {
regulator-name = "VDDIO_RX_DDR_2.85V";
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
regulator-always-on;
};
regulator@14 {
reg = <14>;
regulator-compatible = "ldo_rtc";
regulator-name = "vdd_rtc_out,vdd_cell";
ldo_rtc {
regulator-name = "VCC_BATT";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
@ -397,7 +587,8 @@ regulator@14 {
};
};
temperature-sensor@4c {
/* LM95245 temperature sensor */
temp-sensor@4c {
compatible = "national,lm95245";
reg = <0x4c>;
};
@ -410,6 +601,14 @@ pmc@7000e400 {
nvidia,core-pwr-good-time = <3845 3845>;
nvidia,core-pwr-off-time = <3875>;
nvidia,sys-clock-req-active-high;
/* Set SLEEP MODE bit in SUPPLYENE register of TPS658643 PMIC */
i2c-thermtrip {
nvidia,i2c-controller-id = <3>;
nvidia,bus-addr = <0x34>;
nvidia,reg-addr = <0x14>;
nvidia,reg-data = <0x8>;
};
};
memory-controller@7000f400 {
@ -483,79 +682,87 @@ emc-table@333000 {
};
};
/* EHCI instance 1: ULPI PHY -> AX88772B (On-module) */
usb@c5004000 {
status = "okay";
nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
GPIO_ACTIVE_LOW>;
#address-cells = <1>;
#size-cells = <0>;
asix@1 {
reg = <1>;
local-mac-address = [00 00 00 00 00 00];
};
};
usb-phy@c5004000 {
status = "okay";
nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
GPIO_ACTIVE_LOW>;
nvidia,phy-reset-gpio =
<&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_LOW>;
vbus-supply = <&reg_lan_v_bus>;
};
sdhci@c8000600 {
cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>;
clk32k_in: xtal3 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
};
clocks {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
clk32k_in: clock@0 {
compatible = "fixed-clock";
reg = <0>;
#clock-cells = <0>;
clock-frequency = <32768>;
};
reg_lan_v_bus: regulator-lan-v-bus {
compatible = "regulator-fixed";
regulator-name = "LAN_V_BUS";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
vdd_3v3_reg: regulator@100 {
compatible = "regulator-fixed";
reg = <100>;
regulator-name = "vdd_3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
regulator@101 {
compatible = "regulator-fixed";
reg = <101>;
regulator-name = "internal_usb";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
regulator-boot-on;
regulator-always-on;
gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
};
reg_module_3v3: regulator-module-3v3 {
compatible = "regulator-fixed";
regulator-name = "+V3.3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
sound {
compatible = "nvidia,tegra-audio-wm9712-colibri_t20",
"nvidia,tegra-audio-wm9712";
nvidia,model = "Colibri T20 AC97 Audio";
"nvidia,tegra-audio-wm9712";
nvidia,model = "Toradex Colibri T20";
nvidia,audio-routing =
"Headphone", "HPOUTL",
"Headphone", "HPOUTR",
"LineIn", "LINEINL",
"LineIn", "LINEINR",
"Mic", "MIC1";
nvidia,ac97-controller = <&ac97>;
nvidia,ac97-controller = <&tegra_ac97>;
clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
<&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
<&tegra_car TEGRA20_CLK_CDEV1>;
clock-names = "pll_a", "pll_a_out0", "mclk";
};
};
&gpio {
lan-reset-n {
gpio-hog;
gpios = <TEGRA_GPIO(V, 4) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "LAN_RESET#";
};
/* Tri-stating GMI_WR_N on SODIMM pin 99 nPWE */
npwe {
gpio-hog;
gpios = <TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "Tri-state nPWE";
};
/* Not tri-stating GMI_WR_N on SODIMM pin 93 RDnWR */
rdnwr {
gpio-hog;
gpios = <TEGRA_GPIO(T, 6) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "Not tri-state RDnWR";
};
};

View file

@ -303,7 +303,7 @@ nvec@7000c500 {
request-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
slave-addr = <138>;
clocks = <&tegra_car TEGRA20_CLK_I2C3>,
<&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
<&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
clock-names = "div-clk", "fast-clk";
resets = <&tegra_car 67>;
reset-names = "i2c";
@ -524,10 +524,10 @@ clk32k_in: clock@0 {
gpio-keys {
compatible = "gpio-keys";
power {
label = "Power";
wakeup {
label = "Wakeup";
gpios = <&gpio TEGRA_GPIO(J, 7) GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
linux,code = <KEY_WAKEUP>;
wakeup-source;
};
};
@ -599,8 +599,8 @@ sound {
GPIO_ACTIVE_HIGH>;
clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
<&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
<&tegra_car TEGRA20_CLK_CDEV1>;
<&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
<&tegra_car TEGRA20_CLK_CDEV1>;
clock-names = "pll_a", "pll_a_out0", "mclk";
};
};

View file

@ -419,19 +419,6 @@ uarte: serial@70006400 {
status = "disabled";
};
gmi@70009000 {
compatible = "nvidia,tegra20-gmi";
reg = <0x70009000 0x1000>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0xd0000000 0xfffffff>;
clocks = <&tegra_car TEGRA20_CLK_NOR>;
clock-names = "gmi";
resets = <&tegra_car 42>;
reset-names = "gmi";
status = "disabled";
};
nand-controller@70008000 {
compatible = "nvidia,tegra20-nand";
reg = <0x70008000 0x100>;
@ -447,6 +434,19 @@ nand-controller@70008000 {
status = "disabled";
};
gmi@70009000 {
compatible = "nvidia,tegra20-gmi";
reg = <0x70009000 0x1000>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0xd0000000 0xfffffff>;
clocks = <&tegra_car TEGRA20_CLK_NOR>;
clock-names = "gmi";
resets = <&tegra_car 42>;
reset-names = "gmi";
status = "disabled";
};
pwm: pwm@7000a000 {
compatible = "nvidia,tegra20-pwm";
reg = <0x7000a000 0x100>;
@ -865,5 +865,7 @@ pmu {
compatible = "arm,cortex-a9-pmu";
interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&{/cpus/cpu@0}>,
<&{/cpus/cpu@1}>;
};
};

View file

@ -6,11 +6,12 @@
/ {
model = "Toradex Apalis T30 on Apalis Evaluation Board";
compatible = "toradex,apalis_t30-eval", "toradex,apalis_t30", "nvidia,tegra30";
compatible = "toradex,apalis_t30-eval", "toradex,apalis_t30",
"nvidia,tegra30";
aliases {
rtc0 = "/i2c@7000c000/rtc@68";
rtc1 = "/i2c@7000d000/tps65911@2d";
rtc1 = "/i2c@7000d000/pmic@2d";
rtc2 = "/rtc@7000e000";
serial0 = &uarta;
serial1 = &uartb;
@ -23,8 +24,6 @@ chosen {
};
pcie@3000 {
status = "okay";
pci@1,0 {
status = "okay";
};
@ -32,10 +31,6 @@ pci@1,0 {
pci@2,0 {
status = "okay";
};
pci@3,0 {
status = "okay";
};
};
host1x@50000000 {
@ -45,27 +40,30 @@ rgb {
nvidia,panel = <&panel>;
};
};
hdmi@54280000 {
status = "okay";
hdmi-supply = <&reg_5v0>;
};
};
/* Apalis UART1 */
serial@70006000 {
status = "okay";
};
/* Apalis UART2 */
serial@70006040 {
compatible = "nvidia,tegra30-hsuart";
status = "okay";
};
/* Apalis UART3 */
serial@70006200 {
compatible = "nvidia,tegra30-hsuart";
status = "okay";
};
/* Apalis UART4 */
serial@70006300 {
compatible = "nvidia,tegra30-hsuart";
status = "okay";
};
@ -99,13 +97,13 @@ rtc@68 {
* CAM_I2C: I2C3_SDA/SCL on MXM3 pin 201/203 (e.g. camera sensor on
* carrier board)
*/
cami2c: i2c@7000c500 {
i2c@7000c500 {
status = "okay";
clock-frequency = <400000>;
};
/* DDC: I2C2_SDA/SCL on MXM3 pin 205/207 (e.g. display EDID) */
hdmiddc: i2c@7000c700 {
i2c@7000c700 {
status = "okay";
};
@ -113,29 +111,16 @@ hdmiddc: i2c@7000c700 {
spi@7000d400 {
status = "okay";
spi-max-frequency = <25000000>;
spidev0: spidev@1 {
compatible = "spidev";
reg = <1>;
spi-max-frequency = <25000000>;
};
};
/* SPI5: Apalis SPI2 */
spi@7000dc00 {
status = "okay";
spi-max-frequency = <25000000>;
spidev1: spidev@2 {
compatible = "spidev";
reg = <2>;
spi-max-frequency = <25000000>;
};
};
hda@70030000 {
status = "okay";
};
sd1: sdhci@78000000 {
/* Apalis SD1 */
sdhci@78000000 {
status = "okay";
bus-width = <4>;
/* SD1_CD# */
@ -143,7 +128,8 @@ sd1: sdhci@78000000 {
no-1-8-v;
};
mmc1: sdhci@78000400 {
/* Apalis MMC1 */
sdhci@78000400 {
status = "okay";
bus-width = <8>;
/* MMC1_CD# */
@ -154,12 +140,12 @@ mmc1: sdhci@78000400 {
/* EHCI instance 0: USB1_DP/N -> USBO1_DP/N */
usb@7d000000 {
status = "okay";
dr_mode = "otg";
};
usb-phy@7d000000 {
status = "okay";
dr_mode = "otg";
vbus-supply = <&usbo1_vbus_reg>;
vbus-supply = <&reg_usbo1_vbus>;
};
/* EHCI instance 1: USB2_DP/N -> USBH2_DP/N */
@ -169,7 +155,7 @@ usb@7d004000 {
usb-phy@7d004000 {
status = "okay";
vbus-supply = <&usbh_vbus_reg>;
vbus-supply = <&reg_usbh_vbus>;
};
/* EHCI instance 2: USB3_DP/N -> USBH3_DP/N */
@ -179,18 +165,17 @@ usb@7d008000 {
usb-phy@7d008000 {
status = "okay";
vbus-supply = <&usbh_vbus_reg>;
vbus-supply = <&reg_usbh_vbus>;
};
backlight: backlight {
compatible = "pwm-backlight";
/* PWM_BKL1 */
pwms = <&pwm 0 5000000>;
brightness-levels = <255 231 223 207 191 159 127 0>;
default-brightness-level = <6>;
/* BKL1_ON */
enable-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
power-supply = <&reg_3v3>;
pwms = <&pwm 0 5000000>; /* BKL1_PWM */
};
gpio-keys {
@ -211,64 +196,53 @@ panel: panel {
* edt,et070080dh6: EDT 7.0" LCD TFT
*/
compatible = "edt,et057090dhu", "simple-panel";
backlight = <&backlight>;
power-supply = <&reg_3v3>;
};
pwmleds {
compatible = "pwm-leds";
pwm1 {
label = "PWM1";
pwms = <&pwm 3 19600>;
max-brightness = <255>;
};
pwm2 {
label = "PWM2";
pwms = <&pwm 2 19600>;
max-brightness = <255>;
};
pwm3 {
label = "PWM3";
pwms = <&pwm 1 19600>;
max-brightness = <255>;
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3.3V_SW";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
regulators {
sys_5v0_reg: regulator@1 {
compatible = "regulator-fixed";
reg = <1>;
regulator-name = "5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
};
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V_SW";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
/* USBO1_EN */
usbo1_vbus_reg: regulator@2 {
compatible = "regulator-fixed";
reg = <2>;
regulator-name = "usbo1_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&sys_5v0_reg>;
};
/* USBO1_EN */
reg_usbo1_vbus: regulator-usbo1-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USBO1";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&reg_5v0>;
};
/* USBH_EN */
usbh_vbus_reg: regulator@3 {
compatible = "regulator-fixed";
reg = <3>;
regulator-name = "usbh_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&sys_5v0_reg>;
};
/* USBH_EN */
reg_usbh_vbus: regulator-usbh-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USBH(2A|2C|2D|3|4)";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&reg_5v0>;
};
};
&gpio {
/* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
pex-perst-n {
gpio-hog;
gpios = <TEGRA_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PEX_PERST_N";
};
};

View file

@ -0,0 +1,266 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "tegra30-apalis-v1.1.dtsi"
/ {
model = "Toradex Apalis T30 on Apalis Evaluation Board";
compatible = "toradex,apalis_t30-v1.1-eval", "toradex,apalis_t30-eval",
"toradex,apalis_t30-v1.1", "toradex,apalis_t30",
"nvidia,tegra30";
aliases {
rtc0 = "/i2c@7000c000/rtc@68";
rtc1 = "/i2c@7000d000/pmic@2d";
rtc2 = "/rtc@7000e000";
serial0 = &uarta;
serial1 = &uartb;
serial2 = &uartc;
serial3 = &uartd;
};
chosen {
stdout-path = "serial0:115200n8";
};
pcie@3000 {
pci@1,0 {
status = "okay";
};
pci@2,0 {
status = "okay";
};
};
host1x@50000000 {
dc@54200000 {
rgb {
status = "okay";
nvidia,panel = <&panel>;
};
};
hdmi@54280000 {
status = "okay";
hdmi-supply = <&reg_5v0>;
};
};
/* Apalis UART1 */
serial@70006000 {
status = "okay";
};
/* Apalis UART2 */
serial@70006040 {
status = "okay";
};
/* Apalis UART3 */
serial@70006200 {
status = "okay";
};
/* Apalis UART4 */
serial@70006300 {
status = "okay";
};
pwm@7000a000 {
status = "okay";
};
/*
* GEN1_I2C: I2C1_SDA/SCL on MXM3 pin 209/211 (e.g. RTC on carrier
* board)
*/
i2c@7000c000 {
status = "okay";
clock-frequency = <400000>;
pcie-switch@58 {
compatible = "plx,pex8605";
reg = <0x58>;
};
/* M41T0M6 real time clock on carrier board */
rtc@68 {
compatible = "st,m41t0";
reg = <0x68>;
};
};
/* GEN2_I2C: unused */
/*
* CAM_I2C: I2C3_SDA/SCL on MXM3 pin 201/203 (e.g. camera sensor on
* carrier board)
*/
i2c@7000c500 {
status = "okay";
clock-frequency = <400000>;
};
/* DDC: I2C2_SDA/SCL on MXM3 pin 205/207 (e.g. display EDID) */
i2c@7000c700 {
status = "okay";
};
/* SPI1: Apalis SPI1 */
spi@7000d400 {
status = "okay";
spi-max-frequency = <25000000>;
};
/* SPI5: Apalis SPI2 */
spi@7000dc00 {
status = "okay";
spi-max-frequency = <25000000>;
};
/* Apalis SD1 */
sdhci@78000000 {
status = "okay";
bus-width = <4>;
/* SD1_CD# */
cd-gpios = <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_LOW>;
no-1-8-v;
};
/* Apalis MMC1 */
sdhci@78000400 {
status = "okay";
bus-width = <8>;
/* MMC1_CD# */
cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
vqmmc-supply = <&reg_vddio_sdmmc3>;
};
/* EHCI instance 0: USB1_DP/N -> USBO1_DP/N */
usb@7d000000 {
status = "okay";
dr_mode = "otg";
};
usb-phy@7d000000 {
status = "okay";
vbus-supply = <&reg_usbo1_vbus>;
};
/* EHCI instance 1: USB2_DP/N -> USBH2_DP/N */
usb@7d004000 {
status = "okay";
};
usb-phy@7d004000 {
status = "okay";
vbus-supply = <&reg_usbh_vbus>;
};
/* EHCI instance 2: USB3_DP/N -> USBH3_DP/N */
usb@7d008000 {
status = "okay";
};
usb-phy@7d008000 {
status = "okay";
vbus-supply = <&reg_usbh_vbus>;
};
backlight: backlight {
compatible = "pwm-backlight";
brightness-levels = <255 231 223 207 191 159 127 0>;
default-brightness-level = <6>;
/* BKL1_ON */
enable-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
power-supply = <&reg_3v3>;
pwms = <&pwm 0 5000000>; /* BKL1_PWM */
};
gpio-keys {
compatible = "gpio-keys";
wakeup {
label = "WAKE1_MICO";
gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_LOW>;
linux,code = <KEY_WAKEUP>;
debounce-interval = <10>;
wakeup-source;
};
};
panel: panel {
/*
* edt,et057090dhu: EDT 5.7" LCD TFT
* edt,et070080dh6: EDT 7.0" LCD TFT
*/
compatible = "edt,et057090dhu", "simple-panel";
backlight = <&backlight>;
power-supply = <&reg_3v3>;
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3.3V_SW";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V_SW";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
/* USBO1_EN */
reg_usbo1_vbus: regulator-usbo1-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USBO1";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&reg_5v0>;
};
/* USBH_EN */
reg_usbh_vbus: regulator-usbh-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USBH(2A|2C|2D|3|4)";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&reg_5v0>;
};
/*
* 1.8 volt resp. 3.3 volt VDDIO_SDMMC3 depending on
* EN_+3.3_SDMMC3 GPIO
*/
reg_vddio_sdmmc3: regulator-vddio-sdmmc3 {
compatible = "regulator-gpio";
regulator-name = "VDDIO_SDMMC3";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-type = "voltage";
gpios = <&gpio TEGRA_GPIO(J, 5) GPIO_ACTIVE_HIGH>;
states = <1800000 0x0
3300000 0x1>;
startup-delay-us = <100000>;
vin-supply = <&vddio_sdmmc_1v8_reg>;
};
};
&gpio {
/* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
pex-perst-n {
gpio-hog;
gpios = <TEGRA_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PEX_PERST_N";
};
};

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,15 +1,17 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "tegra30-colibri.dtsi"
/ {
model = "Toradex Colibri T30 on Colibri Evaluation Board";
compatible = "toradex,colibri_t30-eval-v3", "toradex,colibri_t30", "nvidia,tegra30";
compatible = "toradex,colibri_t30-eval-v3", "toradex,colibri_t30",
"nvidia,tegra30";
aliases {
rtc0 = "/i2c@7000c000/rtc@68";
rtc1 = "/i2c@7000d000/tps65911@2d";
rtc1 = "/i2c@7000d000/pmic@2d";
rtc2 = "/rtc@7000e000";
serial0 = &uarta;
serial1 = &uartb;
@ -27,22 +29,25 @@ rgb {
nvidia,panel = <&panel>;
};
};
hdmi@54280000 {
status = "okay";
hdmi-supply = <&reg_5v0>;
};
};
/* Colibri UART-A */
serial@70006000 {
status = "okay";
};
/* Colibri UART-C */
serial@70006040 {
compatible = "nvidia,tegra30-hsuart";
status = "okay";
};
/* Colibri UART-B */
serial@70006300 {
compatible = "nvidia,tegra30-hsuart";
status = "okay";
};
@ -65,8 +70,12 @@ rtc@68 {
};
};
/* GEN2_I2C: unused */
/* CAM_I2C (I2C3): unused */
/* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */
hdmiddc: i2c@7000c700 {
i2c@7000c700 {
status = "okay";
};
@ -74,18 +83,17 @@ hdmiddc: i2c@7000c700 {
spi@7000d400 {
status = "okay";
spi-max-frequency = <25000000>;
can0: can@0 {
can@0 {
compatible = "microchip,mcp2515";
reg = <0>;
clocks = <&clk16m>;
interrupt-parent = <&gpio>;
interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_EDGE_RISING>;
/* CAN_INT */
interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_EDGE_FALLING>;
spi-max-frequency = <10000000>;
};
spidev0: spi@1 {
compatible = "spidev";
reg = <1>;
spi-max-frequency = <25000000>;
vdd-supply = <&reg_3v3>;
xceiver-supply = <&reg_5v0>;
};
};
@ -93,19 +101,19 @@ spidev0: spi@1 {
sdhci@78000200 {
status = "okay";
bus-width = <4>;
cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>;
cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>; /* MMCD */
no-1-8-v;
};
/* EHCI instance 0: USB1_DP/N -> USBC_P/N */
usb@7d000000 {
status = "okay";
dr_mode = "otg";
};
usb-phy@7d000000 {
status = "okay";
dr_mode = "otg";
vbus-supply = <&usbc_vbus_reg>;
vbus-supply = <&reg_usbc_vbus>;
};
/* EHCI instance 2: USB3_DP/N -> USBH_P/N */
@ -115,28 +123,23 @@ usb@7d008000 {
usb-phy@7d008000 {
status = "okay";
vbus-supply = <&usbh_vbus_reg>;
vbus-supply = <&reg_usbh_vbus>;
};
backlight: backlight {
compatible = "pwm-backlight";
/* PWM<A> */
pwms = <&pwm 0 5000000>;
brightness-levels = <255 128 64 32 16 8 4 0>;
default-brightness-level = <6>;
/* BL_ON */
enable-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
power-supply = <&reg_3v3>;
pwms = <&pwm 0 5000000>; /* PWM<A> */
};
clocks {
clk16m: clk@1 {
compatible = "fixed-clock";
reg = <1>;
#clock-cells = <0>;
clock-frequency = <16000000>;
clock-output-names = "clk16m";
};
clk16m: osc3 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <16000000>;
};
gpio-keys {
@ -157,58 +160,39 @@ panel: panel {
* edt,et070080dh6: EDT 7.0" LCD TFT
*/
compatible = "edt,et057090dhu", "simple-panel";
backlight = <&backlight>;
power-supply = <&reg_3v3>;
};
pwmleds {
compatible = "pwm-leds";
pwmb {
label = "PWM<B>";
pwms = <&pwm 1 19600>;
max-brightness = <255>;
};
pwmc {
label = "PWM<C>";
pwms = <&pwm 2 19600>;
max-brightness = <255>;
};
pwmd {
label = "PWM<D>";
pwms = <&pwm 3 19600>;
max-brightness = <255>;
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3.3V_SW";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
regulators {
sys_5v0_reg: regulator@1 {
compatible = "regulator-fixed";
reg = <1>;
regulator-name = "5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
};
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V_SW";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
usbc_vbus_reg: regulator@2 {
compatible = "regulator-fixed";
reg = <2>;
regulator-name = "usbc_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&sys_5v0_reg>;
};
reg_usbc_vbus: regulator-usbc-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USB5";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_5v0>;
};
/* USBH_PEN */
usbh_vbus_reg: regulator@3 {
compatible = "regulator-fixed";
reg = <3>;
regulator-name = "usbh_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
vin-supply = <&sys_5v0_reg>;
};
/* USBH_PEN resp. USB_P_EN */
reg_usbh_vbus: regulator-usbh-vbus {
compatible = "regulator-fixed";
regulator-name = "VCC_USB[1-4]";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
vin-supply = <&reg_5v0>;
};
};

File diff suppressed because it is too large Load diff

View file

@ -896,7 +896,7 @@ phy1: usb-phy@7d000000 {
nvidia,elastic-limit = <16>;
nvidia,term-range-adj = <6>;
nvidia,xcvr-setup = <51>;
nvidia.xcvr-setup-use-fuses;
nvidia,xcvr-setup-use-fuses;
nvidia,xcvr-lsfslew = <1>;
nvidia,xcvr-lsrslew = <1>;
nvidia,xcvr-hsslew = <32>;
@ -933,7 +933,7 @@ phy2: usb-phy@7d004000 {
nvidia,elastic-limit = <16>;
nvidia,term-range-adj = <6>;
nvidia,xcvr-setup = <51>;
nvidia.xcvr-setup-use-fuses;
nvidia,xcvr-setup-use-fuses;
nvidia,xcvr-lsfslew = <2>;
nvidia,xcvr-lsrslew = <2>;
nvidia,xcvr-hsslew = <32>;
@ -969,7 +969,7 @@ phy3: usb-phy@7d008000 {
nvidia,elastic-limit = <16>;
nvidia,term-range-adj = <6>;
nvidia,xcvr-setup = <51>;
nvidia.xcvr-setup-use-fuses;
nvidia,xcvr-setup-use-fuses;
nvidia,xcvr-lsfslew = <2>;
nvidia,xcvr-lsrslew = <2>;
nvidia,xcvr-hsslew = <32>;
@ -1013,5 +1013,9 @@ pmu {
<GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&{/cpus/cpu@0}>,
<&{/cpus/cpu@1}>,
<&{/cpus/cpu@2}>,
<&{/cpus/cpu@3}>;
};
};