// SPDX-License-Identifier: GPL-2.0 /dts-v1/; #include <dt-bindings/input/gpio-keys.h> #include <dt-bindings/input/input.h> #include "tegra114.dtsi" / { model = "Asus Transformer Pad TF701T"; compatible = "asus,tf701t", "nvidia,tegra114"; chassis-type = "convertible"; aliases { mmc0 = "/mmc@78000600"; /* eMMC */ mmc1 = "/mmc@78000400"; /* uSD slot */ mmc2 = "/mmc@78000000"; /* WiFi */ rtc0 = &palmas; rtc1 = "/rtc@7000e000"; serial0 = &uartd; /* Console */ serial1 = &uartc; /* Bluetooth */ serial2 = &uartb; /* GPS */ }; firmware { trusted-foundations { compatible = "tlm,trusted-foundations"; tlm,version-major = <2>; tlm,version-minor = <8>; }; }; memory@80000000 { reg = <0x80000000 0x80000000>; }; reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; linux,cma@80000000 { compatible = "shared-dma-pool"; alloc-ranges = <0x80000000 0x30000000>; size = <0x10000000>; linux,cma-default; reusable; }; trustzone@bfe00000 { reg = <0xbfe00000 0x200000>; no-map; }; }; host1x@50000000 { dsi@54300000 { status = "okay"; avdd-dsi-csi-supply = <&tps65913_ldo2>; nvidia,ganged-mode = <&dsib>; panel_primary: panel@0 { compatible = "sharp,lq101r1sx01"; reg = <0>; link2 = <&panel_secondary>; power-supply = <&vdd_lcd>; backlight = <&backlight>; }; }; dsi@54400000 { status = "okay"; avdd-dsi-csi-supply = <&tps65913_ldo2>; panel_secondary: panel@0 { compatible = "sharp,lq101r1sx01"; reg = <0>; }; }; }; pinmux@70000868 { asus_pad_ec_default: pinmux-asus-pad-ec-default { ec-interrupt { nvidia,pins = "kb_col5_pq5"; nvidia,function = "kbc"; nvidia,pull = <TEGRA_PIN_PULL_UP>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; }; ec-request { nvidia,pins = "kb_col2_pq2"; nvidia,function = "kbc"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; }; backlight_default: pinmux-backlight-default { backlight-enable { nvidia,pins = "gmi_ad10_ph2"; nvidia,function = "gmi"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; }; codec_default: pinmux-codec-default { interrupt { nvidia,pins = "gpio_w2_aud_pw2", "gpio_w3_aud_pw3"; nvidia,function = "spi6"; nvidia,pull = <TEGRA_PIN_PULL_UP>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; }; ldo1-en { nvidia,pins = "sdmmc1_wp_n_pv3"; nvidia,function = "sdmmc1"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; }; gpio_hall_sensor_default: pinmux-gpio-hall-sensor-default { ulpi_data4_po5 { nvidia,pins = "ulpi_data4_po5"; nvidia,function = "spi2"; nvidia,pull = <TEGRA_PIN_PULL_UP>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; }; }; gpio_keys_default: pinmux-gpio-keys-default { power { nvidia,pins = "kb_col0_pq0"; nvidia,function = "kbc"; nvidia,pull = <TEGRA_PIN_PULL_UP>; nvidia,tristate = <TEGRA_PIN_ENABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; }; volume { nvidia,pins = "kb_row1_pr1", "kb_row2_pr2"; nvidia,function = "rsvd2"; nvidia,pull = <TEGRA_PIN_PULL_UP>; nvidia,tristate = <TEGRA_PIN_ENABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; }; }; hp_det_default: pinmux-hp-det-default { gmi_iordy_pi5 { nvidia,pins = "kb_row7_pr7"; nvidia,function = "rsvd2"; nvidia,pull = <TEGRA_PIN_PULL_UP>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; }; }; imu_default: pinmux-imu-default { kb_row3_pr3 { nvidia,pins = "kb_row3_pr3"; nvidia,function = "rsvd3"; nvidia,pull = <TEGRA_PIN_PULL_DOWN>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; }; }; pwm_default: pinmux-pwm-default { gmi_ad9_ph1 { nvidia,pins = "gmi_ad9_ph1"; nvidia,function = "pwm1"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; }; /* XXX make this something more sensible */ pwm_sleep: pinmux-pwm-sleep { gmi_ad9_ph1 { nvidia,pins = "gmi_ad9_ph1"; nvidia,function = "pwm1"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; }; sdmmc3_default: pinmux-sdmmc3-default { drive_sdio3 { nvidia,pins = "drive_sdio3"; nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>; nvidia,schmitt = <TEGRA_PIN_DISABLE>; nvidia,pull-down-strength = <22>; nvidia,pull-up-strength = <36>; nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>; nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>; }; sdmmc3_clk_pa6 { nvidia,pins = "sdmmc3_clk_pa6"; nvidia,function = "sdmmc3"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; }; sdmmc3_cmd_pa7 { nvidia,pins = "sdmmc3_cmd_pa7", "sdmmc3_dat0_pb7", "sdmmc3_dat1_pb6", "sdmmc3_dat2_pb5", "sdmmc3_dat3_pb4", "kb_col4_pq4", "sdmmc3_clk_lb_out_pee4", "sdmmc3_clk_lb_in_pee5", "sdmmc3_cd_n_pv2"; nvidia,function = "sdmmc3"; nvidia,pull = <TEGRA_PIN_PULL_UP>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; }; }; sdmmc3_vdd_default: pinmux-sdmmc3-vdd-default { gmi_clk_pk1 { nvidia,pins = "gmi_clk_pk1"; nvidia,function = "gmi"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; }; vdd_lcd_default: pinmux-vdd-lcd-default { sdmmc4_clk_pcc4 { nvidia,pins = "sdmmc4_clk_pcc4"; nvidia,function = "sdmmc4"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; }; }; serial@70006040 { /* GPS */ }; serial@70006200 { /* Bluetooth */ }; serial@70006300 { /delete-property/ dmas; /delete-property/ dma-names; status = "okay"; }; pwm@7000a000 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&pwm_default>; pinctrl-1 = <&pwm_sleep>; }; i2c@7000c000 { status = "okay"; clock-frequency = <100000>; magnetometer@c { compatible = "asahi-kasei,ak09911"; reg = <0xc>; vdd-supply = <&vdd_3v3_sys>; }; rt5639: audio-codec@1c { compatible = "realtek,rt5639"; reg = <0x1c>; interrupt-parent = <&gpio>; interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_EDGE_FALLING>; realtek,ldo1-en-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&codec_default>; }; temp_sensor: temperature-sensor@4c { compatible = "onnn,nct1008"; reg = <0x4c>; vcc-supply = <&vdd_3v3_sys>; #thermal-sensor-cells = <1>; }; motion-tracker@68 { compatible = "invensense,mpu6500"; reg = <0x68>; interrupt-parent = <&gpio>; interrupts = <TEGRA_GPIO(R, 3) IRQ_TYPE_LEVEL_HIGH>; mount-matrix = "0", "-1", "0", "1", "0", "0", "0", "0", "1"; pinctrl-names = "default"; pinctrl-0 = <&imu_default>; }; }; i2c@7000c400 { status = "okay"; clock-frequency = <100000>; power-sensor@44 { compatible = "ti,ina230"; reg = <0x44>; }; }; i2c@7000c500 { status = "okay"; clock-frequency = <400000>; light-sensor@1c { compatible = "dynaimage,al3320a"; reg = <0x1c>; vdd-supply = <&vdd_3v3_sys>; }; }; i2c@7000c700 { /* HDMI DDC */ }; i2c@7000d000 { status = "okay"; clock-frequency = <400000>; palmas: pmic@58 { compatible = "ti,tps65913", "ti,palmas"; reg = <0x58>; interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; #interrupt-cells = <2>; interrupt-controller; ti,system-power-controller; palmas_gpio: gpio { compatible = "ti,palmas-gpio"; gpio-controller; #gpio-cells = <2>; }; pinmux { compatible = "ti,tps65913-pinctrl"; ti,palmas-enable-dvfs1; pinctrl-names = "default"; pinctrl-0 = <&palmas_default>; palmas_default: pinmux { pin_gpio0 { pins = "gpio0"; function = "gpio"; }; pin_gpio1 { pins = "gpio1"; function = "gpio"; }; pin_gpio2 { pins = "gpio2"; function = "gpio"; }; pin_gpio3 { pins = "gpio3"; function = "gpio"; }; pin_gpio4 { pins = "gpio4"; function = "gpio"; }; pin_gpio5 { pins = "gpio5"; function = "gpio"; }; pin_gpio6 { pins = "gpio6"; function = "gpio"; }; pin_gpio7 { pins = "gpio7"; function = "gpio"; }; pin_powergood { pins = "powergood"; function = "powergood"; }; pin_vac { pins = "vac"; function = "vac"; }; }; }; pmic { compatible = "ti,tps65913-pmic", "ti,palmas-pmic"; ldo1-in-supply = <&tps65913_smps7>; ldo2-in-supply = <&tps65913_smps7>; ldo4-in-supply = <&tps65913_smps8>; ldo5-in-supply = <&tps65913_smps9>; ldo6-in-supply = <&tps65913_smps9>; ldo7-in-supply = <&tps65913_smps9>; ldo9-in-supply = <&tps65913_smps9>; regulators { tps65913_smps123: smps123 { regulator-name = "vdd-cpu"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <1350000>; regulator-always-on; regulator-boot-on; ti,roof-floor = <1>; ti,mode-sleep = <3>; }; tps65913_smps45: smps45 { regulator-name = "vdd-core"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <1400000>; regulator-always-on; regulator-boot-on; ti,roof-floor = <3>; }; smps6 { regulator-name = "va-lcd-hv"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-always-on; regulator-boot-on; }; tps65913_smps7: smps7 { regulator-name = "vdd-ddr"; regulator-min-microvolt = <1350000>; regulator-max-microvolt = <1350000>; regulator-always-on; regulator-boot-on; }; tps65913_smps8: smps8 { regulator-name = "vdd-1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; tps65913_smps9: smps9 { regulator-name = "vdd-sd"; regulator-min-microvolt = <2900000>; regulator-max-microvolt = <2900000>; regulator-always-on; }; tps65913_smps10_out1: smps10_out1 { regulator-name = "vd-smps10-out1"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; }; tps65913_smps10_out2: smps10_out2 { regulator-name = "vd-smps10-out2"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; }; tps65913_ldo1: ldo1 { regulator-name = "vdd-hdmi-pll"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; regulator-always-on; ti,roof-floor = <3>; }; tps65913_ldo2: ldo2 { regulator-name = "vdd-2v8-dsi-csi"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-boot-on; }; ldo3 { regulator-name = "vpp-fuse"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; ldo4 { regulator-name = "vdd-1v2-cam"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; }; ldo5 { regulator-name = "vdd-cam"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; }; ldo6 { regulator-name = "vdd-dev"; regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; regulator-boot-on; }; ldo7 { regulator-name = "vdd-2v8-cam"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; }; tps65913_ldo8: ldo8 { regulator-name = "vdd-rtc"; regulator-min-microvolt = <950000>; regulator-max-microvolt = <950000>; regulator-always-on; regulator-boot-on; ti,enable-ldo8-tracking; }; tps65913_ldo9: ldo9 { regulator-name = "vdd-sdmmc"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2900000>; }; tps65913_ldoln: ldoln { regulator-name = "vdd-hdmi"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; ldousb { regulator-name = "vdd-usb"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; }; }; rtc { compatible = "ti,palmas-rtc"; interrupt-parent = <&palmas>; interrupts = <8 0>; }; }; }; ahub@70080000 { i2s@70080300 { status = "okay"; }; }; mmc@78000000 { /* WiFi */ }; /* MicroSD card */ mmc@78000400 { status = "okay"; bus-width = <4>; cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; nvidia,default-tap = <0x3>; nvidia,default-trim = <0x3>; vmmc-supply = <&vdd_usd>; vqmmc-supply = <&tps65913_ldo9>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc3_default>; }; mmc@78000600 { /* eMMC */ }; usb@7d000000 { compatible = "nvidia,tegra114-udc"; status = "okay"; dr_mode = "peripheral"; /* Peripheral USB via ASUS connector */ }; usb-phy@7d000000 { status = "okay"; }; usb@7d008000 { status = "okay"; /* Host USB via dock */ }; usb-phy@7d008000 { status = "okay"; vbus-supply = <&vdd_5v0_sys>; }; backlight: backlight { compatible = "pwm-backlight"; enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>; power-supply = <&vdd_5v0_sys>; pwms = <&pwm 1 1000000>; brightness-levels = <1 255>; num-interpolated-steps = <254>; default-brightness-level = <224>; pinctrl-names = "default"; pinctrl-0 = <&backlight_default>; }; /* PMIC has a built-in 32KHz oscillator which is used by PMC */ clk32k_in: clock-32k { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <32768>; clock-output-names = "pmic-oscillator"; }; gpio-hall-sensor { compatible = "gpio-keys"; label = "GPIO Hall Effect Sensor"; pinctrl-names = "default"; pinctrl-0 = <&gpio_hall_sensor_default>; switch-hall-sensor { label = "Hall Effect Sensor"; gpios = <&gpio TEGRA_GPIO(O, 5) GPIO_ACTIVE_LOW>; linux,input-type = <EV_SW>; linux,code = <SW_LID>; linux,can-disable; wakeup-source; }; }; gpio-keys { compatible = "gpio-keys"; label = "GPIO Buttons"; pinctrl-names = "default"; pinctrl-0 = <&gpio_keys_default>; button-power { label = "Power"; gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>; linux,code = <KEY_POWER>; debounce-interval = <10>; wakeup-source; }; button-volume-down { label = "Volume Down"; gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>; linux,code = <KEY_VOLUMEDOWN>; debounce-interval = <10>; }; button-volume-up { label = "Volume Up"; gpios = <&gpio TEGRA_GPIO(R, 2) GPIO_ACTIVE_LOW>; linux,code = <KEY_VOLUMEUP>; debounce-interval = <10>; }; }; sound { compatible = "asus,tegra-audio-rt5639-tf701t", "nvidia,tegra-audio-rt5640"; nvidia,model = "Asus Transformer Pad TF701T RT5639"; nvidia,audio-routing = "Headphones", "HPOR", "Headphones", "HPOL", "Speakers", "SPORP", "Speakers", "SPORN", "Speakers", "SPOLP", "Speakers", "SPOLN", "Mic Jack", "MICBIAS1", "IN2P", "Mic Jack"; nvidia,i2s-controller = <&tegra_i2s0>; nvidia,audio-codec = <&rt5639>; nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_LOW>; clocks = <&tegra_car TEGRA114_CLK_PLL_A>, <&tegra_car TEGRA114_CLK_PLL_A_OUT0>, <&tegra_pmc TEGRA_PMC_CLK_OUT_1>; clock-names = "pll_a", "pll_a_out0", "mclk"; assigned-clocks = <&tegra_car TEGRA114_CLK_EXTERN1>, <&tegra_pmc TEGRA_PMC_CLK_OUT_1>; assigned-clock-parents = <&tegra_car TEGRA114_CLK_PLL_A_OUT0>, <&tegra_car TEGRA114_CLK_EXTERN1>; pinctrl-names = "default"; pinctrl-0 = <&hp_det_default>; }; vdd_5v0_sys: regulator-5v0-sys { compatible = "regulator-fixed"; regulator-name = "vdd_5v0"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; }; vdd_3v3_sys: regulator-3v3-sys { compatible = "regulator-fixed"; regulator-name = "vdd_3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; vdd_lcd: regulator-vdd-lcd { compatible = "regulator-fixed"; regulator-name = "vdd_lcd_1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; vin-supply = <&tps65913_smps8>; enable-active-high; gpio = <&gpio TEGRA_GPIO(CC, 4) GPIO_ACTIVE_HIGH>; regulator-boot-on; pinctrl-names = "default"; pinctrl-0 = <&vdd_lcd_default>; }; vdd_usd: regulator-vdd-usd { compatible = "regulator-fixed"; regulator-name = "vdd_sd_slot"; regulator-min-microvolt = <2900000>; regulator-max-microvolt = <2900000>; vin-supply = <&tps65913_smps9>; enable-active-high; gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc3_vdd_default>; }; };