#include <dt-bindings/input/input.h> #include "tegra124.dtsi" / { aliases { rtc0 = "/i2c@0,7000d000/pmic@40"; rtc1 = "/rtc@0,7000e000"; serial0 = &uarta; }; memory { reg = <0x0 0x80000000 0x0 0x80000000>; }; 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"; nvidia,dpaux = <&dpaux>; nvidia,panel = <&panel>; }; dpaux@0,545c0000 { vdd-supply = <&vdd_3v3_panel>; status = "okay"; }; }; serial@0,70006000 { /* Debug connector on the bottom of the board near SD card. */ status = "okay"; }; pwm@0,7000a000 { status = "okay"; }; i2c@0,7000c000 { status = "okay"; clock-frequency = <100000>; acodec: audio-codec@10 { compatible = "maxim,max98090"; reg = <0x10>; interrupt-parent = <&gpio>; interrupts = <TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>; }; temperature-sensor@4c { compatible = "ti,tmp451"; reg = <0x4c>; interrupt-parent = <&gpio>; interrupts = <TEGRA_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>; #thermal-sensor-cells = <1>; }; }; i2c@0,7000c400 { status = "okay"; clock-frequency = <100000>; trackpad@15 { compatible = "elan,ekth3000"; reg = <0x15>; interrupt-parent = <&gpio>; interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_EDGE_FALLING>; wakeup-source; }; }; i2c@0,7000c500 { status = "okay"; clock-frequency = <400000>; tpm@20 { compatible = "infineon,slb9645tt"; reg = <0x20>; }; }; hdmi_ddc: i2c@0,7000c700 { status = "okay"; clock-frequency = <100000>; }; i2c@0,7000d000 { status = "okay"; clock-frequency = <400000>; pmic: pmic@40 { compatible = "ams,as3722"; reg = <0x40>; interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>; ams,system-power-controller; #interrupt-cells = <2>; interrupt-controller; gpio-controller; #gpio-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&as3722_default>; as3722_default: pinmux { gpio0 { pins = "gpio0"; function = "gpio"; bias-pull-down; }; gpio1 { pins = "gpio1"; function = "gpio"; bias-pull-up; }; gpio2_4_7 { pins = "gpio2", "gpio4", "gpio7"; function = "gpio"; bias-pull-up; }; gpio3_6 { pins = "gpio3", "gpio6"; bias-high-impedance; }; gpio5 { pins = "gpio5"; function = "clk32k-out"; bias-pull-down; }; }; regulators { vsup-sd2-supply = <&vdd_5v0_sys>; vsup-sd3-supply = <&vdd_5v0_sys>; vsup-sd4-supply = <&vdd_5v0_sys>; vsup-sd5-supply = <&vdd_5v0_sys>; vin-ldo0-supply = <&vdd_1v35_lp0>; vin-ldo1-6-supply = <&vdd_3v3_run>; vin-ldo2-5-7-supply = <&vddio_1v8>; vin-ldo3-4-supply = <&vdd_3v3_sys>; vin-ldo9-10-supply = <&vdd_5v0_sys>; vin-ldo11-supply = <&vdd_3v3_run>; vdd_cpu: sd0 { regulator-name = "+VDD_CPU_AP"; regulator-min-microvolt = <700000>; regulator-max-microvolt = <1350000>; regulator-min-microamp = <3500000>; regulator-max-microamp = <3500000>; regulator-always-on; regulator-boot-on; ams,ext-control = <2>; }; sd1 { regulator-name = "+VDD_CORE"; regulator-min-microvolt = <700000>; regulator-max-microvolt = <1350000>; regulator-min-microamp = <2500000>; regulator-max-microamp = <4000000>; regulator-always-on; regulator-boot-on; ams,ext-control = <1>; }; vdd_1v35_lp0: sd2 { regulator-name = "+1.35V_LP0(sd2)"; regulator-min-microvolt = <1350000>; regulator-max-microvolt = <1350000>; regulator-always-on; regulator-boot-on; }; sd3 { regulator-name = "+1.35V_LP0(sd3)"; regulator-min-microvolt = <1350000>; regulator-max-microvolt = <1350000>; regulator-always-on; regulator-boot-on; }; vdd_1v05_run: sd4 { regulator-name = "+1.05V_RUN"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; }; vddio_1v8: sd5 { regulator-name = "+1.8V_VDDIO"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; sd6 { regulator-name = "+VDD_GPU_AP"; regulator-min-microvolt = <650000>; regulator-max-microvolt = <1200000>; regulator-min-microamp = <3500000>; regulator-max-microamp = <3500000>; regulator-boot-on; regulator-always-on; }; ldo0 { regulator-name = "+1.05V_RUN_AVDD"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; regulator-boot-on; regulator-always-on; ams,ext-control = <1>; }; ldo1 { regulator-name = "+1.8V_RUN_CAM"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; ldo2 { regulator-name = "+1.2V_GEN_AVDD"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-boot-on; regulator-always-on; }; ldo3 { regulator-name = "+1.00V_LP0_VDD_RTC"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-boot-on; regulator-always-on; ams,enable-tracking; }; vdd_run_cam: ldo4 { regulator-name = "+3.3V_RUN_CAM"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; }; ldo5 { regulator-name = "+1.2V_RUN_CAM_FRONT"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; }; vddio_sdmmc3: ldo6 { regulator-name = "+VDDIO_SDMMC3"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; }; ldo7 { regulator-name = "+1.05V_RUN_CAM_REAR"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; }; ldo9 { regulator-name = "+2.8V_RUN_TOUCH"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; }; ldo10 { regulator-name = "+2.8V_RUN_CAM_AF"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; }; ldo11 { regulator-name = "+1.8V_RUN_VPP_FUSE"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; }; }; }; spi@0,7000d400 { status = "okay"; cros_ec: cros-ec@0 { compatible = "google,cros-ec-spi"; spi-max-frequency = <3000000>; interrupt-parent = <&gpio>; interrupts = <TEGRA_GPIO(C, 7) IRQ_TYPE_LEVEL_LOW>; reg = <0>; google,cros-ec-spi-msg-delay = <2000>; i2c-tunnel { compatible = "google,cros-ec-i2c-tunnel"; #address-cells = <1>; #size-cells = <0>; google,remote-bus = <0>; charger: bq24735@9 { compatible = "ti,bq24735"; reg = <0x9>; interrupt-parent = <&gpio>; interrupts = <TEGRA_GPIO(J, 0) GPIO_ACTIVE_HIGH>; ti,ac-detect-gpios = <&gpio TEGRA_GPIO(J, 0) GPIO_ACTIVE_HIGH>; }; battery: sbs-battery@b { compatible = "sbs,sbs-battery"; reg = <0xb>; sbs,i2c-retry-count = <2>; sbs,poll-retry-count = <10>; power-supplies = <&charger>; }; }; }; }; spi@0,7000da00 { status = "okay"; spi-max-frequency = <25000000>; flash@0 { compatible = "winbond,w25q32dw"; spi-max-frequency = <25000000>; reg = <0>; }; }; pmc@0,7000e400 { nvidia,invert-interrupt; nvidia,suspend-mode = <0>; nvidia,cpu-pwr-good-time = <500>; nvidia,cpu-pwr-off-time = <300>; nvidia,core-pwr-good-time = <641 3845>; nvidia,core-pwr-off-time = <61036>; nvidia,core-power-req-active-high; nvidia,sys-clock-req-active-high; }; hda@0,70030000 { status = "okay"; }; sdhci0_pwrseq: sdhci0_pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>; }; sdhci@0,700b0000 { /* WiFi/BT on this bus */ status = "okay"; bus-width = <4>; no-1-8-v; non-removable; mmc-pwrseq = <&sdhci0_pwrseq>; vmmc-supply = <&vdd_3v3_lp0>; vqmmc-supply = <&vddio_1v8>; keep-power-in-suspend; }; sdhci@0,700b0400 { /* SD Card on this bus */ status = "okay"; cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>; bus-width = <4>; no-1-8-v; vqmmc-supply = <&vddio_sdmmc3>; }; sdhci@0,700b0600 { /* eMMC on this bus */ status = "okay"; bus-width = <8>; no-1-8-v; non-removable; }; /* CPU DFLL clock */ clock@0,70110000 { status = "disabled"; vdd-cpu-supply = <&vdd_cpu>; nvidia,i2c-fs-rate = <400000>; }; ahub@0,70300000 { i2s@0,70301100 { status = "okay"; }; }; usb@0,7d000000 { /* Rear external USB port. */ status = "okay"; }; usb-phy@0,7d000000 { status = "okay"; vbus-supply = <&vdd_usb1_vbus>; }; usb@0,7d004000 { /* Internal webcam. */ status = "okay"; }; usb-phy@0,7d004000 { status = "okay"; vbus-supply = <&vdd_run_cam>; }; usb@0,7d008000 { /* Left external USB port. */ status = "okay"; }; usb-phy@0,7d008000 { status = "okay"; vbus-supply = <&vdd_usb3_vbus>; }; backlight: backlight { compatible = "pwm-backlight"; enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>; power-supply = <&vdd_led>; pwms = <&pwm 1 1000000>; default-brightness-level = <224>; brightness-levels = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256>; }; clocks { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <0>; clk32k_in: clock@0 { compatible = "fixed-clock"; reg = <0>; #clock-cells = <0>; clock-frequency = <32768>; }; }; cpus { cpu@0 { vdd-cpu-supply = <&vdd_cpu>; }; }; gpio-keys { compatible = "gpio-keys"; lid { label = "Lid"; gpios = <&gpio TEGRA_GPIO(R, 4) GPIO_ACTIVE_LOW>; linux,input-type = <5>; linux,code = <KEY_RESERVED>; debounce-interval = <1>; wakeup-source; }; power { label = "Power"; gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>; linux,code = <KEY_POWER>; debounce-interval = <30>; wakeup-source; }; }; regulators { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <0>; vdd_mux: regulator@0 { compatible = "regulator-fixed"; reg = <0>; regulator-name = "+VDD_MUX"; regulator-min-microvolt = <12000000>; regulator-max-microvolt = <12000000>; regulator-always-on; regulator-boot-on; }; vdd_5v0_sys: regulator@1 { compatible = "regulator-fixed"; reg = <1>; regulator-name = "+5V_SYS"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; vin-supply = <&vdd_mux>; }; vdd_3v3_sys: regulator@2 { compatible = "regulator-fixed"; reg = <2>; regulator-name = "+3.3V_SYS"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; vin-supply = <&vdd_mux>; }; vdd_3v3_run: regulator@3 { compatible = "regulator-fixed"; reg = <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>; }; vdd_3v3_hdmi: regulator@4 { compatible = "regulator-fixed"; reg = <4>; regulator-name = "+3.3V_AVDD_HDMI_AP_GATED"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vdd_3v3_run>; }; vdd_led: regulator@5 { compatible = "regulator-fixed"; reg = <5>; regulator-name = "+VDD_LED"; gpio = <&gpio TEGRA_GPIO(P, 2) GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&vdd_mux>; }; vdd_5v0_ts: regulator@6 { compatible = "regulator-fixed"; reg = <6>; regulator-name = "+5V_VDD_TS_SW"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-boot-on; gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&vdd_5v0_sys>; }; vdd_usb1_vbus: regulator@7 { compatible = "regulator-fixed"; reg = <7>; regulator-name = "+5V_USB_HS"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio TEGRA_GPIO(N, 4) GPIO_ACTIVE_HIGH>; enable-active-high; gpio-open-drain; vin-supply = <&vdd_5v0_sys>; }; vdd_usb3_vbus: regulator@8 { compatible = "regulator-fixed"; reg = <8>; regulator-name = "+5V_USB_SS"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio TEGRA_GPIO(N, 5) GPIO_ACTIVE_HIGH>; enable-active-high; gpio-open-drain; vin-supply = <&vdd_5v0_sys>; }; vdd_3v3_panel: regulator@9 { compatible = "regulator-fixed"; reg = <9>; regulator-name = "+3.3V_PANEL"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&pmic 4 GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&vdd_3v3_run>; }; vdd_3v3_lp0: regulator@10 { compatible = "regulator-fixed"; reg = <10>; regulator-name = "+3.3V_LP0"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; /* * TODO: find a way to wire this up with the USB EHCI * controllers so that it can be enabled on demand. */ regulator-always-on; gpio = <&pmic 2 GPIO_ACTIVE_HIGH>; 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 { nvidia,audio-routing = "Headphones", "HPR", "Headphones", "HPL", "Speakers", "SPKR", "Speakers", "SPKL", "Mic Jack", "MICBIAS", "DMICL", "Int Mic", "DMICR", "Int Mic", "IN34", "Mic Jack"; nvidia,i2s-controller = <&tegra_i2s1>; nvidia,audio-codec = <&acodec>; clocks = <&tegra_car TEGRA124_CLK_PLL_A>, <&tegra_car TEGRA124_CLK_PLL_A_OUT0>, <&tegra_car TEGRA124_CLK_EXTERN1>; clock-names = "pll_a", "pll_a_out0", "mclk"; nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(I, 7) GPIO_ACTIVE_HIGH>; nvidia,mic-det-gpios = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>; }; gpio-restart { compatible = "gpio-restart"; gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; priority = <200>; }; }; #include "cros-ec-keyboard.dtsi"