ARM: tegra: device tree changes for 3.16

The bulk of Tegra changes for 3.16 are to device trees. Highlights are:
 
 - New board support for:
   - Jetson TK1.
   - SHIELD.
   - Tegra Note 7.
   - Colibri T30 module.
 - HDMI support on Venice2.
 - SD card write-protect GPIOs added to some boards.
 - Numerous regulator cleanups.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJTdldeAAoJEMzrak5tbycxb9cP/0Jhsx+pYsXw2paEkg4U0TWN
 0KhZJpdrOcuwWxJnTnHA7XTwc/XR1aN2mfes1WftGuAUcklkjf8oO03/8HsBMph6
 z2qKzlzGMb+E78VKploGR5ytYygbTRCXTVhQUZH+zSKp2+1HowRkVP/y2MhOT9DG
 jSTkI75BXIKWxXkx05wSq2FbLRy4DVw98I/BRhVM6ttlT5lwKWxmRwAe5YgHwztD
 w/TymCxAE7Fw3PubTwQbUIpMJJEbBLmqdJRB/4ESINKDH0j0Cq/WQYZEJeNCkRjG
 wK07voXCtjtOZDhhtaHzS5Yyfa46CrqM5F1N/UIXyTXCTpPmQNbQzB2kTlaQtvf6
 4/CHWXVm5jUwEjA+EdQX9oSJFQxO/ycs8Y3vZfvzT2ej1v8t+hyNTRB7/p9C8OyQ
 tGRab6fhnEnkDqW6bNE69Qw1XWh3B81blN2CG0CDQ6+dytyVqjd+jOY/NEkoA1Bw
 nuKhPSwnog+QQYASYF4lCLWPj6eUDTGkh7JoY0V8J8Z+Lz9+HUYJLa5vaij1u7WE
 buhvuAOfLoIVRdR0w9d3afZ5Ds5xwQddjwnwvqaWQrea/iLk91LL+T3P0J5YCIua
 iLgnx0yUDIIXJUuei1ZDqUS6J+9bspTWEo5m2vMKbZwlUtLalQWru2OmiqpQOFHf
 Mh6+7htYfwEUD2x/Q8NL
 =5rER
 -----END PGP SIGNATURE-----

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

Merge "ARM: tegra: device tree changes for 3.16" from Stephen Warren:

The bulk of Tegra changes for 3.16 are to device trees. Highlights are:

- New board support for:
  - Jetson TK1.
  - SHIELD.
  - Tegra Note 7.
  - Colibri T30 module.
- HDMI support on Venice2.
- SD card write-protect GPIOs added to some boards.
- Numerous regulator cleanups.

* tag 'tegra-for-3.16-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: initial add of Colibri T30
  ARM: tegra: add device tree for SHIELD
  ARM: tegra: add SD wp-gpios to Venice2 DT
  ARM: tegra: add Tegra Note 7 device tree
  ARM: tegra: add SD wp-gpios to Dalmore DT
  ARM: tegra: add SD wp-gpios to Jetson TK1 DT
  ARM: tegra: use correct audio CODEC on Jetson TK1
  ARM: tegra: dalmore - Add DSI power supply
  ARM: tegra: dalmore - Add +5V HDMI supply
  ARM: tegra: beaver - Add +5V HDMI supply
  ARM: tegra: harmony - Add +5V HDMI supply
  ARM: tegra: jetson-tk1 - Enable HDMI support
  ARM: tegra: venice2 - Enable HDMI
  ARM: tegra: Add Tegra124 HDMI support
  ARM: tegra: fix Venice2 SD card VQMMC supply
  ARM: tegra: make Venice's +3.3V_RUN regulator always on
  ARM: tegra: fix Jetson TK1 SD card supply
  ARM: tegra: define Jetson TK1 regulators
  ARM: tegra: add Jetson TK1 device tree

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2014-05-21 15:06:16 -07:00
commit 8b1b57e88e
11 changed files with 3965 additions and 8 deletions

View File

@ -370,7 +370,11 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
tegra30-beaver.dtb \
tegra30-cardhu-a02.dtb \
tegra30-cardhu-a04.dtb \
tegra30-colibri-eval-v3.dtb \
tegra114-dalmore.dtb \
tegra114-roth.dtb \
tegra114-tn7.dtb \
tegra124-jetson-tk1.dtb \
tegra124-venice2.dtb
dtb-$(CONFIG_ARCH_U300) += ste-u300.dtb
dtb-$(CONFIG_ARCH_U8500) += ste-snowball.dtb \

