Skip to content

Commit

Permalink
asus: transformer: add t30 based device family
Browse files Browse the repository at this point in the history
Includes 7 ASUS devices:
- Transformer Prime TF201
- Transformer Pad TF300T/TF300TG/TF300TL
- VivoTab RT TF600T (Windows RT based)
- Transformer Infinity TF700T
- Transformer AiO P1801-T

Tested-by: Andreas Westman Dorcsak <[email protected]> # all devices
Signed-off-by: Svyatoslav Ryhel <[email protected]>
  • Loading branch information
clamor-s committed Oct 18, 2022
1 parent c62cc62 commit db9826a
Show file tree
Hide file tree
Showing 15 changed files with 925 additions and 0 deletions.
7 changes: 7 additions & 0 deletions arch/arm/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,13 @@ dtb-$(CONFIG_ARCH_TEGRA) += \
tegra20-colibri.dtb \
tegra20-qemu.dtb \
tegra30-apalis.dtb \
tegra30-asus-p1801-t.dtb \
tegra30-asus-tf201.dtb \
tegra30-asus-tf300t.dtb \
tegra30-asus-tf300tg.dtb \
tegra30-asus-tf300tl.dtb \
tegra30-asus-tf600t.dtb \
tegra30-asus-tf700t.dtb \
tegra30-beaver.dtb \
tegra30-cardhu.dtb \
tegra30-colibri.dtb \
Expand Down
83 changes: 83 additions & 0 deletions arch/arm/dts/tegra30-asus-p1801-t.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/dts-v1/;

#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/linux-event-codes.h>

#include "tegra30-asus-transformer.dtsi"

/ {
model = "Asus Transformer AiO P1801-T";

pmic_i2c: i2c@7000d000 {
status = "okay";
clock-frequency = <400000>;

/* Texas Instruments TPS659110 PMIC */
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;

regulators {
/* eMMC VDD */
vcore_emmc: ldo1 {
regulator-name = "vdd_emmc_core";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};

/* uSD slot VDD */
vdd_usd: ldo2 {
regulator-name = "vdd_usd";
regulator-min-microvolt = <3100000>;
regulator-max-microvolt = <3100000>;
};

/* uSD slot VDDIO */
vddio_usd: ldo3 {
regulator-name = "vddio_usd";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3100000>;
};
};
};
};

gpio-keyboard {
compatible = "gpio-kbd";

power {
label = "Power";
gpios = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
linux,code = <KEY_ENTER>;
};

volume-up {
label = "Volume Up";
gpios = <&gpio TEGRA_GPIO(Q, 2) GPIO_ACTIVE_LOW>;
linux,code = <KEY_UP>;
};

volume-down {
label = "Volume Down";
gpios = <&gpio TEGRA_GPIO(Q, 3) GPIO_ACTIVE_LOW>;
linux,code = <KEY_DOWN>;
};

mode {
label = "Mode";
gpios = <&gpio TEGRA_GPIO(K, 2) GPIO_ACTIVE_LOW>;
linux,code = <KEY_MODE>;
};
};
};
152 changes: 152 additions & 0 deletions arch/arm/dts/tegra30-asus-tf201.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/dts-v1/;

#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/linux-event-codes.h>

#include "tegra30-asus-transformer.dtsi"

/ {
model = "Asus Transformer Prime TF201";

host1x@50000000 {
status = "okay";
dc@54200000 {
status = "okay";
rgb {
status = "okay";

nvidia,panel = <&panel>;

display-timings {
timing@0 {
/* 1280x800@60Hz */
clock-frequency = <68000000>;
hactive = <1280>;
vactive = <800>;
hfront-porch = <48>;
hback-porch = <18>;
hsync-len = <30>;
vsync-len = <5>;
vfront-porch = <3>;
vback-porch = <12>;
hsync-active = <1>;
};
};
};
};
};

pmic_i2c: i2c@7000d000 {
status = "okay";
clock-frequency = <400000>;

/* Texas Instruments TPS659110 PMIC */
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;

regulators {
/* eMMC VDD */
vcore_emmc: ldo1 {
regulator-name = "vdd_emmc_core";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};

/* uSD slot VDD */
vdd_usd: ldo2 {
regulator-name = "vdd_usd";
regulator-min-microvolt = <3100000>;
regulator-max-microvolt = <3100000>;
};

/* uSD slot VDDIO */
vddio_usd: ldo3 {
regulator-name = "vddio_usd";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3100000>;
};
};
};
};

backlight: backlight {
compatible = "pwm-backlight";

enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
power-supply = <&vdd_5v0_bl>;
pwms = <&pwm 0 4000000>;

brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <6>;
};

gpio-keyboard {
compatible = "gpio-kbd";

power {
label = "Power";
gpios = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
linux,code = <KEY_ENTER>;
};

volume-up {
label = "Volume Up";
gpios = <&gpio TEGRA_GPIO(Q, 2) GPIO_ACTIVE_LOW>;
linux,code = <KEY_UP>;
};

volume-down {
label = "Volume Down";
gpios = <&gpio TEGRA_GPIO(Q, 3) GPIO_ACTIVE_LOW>;
linux,code = <KEY_DOWN>;
};
};

panel: panel {
compatible = "simple-panel";

power-supply = <&vdd_pnl_reg>;
enable-gpios = <&gpio TEGRA_GPIO(N, 6) GPIO_ACTIVE_HIGH>;

backlight = <&backlight>;
};

regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;

vdd_pnl_reg: regulator@0 {
compatible = "regulator-fixed";
reg = <0>;
regulator-name = "vdd_panel";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio TEGRA_GPIO(W, 1) GPIO_ACTIVE_HIGH>;
enable-active-high;
};

vdd_5v0_bl: regulator@1 {
compatible = "regulator-fixed";
reg = <1>;
regulator-name = "vdd_5v0_bl";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
gpio = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
};
Loading

0 comments on commit db9826a

Please sign in to comment.