/* * tegra186-quill-p3489-a00-00-base.dts Quill A00 Board * * Copyright (c) 2015-2019, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #include #include #include #include /* comms dtsi file should be included after gpio dtsi file */ #include #include #include #include #include / { model = "storm"; compatible = "nvidia,storm", "nvidia,p2597-0000+p3489-0000", "nvidia,tegra186"; nvidia,dtsfilename = __FILE__; nvidia,boardids = "3489:0000:A0"; nvidia,proc-boardid = "3489:0000:A0"; nvidia,fastboot-usb-vid = <0x0955>; nvidia,fastboot-usb-pid = <0xee16>; chosen { board-has-eeprom; #if TEGRA_BOOTARGUMENT_VERSION >= DT_VERSION_2 bootargs ="console=ttyS0,115200 androidboot.presilicon=true firmware_class.path=/etc/firmware"; #else bootargs ="console=ttyS0,115200"; #endif stdout-path = &uarta; nvidia,tegra-joint_xpu_rail; }; firmware { android { compatible = "android,firmware"; hardware = "quill"; }; }; memory@80000000 { device_type = "memory"; reg = <0x0 0x80000000 0x0 0x70000000>; }; xotg { status = "okay"; phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>; phy-names = "otg-usb2"; }; #if TEGRA_XUSB_PADCONTROL_VERSION >= DT_VERSION_2 xudc@3550000 { status = "okay"; phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>; phy-names = "usb2"; nvidia,boost-cpu-freq = <1200>; }; usb_cd { status = "okay"; phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>; phy-names = "otg-phy"; nvidia,xusb-padctl = <&xusb_padctl>; }; #else xudc@3550000 { status = "okay"; phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>; phy-names = "usb2"; emc-frequency = <150000000>; nvidia,boost-cpu-freq = <1200>; }; usb_cd { status = "okay"; phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>; phy-names = "otg-phy"; }; #endif #if TEGRA_XUSB_PADCONTROL_VERSION >= DT_VERSION_2 xusb_padctl@3520000 { status = "okay"; pinctrl-0 = <&vbus_en0_default_state>; pinctrl-1 = <&vbus_en1_default_state>; pinctrl-2 = <&vbus_en0_sfio_tristate_state>; pinctrl-3 = <&vbus_en1_sfio_tristate_state>; pinctrl-4 = <&vbus_en0_sfio_passthrough_state>; pinctrl-5 = <&vbus_en1_sfio_passthrough_state>; pinctrl-names = "vbus_en0_default", "vbus_en1_default", "vbus_en0_sfio_tristate", "vbus_en1_sfio_tristate", "vbus_en0_sfio_passthrough", "vbus_en1_sfio_passthrough"; pads { usb2 { lanes { usb2-0 { nvidia,function = "xusb"; status = "okay"; }; usb2-1 { nvidia,function = "xusb"; status = "okay"; }; usb2-2 { nvidia,function = "xusb"; status = "okay"; }; }; }; usb3 { lanes { usb3-0 { nvidia,function = "xusb"; status = "okay"; }; usb3-1 { nvidia,function = "xusb"; status = "okay"; }; usb3-2 { nvidia,function = "xusb"; status = "okay"; }; }; }; }; ports { usb2-0 { status = "okay"; mode = "otg"; vbus-supply = <&vdd_usb0_5v>; nvidia,oc-pin = <0>; }; usb2-1 { status = "okay"; mode = "host"; vbus-supply = <&vdd_usb1_5v>; nvidia,oc-pin = <1>; }; usb2-2 { status = "okay"; mode = "host"; vbus-supply = <&vdd_usb2_5v>; }; usb3-0 { nvidia,usb2-companion = <1>; status = "okay"; }; }; }; #endif pinctrl@3520000 { status = "okay"; pinctrl-0 = <&tegra_xusb_padctl_pinmux_default>; pinctrl-1 = <&vbus_en0_sfio_tristate_state>; pinctrl-2 = <&vbus_en1_sfio_tristate_state>; pinctrl-3 = <&vbus_en0_sfio_passthrough_state>; pinctrl-4 = <&vbus_en1_sfio_passthrough_state>; pinctrl-5 = <&vbus_en0_default_state>; pinctrl-6 = <&vbus_en1_default_state>; pinctrl-names = "default", "vbus_en0_sfio_tristate", "vbus_en1_sfio_tristate", "vbus_en0_sfio_passthrough", "vbus_en1_sfio_passthrough", "vbus_en0_default", "vbus_en1_default"; tegra_xusb_padctl_pinmux_default: pinmux { /* Quill does not support usb3-micro AB */ usb2-micro-AB { nvidia,lanes = "otg-0"; nvidia,function = "xusb"; nvidia,port-cap = ; nvidia,oc-pin = <0>; }; usb2-std-A-port2 { nvidia,lanes = "otg-1"; nvidia,function = "xusb"; nvidia,port-cap = ; nvidia,oc-pin = <1>; }; usb3-std-A-port2 { nvidia,lanes = "usb3-0"; nvidia,port-cap = ; nvidia,oc-pin = <1>; }; e3325-usb3-std-A-HS { nvidia,lanes = "otg-2"; nvidia,function = "xusb"; nvidia,port-cap = ; status = "disabled"; }; e3325-usb3-std-A-SS { nvidia,lanes = "usb3-0"; nvidia,port-cap = ; status = "disabled"; }; }; }; pcie-controller@10003000 { status = "okay"; pci@1,0 { nvidia,num-lanes = <4>; nvidia,disable-clock-request; status = "okay"; }; pci@2,0 { nvidia,num-lanes = <0>; status = "disabled"; }; pci@3,0 { nvidia,num-lanes = <1>; status = "okay"; }; }; i2c@3160000 { lp8557-backlight-s-wuxga-8-0@2c { status = "disabled"; }; }; i2c@c240000 { clock-frequency = <400000>; }; cpus { status = "disabled"; }; host1x { disp_imp_table { num_settings = <7>; disp_imp_settings_6 { /* Calculated with 4 wins on one 1080p head */ /* Global settings */ nvidia,total_disp_bw_with_catchup = <0 2787800>; nvidia,total_disp_bw_without_catchup = <0 2534400>; nvidia,disp_emc_floor = <0 102000000>; nvidia,disp_min_hubclk = <0 49070000>; nvidia,total_win_fetch_slots = /bits/ 16 <1>; nvidia,total_cursor_fetch_slots = /bits/ 16 <1>; /* Window settings */ nvidia,imp_win_mapping = /bits/ 8 <0 1 2 3 4 5>; nvidia,win_fetch_meter_slots = /bits/ 16 <1 1 1 1 1 1>; nvidia,win_dvfs_watermark_values = <0 0 0 0 0 0 0 0 0 0 0 0>; nvidia,win_pipe_meter_values = <0 0 0 0 0 0>; nvidia,win_mempool_buffer_entries = <0 817 0 817 0 817 0 817 0 817 0 817>; nvidia,win_thread_groups = /bits/ 8 <0 1 2 3 4 5>; /* Cursor settings */ nvidia,imp_head_mapping = /bits/ 8 <0 1 2>; nvidia,cursor_fetch_meter_slots = /bits/ 16 <1 1 1>; nvidia,cursor_dvfs_watermark_values = <0 0 0 0 0 0>; nvidia,cursor_pipe_meter_values = <0 0 0>; nvidia,cursor_mempool_buffer_entries = <0 16 0 16 0 16>; }; }; sor { status = "disabled"; dp-display { status = "disabled"; }; hdmi-display { status = "disabled"; }; panel-s-edp-uhdtv-15-6 { smartdimmer { status = "disabled"; }; }; }; dpaux@155c0000 { status = "disabled"; }; sor1 { status = "okay"; hdmi-display { status = "okay"; }; dp-display { status = "disabled"; }; }; nvdisplay@15200000 { status = "disabled"; }; nvdisplay@15220000 { status = "disabled"; }; }; mttcan@c310000 { status = "okay"; gpio_can_stb = <&tegra_aon_gpio TEGRA_AON_GPIO(AA, 0) GPIO_ACTIVE_HIGH>; gpio_can_en = <&tegra_aon_gpio TEGRA_AON_GPIO(AA, 1) GPIO_ACTIVE_HIGH>; }; mttcan@c320000 { status = "okay"; gpio_can_stb = <&tegra_aon_gpio TEGRA_AON_GPIO(AA, 6) GPIO_ACTIVE_HIGH>; gpio_can_en = <&tegra_aon_gpio TEGRA_AON_GPIO(AA, 7) GPIO_ACTIVE_HIGH>; }; mc { ecc_on_camera_fw; }; rtcpu@b000000 { /delete-property/ autosuspend-delay-ms; nvidia,disable-runtime-pm; }; bpmp_i2c { spmic@3c { regulators { ldo0 { maxim,active-fps-source = ; }; ldo6 { maxim,active-fps-source = ; regulator-boot-on; regulator-always-on; }; ldo7 { regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; }; ldo8 { regulator-name = "dvdd-pex"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; }; }; pinmux@0 { pin_gpio2 { status = "disabled"; }; pin_gpio3 { status = "disabled"; }; pin_gpio7 { drive-push-pull = <1>; }; }; }; }; #if TEGRA_XUSB_PADCONTROL_VERSION >= DT_VERSION_2 xhci@3530000 { phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>, <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>, <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>, <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>; phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0"; status = "okay"; }; #else xhci@3530000 { status = "okay"; phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>, <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>, <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>; phy-names = "utmi-0", "utmi-1", "usb3-0"; nvidia,boost_cpu_freq = <800>; }; #endif ahci-sata@3507000 { gpios = <&spmic 7 0>; }; gpio@2200000 { sdmmc-wake-support-input { status = "okay"; }; sdmmc-wake-support-output { status = "okay"; }; }; fixed-regulators { regulator@1 { gpio = <&tegra_main_gpio TEGRA_MAIN_GPIO(P, 6) 0>; }; }; sdhci@3400000 { cd-gpios = <&tegra_main_gpio TEGRA_MAIN_GPIO(P, 5) 0>; nvidia,cd-wakeup-capable; }; ina3221x@40 { channel@0 { ti,shunt-resistor-mohm = <10>; }; channel@1 { ti,shunt-resistor-mohm = <10>; }; }; ina3221x@41 { channel@0 { ti,shunt-resistor-mohm = <20>; }; channel@1 { ti,shunt-resistor-mohm = <10>; }; channel@2 { ti,rail-name = "VDD_SYS_DDR"; ti,shunt-resistor-mohm = <10>; }; }; tegra_udrm: tegra_udrm { compatible = "nvidia,tegra-udrm"; }; }; #ifdef KERNEL_VERSION_4_9 #include "quill-platforms/tegra186-quill-kernel-4.9.dtsi" #endif