ARM: tegra: add Tegra Note 7 device tree

Tegra Note 7 is a consumer tablet embedding a Tegra 4 SoC with 1GB RAM
and a 720p panel.

The following hardware is enabled by this device tree: UART, eMMC, USB
(needs external power), PMIC, backlight, DSI panel, keys.

SD card, HDMI, charger, self-powered USB, audio, wifi, bluetooth are not
yet supported but might be by future patches (likely in that order).

Touch panel, sensors & cameras will probably never be supported.

Pinctrl is not set yet, as the bootloader-provided values allow us to
use the currently supported hardware.

Initrd addresses are hardcoded to match the static values used by the
bootloader, since it won't add them for us. All the same, a kernel
command-line is provided to replace the one passed by the bootloader
which is filled with garbage.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
[treding@nvidia.com: DT fixes, DSI panel support]
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
Alexandre Courbot 2014-05-02 16:59:08 +09:00 committed by Stephen Warren
parent cffb57e623
commit 6f3df63ffb
2 changed files with 349 additions and 0 deletions

View File

@ -368,6 +368,7 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
tegra30-cardhu-a02.dtb \
tegra30-cardhu-a04.dtb \
tegra114-dalmore.dtb \
tegra114-tn7.dtb \
tegra124-jetson-tk1.dtb \
tegra124-venice2.dtb
dtb-$(CONFIG_ARCH_VERSATILE) += versatile-ab.dtb \

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;
};
};
};