View File

@ -25,6 +25,7 @@ host1x@50000000 {
hdmi@54280000 {
status = "okay";
hdmi-supply = <&vdd_5v0_hdmi>;
vdd-supply = <&vdd_hdmi_reg>;
pll-supply = <&palmas_smps3_reg>;
@ -36,6 +37,8 @@ hdmi@54280000 {
dsi@54300000 {
status = "okay";
avdd-dsi-csi-supply = <&avdd_1v2_reg>;
panel@0 {
compatible = "panasonic,vvx10f004b00",
"simple-panel";
@ -982,12 +985,10 @@ ldo2 {
regulator-max-microvolt = <2800000>;
};
ldo3 {
avdd_1v2_reg: ldo3 {
regulator-name = "avdd-dsi-csi";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-boot-on;
};
ldo4 {
@ -1105,6 +1106,7 @@ i2s@70080400 {
sdhci@78000400 {
cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
wp-gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_HIGH>;
bus-width = <4>;
status = "okay";
};
@ -1231,8 +1233,6 @@ vdd_hdmi_reg: regulator@5 {
regulator-name = "vdd_hdmi_5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>;
vin-supply = <&tps65090_dcdc1_reg>;
};
@ -1245,6 +1245,17 @@ vdd_cam_1v8_reg: regulator@6 {
enable-active-high;
gpio = <&palmas_gpio 6 0>;
};
vdd_5v0_hdmi: regulator@7 {
compatible = "regulator-fixed";
reg = <7>;
regulator-name = "VDD_5V0_HDMI_CON";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&tps65090_dcdc1_reg>;
};
};
sound {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,348 @@
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "tegra114.dtsi"
/ {
model = "Tegra Note 7";
compatible = "nvidia,tn7", "nvidia,tegra114";
chosen {
/* TN7's bootloader's arguments need to be overridden */
bootargs = "console=ttyS0,115200n8 console=tty1 gpt fbcon=rotate:2";
/* TN7's bootloader will place initrd at this address */
linux,initrd-start = <0x82000000>;
linux,initrd-end = <0x82800000>;
};
firmware {
trusted-foundations {
compatible = "tlm,trusted-foundations";
tlm,version-major = <2>;
tlm,version-minor = <8>;
};
};
memory {
/* memory >= 0x37e00000 is reserved for firmware usage */
reg = <0x80000000 0x37e00000>;
};
host1x@50000000 {
dsi@54300000 {
status = "okay";
vdd-supply = <&vdd_1v2_ap>;
panel@0 {
compatible = "lg,ld070wx3-sl01";
reg = <0>;
power-supply = <&vdd_lcd>;
backlight = <&backlight>;
};
};
};
serial@70006300 {
status = "okay";
};
pwm@7000a000 {
status = "okay";
};
i2c@7000d000 {
status = "okay";
clock-frequency = <400000>;
palmas: pmic@58 {
compatible = "ti,palmas";
reg = <0x58>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
#interrupt-cells = <2>;
interrupt-controller;
ti,system-power-controller;
palmas_gpio: gpio {
compatible = "ti,palmas-gpio";
gpio-controller;
#gpio-cells = <2>;
};
pmic {
compatible = "ti,tps65913-pmic", "ti,palmas-pmic";
ldoln-in-supply = <&vdd_smps10_out2>;
regulators {
smps123 {
regulator-name = "vd-cpu";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
regulator-boot-on;
};
smps45 {
regulator-name = "vd-soc";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
regulator-boot-on;
};
smps6 {
regulator-name = "va-lcd-hv";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-always-on;
regulator-boot-on;
};
smps7 {
regulator-name = "vd-ddr";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1350000>;
regulator-always-on;
regulator-boot-on;
};
vdd_1v8: smps8 {
regulator-name = "vs-pmu-1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
};
vdd_2v9_sys: smps9 {
regulator-name = "vs-sys-2v9";
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
regulator-always-on;
regulator-boot-on;
};
vdd_smps10_out1: smps10_out1 {
regulator-name = "vd-smps10-out1";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
regulator-boot-on;
};
vdd_smps10_out2: smps10_out2 {
regulator-name = "vd-smps10-out2";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
regulator-boot-on;
};
ldo1 {
regulator-name = "va-pllx";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
regulator-always-on;
regulator-boot-on;
};
vdd_1v2_ap: ldo2 {
regulator-name = "va-ap-1v2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-boot-on;
};
ldo3 {
regulator-name = "vd-fuse";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
};
ldo4 {
regulator-name = "vd-ts-hv";
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3200000>;
regulator-always-on;
regulator-boot-on;
};
ldo5 {
regulator-name = "va-cam2-hv";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2700000>;
};
ldo6 {
regulator-name = "va-sns-hv";
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
};
ldo7 {
regulator-name = "va-cam1-hv";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2700000>;
};
ldo8 {
regulator-name = "va-ap-rtc";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
ti,enable-ldo8-tracking;
regulator-always-on;
regulator-boot-on;
};
ldo9 {
regulator-name = "vi-sdcard";
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
ldousb {
regulator-name = "avdd-usb";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
regulator-boot-on;
};
ldoln {
regulator-name = "va-hdmi";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
};
rtc {
compatible = "ti,palmas-rtc";
interrupt-parent = <&palmas>;
interrupts = <8 0>;
};
};
};
pmc@7000e400 {
nvidia,invert-interrupt;
};
/* eMMC */
sdhci@78000600 {
status = "okay";
bus-width = <8>;
vmmc-supply = <&vdd_1v8>;
non-removable;
};
usb@7d000000 {
status = "okay";
};
usb-phy@7d000000 {
status = "okay";
nvidia,xcvr-setup = <7>;
nvidia,xcvr-lsfslew = <2>;
nvidia,xcvr-lsrslew = <2>;
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
/* Should be changed to "otg" once we have vbus_supply */
/* As of now, USB devices need to be powered externally */
dr_mode = "host";
};
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm 1 40000>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <6>;
power-supply = <&lcd_bl_en>;
};
clocks {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
clk32k_in: clock {
compatible = "fixed-clock";
reg = <0>;
#clock-cells = <0>;
clock-frequency = <32768>;
};
};
gpio-keys {
compatible = "gpio-keys";
power {
label = "Power";
gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
gpio-key,wakeup;
};
volume_down {
label = "Volume Down";
gpios = <&gpio TEGRA_GPIO(Q, 2) GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
};
volume_up {
label = "Volume Up";
gpios = <&gpio TEGRA_GPIO(R, 2) GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
};
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
/* FIXME: output of BQ24192 */
vs_sys: regulator@0 {
compatible = "regulator-fixed";
reg = <0>;
regulator-name = "VS_SYS";
regulator-min-microvolt = <4200000>;
regulator-max-microvolt = <4200000>;
regulator-always-on;
regulator-boot-on;
};
lcd_bl_en: regulator@1 {
compatible = "regulator-fixed";
reg = <1>;
regulator-name = "VDD_LCD_BL";
regulator-min-microvolt = <16500000>;
regulator-max-microvolt = <16500000>;
gpio = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vs_sys>;
regulator-boot-on;
};
vdd_lcd: regulator@2 {
compatible = "regulator-fixed";
reg = <2>;
regulator-name = "VD_LCD_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&palmas_gpio 4 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_1v8>;
regulator-boot-on;
};
};
};

File diff suppressed because it is too large Load Diff

View File

@ -17,6 +17,18 @@ memory {
};
host1x@0,50000000 {
hdmi@0,54280000 {
status = "okay";
vdd-supply = <&vdd_3v3_hdmi>;
pll-supply = <&vdd_hdmi_pll>;
hdmi-supply = <&vdd_5v0_hdmi>;
nvidia,ddc-i2c-bus = <&hdmi_ddc>;
nvidia,hpd-gpio =
<&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
};
sor@0,54540000 {
status = "okay";
@ -601,7 +613,7 @@ i2c@0,7000c500 {
clock-frequency = <100000>;
};
i2c@0,7000c700 {
hdmi_ddc: i2c@0,7000c700 {
status = "okay";
clock-frequency = <100000>;
};
@ -700,7 +712,7 @@ sd3 {
regulator-boot-on;
};
sd4 {
vdd_1v05_run: sd4 {
regulator-name = "+1.05V_RUN";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
@ -931,9 +943,10 @@ pmc@0,7000e400 {
sdhci@0,700b0400 {
cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>;
wp-gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>;
status = "okay";
bus-width = <4>;
vmmc-supply = <&vddio_sdmmc3>;
vqmmc-supply = <&vddio_sdmmc3>;
};
sdhci@0,700b0600 {
@ -1060,6 +1073,8 @@ vdd_3v3_run: regulator@3 {
regulator-name = "+3.3V_RUN";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
regulator-boot-on;
gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_3v3_sys>;
@ -1145,6 +1160,27 @@ vdd_3v3_lp0: regulator@10 {
enable-active-high;
vin-supply = <&vdd_3v3_sys>;
};
vdd_hdmi_pll: regulator@11 {
compatible = "regulator-fixed";
reg = <11>;
regulator-name = "+1.05V_RUN_AVDD_HDMI_PLL";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_LOW>;
vin-supply = <&vdd_1v05_run>;
};
vdd_5v0_hdmi: regulator@12 {
compatible = "regulator-fixed";
reg = <12>;
regulator-name = "+5V_HDMI_CON";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_5v0_sys>;
};
};
sound {

View File

@ -51,6 +51,18 @@ dc@0,54240000 {
nvidia,head = <1>;
};
hdmi@0,54280000 {
compatible = "nvidia,tegra124-hdmi";
reg = <0x0 0x54280000 0x0 0x00040000>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&tegra_car TEGRA124_CLK_HDMI>,
<&tegra_car TEGRA124_CLK_PLL_D2_OUT0>;
clock-names = "hdmi", "parent";
resets = <&tegra_car 51>;
reset-names = "hdmi";
status = "disabled";
};
sor@0,54540000 {
compatible = "nvidia,tegra124-sor";
reg = <0x0 0x54540000 0x0 0x00040000>;

View File

@ -28,6 +28,7 @@ rgb {
hdmi@54280000 {
status = "okay";
hdmi-supply = <&vdd_5v0_hdmi>;
vdd-supply = <&hdmi_vdd_reg>;
pll-supply = <&hdmi_pll_reg>;
@ -724,6 +725,17 @@ vdd_bl_reg: regulator@5 {
gpio = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vdd_5v0_hdmi: regulator@6 {
compatible = "regulator-fixed";
reg = <6>;
regulator-name = "VDDIO_HDMI";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA_GPIO(T, 2) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_5v0_reg>;
};
};
sound {

View File

@ -40,6 +40,7 @@ host1x@50000000 {
hdmi@54280000 {
status = "okay";
hdmi-supply = <&vdd_5v0_hdmi>;
vdd-supply = <&sys_3v3_reg>;
pll-supply = <&vio_reg>;
@ -478,6 +479,17 @@ sys_3v3_pexs_reg: regulator@7 {
gpio = <&gpio TEGRA_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
vin-supply = <&sys_3v3_reg>;
};
vdd_5v0_hdmi: regulator@8 {
compatible = "regulator-fixed";
reg = <8>;
regulator-name = "+VDD_5V_HDMI";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
regulator-boot-on;
vin-supply = <&sys_3v3_reg>;
};
};
sound {

View File

@ -0,0 +1,205 @@
/dts-v1/;
#include "tegra30-colibri.dtsi"
/ {
model = "Toradex Colibri T30 on Colibri Evaluation Board";
compatible = "toradex,colibri_t30-eval-v3", "toradex,colibri_t30", "nvidia,tegra30";
aliases {
rtc0 = "/i2c@7000c000/rtc@68";
rtc1 = "/i2c@7000d000/tps65911@2d";
rtc2 = "/rtc@7000e000";
};
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@70006300 {
compatible = "nvidia,tegra30-hsuart";
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 = <100000>;
/* M41T0M6 real time clock on carrier board */
rtc@68 {
compatible = "stm,m41t00";
reg = <0x68>;
};
};
/* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */
hdmiddc: i2c@7000c700 {
status = "okay";
};
/* SPI1: Colibri SSP */
spi@7000d400 {
status = "okay";
spi-max-frequency = <25000000>;
can0: can@0 {
compatible = "microchip,mcp2515";
reg = <0>;
clocks = <&clk16m>;
interrupt-parent = <&gpio>;
interrupts = <TEGRA_GPIO(S, 0) GPIO_ACTIVE_LOW>;
spi-max-frequency = <10000000>;
};
spidev0: spi@1 {
compatible = "spidev";
reg = <1>;
spi-max-frequency = <25000000>;
};
};
sdhci@78000200 {
status = "okay";
bus-width = <4>;
cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>;
no-1-8-v;
};
/* EHCI instance 0: USB1_DP/N -> USBC_P/N */
usb@7d000000 {
status = "okay";
};
usb-phy@7d000000 {
status = "okay";
dr_mode = "otg";
vbus-supply = <&usbc_vbus_reg>;
};
/* EHCI instance 2: USB3_DP/N -> USBH_P/N */
usb@7d008000 {
status = "okay";
};
usb-phy@7d008000 {
status = "okay";
vbus-supply = <&usbh_vbus_reg>;
};
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>;
};
clocks {
clk16m: clk@1 {
compatible = "fixed-clock";
reg=<1>;
#clock-cells = <0>;
clock-frequency = <16000000>;
clock-output-names = "clk16m";
};
};
gpio-keys {
compatible = "gpio-keys";
power {
label = "Power";
gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_HIGH>;
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";
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>;
};
};
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;
};
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>;
};
/* 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>;
};
};
};

View File

@ -0,0 +1,377 @@
#include <dt-bindings/input/input.h>
#include "tegra30.dtsi"
/*
* Toradex Colibri T30 Device Tree
* Compatible for Revisions 1.1B/1.1C/1.1D
*/
/ {
model = "Toradex Colibri T30";
compatible = "toradex,colibri_t30", "nvidia,tegra30";
memory {
reg = <0x80000000 0x40000000>;
};
host1x@50000000 {
hdmi@54280000 {
vdd-supply = <&sys_3v3_reg>;
pll-supply = <&vio_reg>;
nvidia,hpd-gpio =
<&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
nvidia,ddc-i2c-bus = <&hdmiddc>;
};
};
pinmux@70000868 {
pinctrl-names = "default";
pinctrl-0 = <&state_default>;
state_default: pinmux {
/* Colibri BL_ON */
pv2 {
nvidia,pins = "pv2";
nvidia,function = "rsvd4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/* Colibri Backlight PWM<A> */
sdmmc3_dat3_pb4 {
nvidia,pins = "sdmmc3_dat3_pb4";
nvidia,function = "pwm0";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/* Colibri CAN_INT */
kb_row8_ps0 {
nvidia,pins = "kb_row8_ps0";
nvidia,function = "kbc";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
};
/*
* Colibri L_BIAS, LCD_M1 is muxed with LCD_DE
* todays display need DE, disable LCD_M1
*/
lcd_m1_pw1 {
nvidia,pins = "lcd_m1_pw1";
nvidia,function = "rsvd3";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
};
/* Thermal alert, need to be disabled */
lcd_dc1_pd2 {
nvidia,pins = "lcd_dc1_pd2";
nvidia,function = "rsvd3";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
};
/* Colibri MMC */
kb_row10_ps2 {
nvidia,pins = "kb_row10_ps2";
nvidia,function = "sdmmc2";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
kb_row11_ps3 {
nvidia,pins = "kb_row11_ps3",
"kb_row12_ps4",
"kb_row13_ps5",
"kb_row14_ps6",
"kb_row15_ps7";
nvidia,function = "sdmmc2";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/* Colibri SSP */
ulpi_clk_py0 {
nvidia,pins = "ulpi_clk_py0",
"ulpi_dir_py1",
"ulpi_nxt_py2",
"ulpi_stp_py3";
nvidia,function = "spi1";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
sdmmc3_dat6_pd3 {
nvidia,pins = "sdmmc3_dat6_pd3",
"sdmmc3_dat7_pd4";
nvidia,function = "spdif";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
/* Colibri UART_A */
ulpi_data0 {
nvidia,pins = "ulpi_data0_po1",
"ulpi_data1_po2",
"ulpi_data2_po3",
"ulpi_data3_po4",
"ulpi_data4_po5",
"ulpi_data5_po6",
"ulpi_data6_po7",
"ulpi_data7_po0";
nvidia,function = "uarta";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/* Colibri UART_B */
gmi_a16_pj7 {
nvidia,pins = "gmi_a16_pj7",
"gmi_a17_pb0",
"gmi_a18_pb1",
"gmi_a19_pk7";
nvidia,function = "uartd";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/* Colibri UART_C */
uart2_rxd {
nvidia,pins = "uart2_rxd_pc3",
"uart2_txd_pc2";
nvidia,function = "uartb";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
/* eMMC */
sdmmc4_clk_pcc4 {
nvidia,pins = "sdmmc4_clk_pcc4",
"sdmmc4_rst_n_pcc3";
nvidia,function = "sdmmc4";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
sdmmc4_dat0_paa0 {
nvidia,pins = "sdmmc4_dat0_paa0",
"sdmmc4_dat1_paa1",
"sdmmc4_dat2_paa2",
"sdmmc4_dat3_paa3",
"sdmmc4_dat4_paa4",
"sdmmc4_dat5_paa5",
"sdmmc4_dat6_paa6",
"sdmmc4_dat7_paa7";
nvidia,function = "sdmmc4";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
};
};
hdmiddc: i2c@7000c700 {
clock-frequency = <100000>;
};
/*
* PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
* touch screen controller
*/
i2c@7000d000 {
status = "okay";
clock-frequency = <100000>;
pmic: tps65911@2d {
compatible = "ti,tps65911";
reg = <0x2d>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
#interrupt-cells = <2>;
interrupt-controller;
ti,system-power-controller;
#gpio-cells = <2>;
gpio-controller;
vcc1-supply = <&sys_3v3_reg>;
vcc2-supply = <&sys_3v3_reg>;
vcc3-supply = <&vio_reg>;
vcc4-supply = <&sys_3v3_reg>;
vcc5-supply = <&sys_3v3_reg>;
vcc6-supply = <&vio_reg>;
vcc7-supply = <&sys_5v0_reg>;
vccio-supply = <&sys_3v3_reg>;
regulators {
/* SW1: +V1.35_VDDIO_DDR */
vdd1_reg: vdd1 {
regulator-name = "vddio_ddr_1v35";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1350000>;
regulator-always-on;
};
/* SW2: unused */
/* SW CTRL: +V1.0_VDD_CPU */
vddctrl_reg: vddctrl {
regulator-name = "vdd_cpu,vdd_sys";
regulator-min-microvolt = <1150000>;
regulator-max-microvolt = <1150000>;
regulator-always-on;
};
/* SWIO: +V1.8 */
vio_reg: vio {
regulator-name = "vdd_1v8_gen";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
/* LDO1: unused */
/*
* EN_+V3.3 switching via FET:
* +V3.3_AUDIO_AVDD_S, +V3.3 and +V1.8_VDD_LAN
* see also v3_3 fixed supply
*/
ldo2_reg: ldo2 {
regulator-name = "en_3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
/* LDO3: unused */
/* +V1.2_VDD_RTC */
ldo4_reg: ldo4 {
regulator-name = "vdd_rtc";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
/*
* +V2.8_AVDD_VDAC:
* only required for analog RGB
*/
ldo5_reg: ldo5 {
regulator-name = "avdd_vdac";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
/*
* +V1.05_AVDD_PLLE: avdd_plle should be 1.05V
* but LDO6 can't set voltage in 50mV
* granularity
*/
ldo6_reg: ldo6 {
regulator-name = "avdd_plle";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
};
/* +V1.2_AVDD_PLL */
ldo7_reg: ldo7 {
regulator-name = "avdd_pll";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
/* +V1.0_VDD_DDR_HS */
ldo8_reg: ldo8 {
regulator-name = "vdd_ddr_hs";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
};
};
};
/*
* LM95245 temperature sensor
* Note: OVERT_N directly connected to PMIC PWRDN
*/
temp-sensor@4c {
compatible = "national,lm95245";
reg = <0x4c>;
};
/* SW: +V1.2_VDD_CORE */
tps62362@60 {
compatible = "ti,tps62362";
reg = <0x60>;
regulator-name = "tps62362-vout";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
regulator-always-on;
ti,vsel0-state-low;
/* VSEL1: EN_CORE_DVFS_N low for DVFS */
ti,vsel1-state-low;
};
};
pmc@7000e400 {
nvidia,invert-interrupt;
nvidia,suspend-mode = <1>;
nvidia,cpu-pwr-good-time = <5000>;
nvidia,cpu-pwr-off-time = <5000>;
nvidia,core-pwr-good-time = <3845 3845>;
nvidia,core-pwr-off-time = <0>;
nvidia,core-power-req-active-high;
nvidia,sys-clock-req-active-high;
};
emmc: sdhci@78000600 {
status = "okay";
bus-width = <8>;
non-removable;
};
/* EHCI instance 1: USB2_DP/N -> AX88772B */
usb@7d004000 {
status = "okay";
};
usb-phy@7d004000 {
status = "okay";
nvidia,is-wired = <1>;
};
clocks {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
clk32k_in: clk@0 {
compatible = "fixed-clock";
reg=<0>;
#clock-cells = <0>;
clock-frequency = <32768>;
};
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
sys_3v3_reg: regulator@100 {
compatible = "regulator-fixed";
reg = <100>;
regulator-name = "3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
};