Commit 6d0a067f authored by Marcel Ziswiler's avatar Marcel Ziswiler Committed by Thierry Reding

ARM: tegra: initial support for apalis t30

This patch adds the device tree to support Toradex Apalis T30, a
computer on module which can be used on different carrier boards.

The module consists of a Tegra 3 SoC, two PMICs, 1 or 2 GB of DDR3L
RAM, eMMC, an LM95245 temperature sensor chip, an i210 resp. i211
gigabit Ethernet controller, an STMPE811 ADC/touch controller as well
as two MCP2515 CAN controllers. Furthermore, there is an SGTL5000 audio
codec which is not yet supported. Anything that is not self contained
on the module is disabled by default.

The device tree for the Evaluation Board includes the modules device
tree and enables the supported peripherals of the carrier board (the
Evaluation Board supports almost all of them).

While at it also add the device tree binding documentation for Apalis
T30.
Signed-off-by: default avatarMarcel Ziswiler <marcel@ziswiler.com>
[swarren: fixed some node sort orders]
Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
parent 33f34f0c
...@@ -30,6 +30,8 @@ board-specific compatible values: ...@@ -30,6 +30,8 @@ board-specific compatible values:
nvidia,seaboard nvidia,seaboard
nvidia,ventana nvidia,ventana
nvidia,whistler nvidia,whistler
toradex,apalis_t30
toradex,apalis_t30-eval
toradex,colibri_t20-512 toradex,colibri_t20-512
toradex,iris toradex,iris
......
...@@ -390,6 +390,7 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ ...@@ -390,6 +390,7 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
tegra20-trimslice.dtb \ tegra20-trimslice.dtb \
tegra20-ventana.dtb \ tegra20-ventana.dtb \
tegra20-whistler.dtb \ tegra20-whistler.dtb \
tegra30-apalis-eval.dtb \
tegra30-beaver.dtb \ tegra30-beaver.dtb \
tegra30-cardhu-a02.dtb \ tegra30-cardhu-a02.dtb \
tegra30-cardhu-a04.dtb \ tegra30-cardhu-a04.dtb \
......
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "tegra30-apalis.dtsi"
/ {
model = "Toradex Apalis T30 on Apalis Evaluation Board";
compatible = "toradex,apalis_t30-eval", "nvidia,tegra30";
aliases {
rtc0 = "/i2c@7000c000/rtc@68";
rtc1 = "/i2c@7000d000/tps65911@2d";
rtc2 = "/rtc@7000e000";
};
pcie-controller@00003000 {
status = "okay";
pci@1,0 {
status = "okay";
};
pci@2,0 {
status = "okay";
};
pci@3,0 {
status = "okay";
};
};
host1x@50000000 {
dc@54200000 {
rgb {
status = "okay";
nvidia,panel = <&panel>;
};
};
hdmi@54280000 {
status = "okay";
};
};
serial@70006000 {
status = "okay";
};
serial@70006040 {
compatible = "nvidia,tegra30-hsuart";
status = "okay";
};
serial@70006200 {
compatible = "nvidia,tegra30-hsuart";
status = "okay";
};
serial@70006300 {
compatible = "nvidia,tegra30-hsuart";
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 = <100000>;
pcie-switch@58 {
compatible = "plx,pex8605";
reg = <0x58>;
};
/* M41T0M6 real time clock on carrier board */
rtc@68 {
compatible = "st,m41t00";
reg = <0x68>;
};
};
/* GEN2_I2C: unused */
/*
* CAM_I2C: I2C3_SDA/SCL on MXM3 pin 201/203 (e.g. camera sensor on
* carrier board)
*/
cami2c: i2c@7000c500 {
status = "okay";
clock-frequency = <400000>;
};
/* DDC: I2C2_SDA/SCL on MXM3 pin 205/207 (e.g. display EDID) */
hdmiddc: i2c@7000c700 {
status = "okay";
};
/* SPI1: Apalis SPI1 */
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>;
};
};
sd1: sdhci@78000000 {
status = "okay";
bus-width = <4>;
/* SD1_CD# */
cd-gpios = <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_LOW>;
no-1-8-v;
};
mmc1: sdhci@78000400 {
status = "okay";
bus-width = <8>;
/* MMC1_CD# */
cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
no-1-8-v;
};
/* EHCI instance 0: USB1_DP/N -> USBO1_DP/N */
usb@7d000000 {
status = "okay";
};
usb-phy@7d000000 {
status = "okay";
vbus-supply = <&usbo1_vbus_reg>;
};
/* EHCI instance 1: USB2_DP/N -> USBH2_DP/N */
usb@7d004000 {
status = "okay";
};
usb-phy@7d004000 {
status = "okay";
vbus-supply = <&usbh_vbus_reg>;
};
/* EHCI instance 2: USB3_DP/N -> USBH3_DP/N */
usb@7d008000 {
status = "okay";
};
usb-phy@7d008000 {
status = "okay";
vbus-supply = <&usbh_vbus_reg>;
};
backlight: backlight {
compatible = "pwm-backlight";
/* PWM0 */
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>;
};
gpio-keys {
compatible = "gpio-keys";
power {
label = "Power";
gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
debounce-interval = <10>;
gpio-key,wakeup;
};
};
panel: panel {
/*
* edt,et057090dhu: EDT 5.7" LCD TFT
* edt,et070080dh6: EDT 7.0" LCD TFT
*/
compatible = "edt,et057090dhu", "simple-panel";
backlight = <&backlight>;
};
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>;
};
};
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;
};
/* 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>;
};
/* 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>;
};
};
};
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment