mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-05 07:56:48 +07:00
217b8f0f35
The Toshiba AC100/PAZ00 uses a TPS6586x regulator. Instantiate this. Three data sources were used for the data encoded here: * The HW defaults, as extracted from real HW. * The schematic, which specifies a voltage for each rail in the signal names. * The AC100 kernel used by the Ubuntu port: repo git://gitorious.org/~marvin24/ac100/marvin24s-kernel.git branch chromeos-ac100-3.0 file arch/arm/mach-tegra/board-paz00-power.c For many rails, the constraints in that tree specified differing min and max voltages. In all cases, the min value was ignored, since there's no need currently to vary any of the voltages at run-time. DVFS might change this in the future. In most cases these sources all matched. Differences are: sm0: HW defaults and schematic match at 1.2v. marvin24's kernel had a max of 1.3v, but this higher voltage was only applied to HW by DVFS code, which isn't currently supported in mainline. sm1: HW defaults and schematic match at 1.0v. marvin24's kernel had a max of 1.125v, but this higher voltage was only applied to HW by DVFS code, which isn't currently supported in mainline. ldo3: The HW default is on. marvin24's kernel didn't specify always-on, but since the board wasn't marked as having fully constrained regulators, the rail was not turned off, so the difference had no effect. The rail is needed for USB. ldo6: The HW default is 2.85v. The schematics indicate 2.85v. However, since this regulator is used for the same purpose as on other boards that require 1.8v, this is set to 1.8v. Note that this regulator feeds the CRT VDAC on Tegra, and so in practice is unlikely to be used, even though it is actaully hooked up in HW. Portions based on work by Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com> Tested-by: Marc Dietrich <marvin24@gmx.de> # v2 Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
521 lines
11 KiB
Plaintext
521 lines
11 KiB
Plaintext
/dts-v1/;
|
|
|
|
/include/ "tegra20.dtsi"
|
|
|
|
/ {
|
|
model = "Toshiba AC100 / Dynabook AZ";
|
|
compatible = "compal,paz00", "nvidia,tegra20";
|
|
|
|
memory {
|
|
reg = <0x00000000 0x20000000>;
|
|
};
|
|
|
|
pinmux {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&state_default>;
|
|
|
|
state_default: pinmux {
|
|
ata {
|
|
nvidia,pins = "ata", "atc", "atd", "ate",
|
|
"dap2", "gmb", "gmc", "gmd", "spia",
|
|
"spib", "spic", "spid", "spie";
|
|
nvidia,function = "gmi";
|
|
};
|
|
atb {
|
|
nvidia,pins = "atb", "gma", "gme";
|
|
nvidia,function = "sdio4";
|
|
};
|
|
cdev1 {
|
|
nvidia,pins = "cdev1";
|
|
nvidia,function = "plla_out";
|
|
};
|
|
cdev2 {
|
|
nvidia,pins = "cdev2";
|
|
nvidia,function = "pllp_out4";
|
|
};
|
|
crtp {
|
|
nvidia,pins = "crtp";
|
|
nvidia,function = "crt";
|
|
};
|
|
csus {
|
|
nvidia,pins = "csus";
|
|
nvidia,function = "pllc_out1";
|
|
};
|
|
dap1 {
|
|
nvidia,pins = "dap1";
|
|
nvidia,function = "dap1";
|
|
};
|
|
dap3 {
|
|
nvidia,pins = "dap3";
|
|
nvidia,function = "dap3";
|
|
};
|
|
dap4 {
|
|
nvidia,pins = "dap4";
|
|
nvidia,function = "dap4";
|
|
};
|
|
ddc {
|
|
nvidia,pins = "ddc";
|
|
nvidia,function = "i2c2";
|
|
};
|
|
dta {
|
|
nvidia,pins = "dta", "dtb", "dtc", "dtd", "dte";
|
|
nvidia,function = "rsvd1";
|
|
};
|
|
dtf {
|
|
nvidia,pins = "dtf";
|
|
nvidia,function = "i2c3";
|
|
};
|
|
gpu {
|
|
nvidia,pins = "gpu", "sdb", "sdd";
|
|
nvidia,function = "pwm";
|
|
};
|
|
gpu7 {
|
|
nvidia,pins = "gpu7";
|
|
nvidia,function = "rtck";
|
|
};
|
|
gpv {
|
|
nvidia,pins = "gpv", "slxa", "slxk";
|
|
nvidia,function = "pcie";
|
|
};
|
|
hdint {
|
|
nvidia,pins = "hdint", "pta";
|
|
nvidia,function = "hdmi";
|
|
};
|
|
i2cp {
|
|
nvidia,pins = "i2cp";
|
|
nvidia,function = "i2cp";
|
|
};
|
|
irrx {
|
|
nvidia,pins = "irrx", "irtx";
|
|
nvidia,function = "uarta";
|
|
};
|
|
kbca {
|
|
nvidia,pins = "kbca", "kbcc", "kbce", "kbcf";
|
|
nvidia,function = "kbc";
|
|
};
|
|
kbcb {
|
|
nvidia,pins = "kbcb", "kbcd";
|
|
nvidia,function = "sdio2";
|
|
};
|
|
lcsn {
|
|
nvidia,pins = "lcsn", "ld0", "ld1", "ld2",
|
|
"ld3", "ld4", "ld5", "ld6", "ld7",
|
|
"ld8", "ld9", "ld10", "ld11", "ld12",
|
|
"ld13", "ld14", "ld15", "ld16", "ld17",
|
|
"ldc", "ldi", "lhp0", "lhp1", "lhp2",
|
|
"lhs", "lm0", "lm1", "lpp", "lpw0",
|
|
"lpw1", "lpw2", "lsc0", "lsc1", "lsck",
|
|
"lsda", "lsdi", "lspi", "lvp0", "lvp1",
|
|
"lvs";
|
|
nvidia,function = "displaya";
|
|
};
|
|
owc {
|
|
nvidia,pins = "owc";
|
|
nvidia,function = "owr";
|
|
};
|
|
pmc {
|
|
nvidia,pins = "pmc";
|
|
nvidia,function = "pwr_on";
|
|
};
|
|
rm {
|
|
nvidia,pins = "rm";
|
|
nvidia,function = "i2c1";
|
|
};
|
|
sdc {
|
|
nvidia,pins = "sdc";
|
|
nvidia,function = "twc";
|
|
};
|
|
sdio1 {
|
|
nvidia,pins = "sdio1";
|
|
nvidia,function = "sdio1";
|
|
};
|
|
slxc {
|
|
nvidia,pins = "slxc", "slxd";
|
|
nvidia,function = "spi4";
|
|
};
|
|
spdi {
|
|
nvidia,pins = "spdi", "spdo";
|
|
nvidia,function = "rsvd2";
|
|
};
|
|
spif {
|
|
nvidia,pins = "spif", "uac";
|
|
nvidia,function = "rsvd4";
|
|
};
|
|
spig {
|
|
nvidia,pins = "spig", "spih";
|
|
nvidia,function = "spi2_alt";
|
|
};
|
|
uaa {
|
|
nvidia,pins = "uaa", "uab", "uda";
|
|
nvidia,function = "ulpi";
|
|
};
|
|
uad {
|
|
nvidia,pins = "uad";
|
|
nvidia,function = "spdif";
|
|
};
|
|
uca {
|
|
nvidia,pins = "uca", "ucb";
|
|
nvidia,function = "uartc";
|
|
};
|
|
conf_ata {
|
|
nvidia,pins = "ata", "atb", "atc", "atd", "ate",
|
|
"cdev1", "cdev2", "dap1", "dap2", "dtf",
|
|
"gma", "gmb", "gmc", "gmd", "gme",
|
|
"gpu", "gpu7", "gpv", "i2cp", "pta",
|
|
"rm", "sdio1", "slxk", "spdo", "uac",
|
|
"uda";
|
|
nvidia,pull = <0>;
|
|
nvidia,tristate = <0>;
|
|
};
|
|
conf_ck32 {
|
|
nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
|
|
"pmcc", "pmcd", "pmce", "xm2c", "xm2d";
|
|
nvidia,pull = <0>;
|
|
};
|
|
conf_crtp {
|
|
nvidia,pins = "crtp", "dap3", "dap4", "dtb",
|
|
"dtc", "dte", "slxa", "slxc", "slxd",
|
|
"spdi";
|
|
nvidia,pull = <0>;
|
|
nvidia,tristate = <1>;
|
|
};
|
|
conf_csus {
|
|
nvidia,pins = "csus", "spia", "spib", "spid",
|
|
"spif";
|
|
nvidia,pull = <1>;
|
|
nvidia,tristate = <1>;
|
|
};
|
|
conf_ddc {
|
|
nvidia,pins = "ddc", "irrx", "irtx", "kbca",
|
|
"kbcb", "kbcc", "kbcd", "kbce", "kbcf",
|
|
"spic", "spig", "uaa", "uab";
|
|
nvidia,pull = <2>;
|
|
nvidia,tristate = <0>;
|
|
};
|
|
conf_dta {
|
|
nvidia,pins = "dta", "dtd", "owc", "sdc", "sdd",
|
|
"spie", "spih", "uad", "uca", "ucb";
|
|
nvidia,pull = <2>;
|
|
nvidia,tristate = <1>;
|
|
};
|
|
conf_hdint {
|
|
nvidia,pins = "hdint", "ld0", "ld1", "ld2",
|
|
"ld3", "ld4", "ld5", "ld6", "ld7",
|
|
"ld8", "ld9", "ld10", "ld11", "ld12",
|
|
"ld13", "ld14", "ld15", "ld16", "ld17",
|
|
"ldc", "ldi", "lhs", "lsc0", "lspi",
|
|
"lvs", "pmc";
|
|
nvidia,tristate = <0>;
|
|
};
|
|
conf_lc {
|
|
nvidia,pins = "lc", "ls";
|
|
nvidia,pull = <2>;
|
|
};
|
|
conf_lcsn {
|
|
nvidia,pins = "lcsn", "lhp0", "lhp1", "lhp2",
|
|
"lm0", "lm1", "lpp", "lpw0", "lpw1",
|
|
"lpw2", "lsc1", "lsck", "lsda", "lsdi",
|
|
"lvp0", "lvp1", "sdb";
|
|
nvidia,tristate = <1>;
|
|
};
|
|
conf_ld17_0 {
|
|
nvidia,pins = "ld17_0", "ld19_18", "ld21_20",
|
|
"ld23_22";
|
|
nvidia,pull = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
i2s@70002800 {
|
|
status = "okay";
|
|
};
|
|
|
|
serial@70006000 {
|
|
status = "okay";
|
|
clock-frequency = <216000000>;
|
|
};
|
|
|
|
serial@70006200 {
|
|
status = "okay";
|
|
clock-frequency = <216000000>;
|
|
};
|
|
|
|
i2c@7000c000 {
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
|
|
alc5632: alc5632@1e {
|
|
compatible = "realtek,alc5632";
|
|
reg = <0x1e>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
};
|
|
|
|
i2c@7000c400 {
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
};
|
|
|
|
nvec {
|
|
compatible = "nvidia,nvec";
|
|
reg = <0x7000c500 0x100>;
|
|
interrupts = <0 92 0x04>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
clock-frequency = <80000>;
|
|
request-gpios = <&gpio 170 0>; /* gpio PV2 */
|
|
slave-addr = <138>;
|
|
};
|
|
|
|
i2c@7000d000 {
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
|
|
pmic: tps6586x@34 {
|
|
compatible = "ti,tps6586x";
|
|
reg = <0x34>;
|
|
interrupts = <0 86 0x4>;
|
|
|
|
#gpio-cells = <2>;
|
|
gpio-controller;
|
|
|
|
sys-supply = <&p5valw_reg>;
|
|
vin-sm0-supply = <&sys_reg>;
|
|
vin-sm1-supply = <&sys_reg>;
|
|
vin-sm2-supply = <&sys_reg>;
|
|
vinldo01-supply = <&sm2_reg>;
|
|
vinldo23-supply = <&sm2_reg>;
|
|
vinldo4-supply = <&sm2_reg>;
|
|
vinldo678-supply = <&sm2_reg>;
|
|
vinldo9-supply = <&sm2_reg>;
|
|
|
|
regulators {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
sys_reg: regulator@0 {
|
|
reg = <0>;
|
|
regulator-compatible = "sys";
|
|
regulator-name = "vdd_sys";
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@1 {
|
|
reg = <1>;
|
|
regulator-compatible = "sm0";
|
|
regulator-name = "+1.2vs_sm0,vdd_core";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@2 {
|
|
reg = <2>;
|
|
regulator-compatible = "sm1";
|
|
regulator-name = "+1.0vs_sm1,vdd_cpu";
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <1000000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
sm2_reg: regulator@3 {
|
|
reg = <3>;
|
|
regulator-compatible = "sm2";
|
|
regulator-name = "+3.7vs_sm2,vin_ldo*";
|
|
regulator-min-microvolt = <3700000>;
|
|
regulator-max-microvolt = <3700000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
/* LDO0 is not connected to anything */
|
|
|
|
regulator@5 {
|
|
reg = <5>;
|
|
regulator-compatible = "ldo1";
|
|
regulator-name = "+1.1vs_ldo1,avdd_pll*";
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <1100000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@6 {
|
|
reg = <6>;
|
|
regulator-compatible = "ldo2";
|
|
regulator-name = "+1.2vs_ldo2,vdd_rtc";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
};
|
|
|
|
regulator@7 {
|
|
reg = <7>;
|
|
regulator-compatible = "ldo3";
|
|
regulator-name = "+3.3vs_ldo3,avdd_usb*";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@8 {
|
|
reg = <8>;
|
|
regulator-compatible = "ldo4";
|
|
regulator-name = "+1.8vs_ldo4,avdd_osc,vddio_sys";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@9 {
|
|
reg = <9>;
|
|
regulator-compatible = "ldo5";
|
|
regulator-name = "+2.85vs_ldo5,vcore_mmc";
|
|
regulator-min-microvolt = <2850000>;
|
|
regulator-max-microvolt = <2850000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@10 {
|
|
reg = <10>;
|
|
regulator-compatible = "ldo6";
|
|
/*
|
|
* Research indicates this should be
|
|
* 1.8v; other boards that use this
|
|
* rail for the same purpose need it
|
|
* set to 1.8v. The schematic signal
|
|
* name is incorrect; perhaps copied
|
|
* from an incorrect NVIDIA reference.
|
|
*/
|
|
regulator-name = "+2.85vs_ldo6,avdd_vdac";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
regulator@11 {
|
|
reg = <11>;
|
|
regulator-compatible = "ldo7";
|
|
regulator-name = "+3.3vs_ldo7,avdd_hdmi";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
regulator@12 {
|
|
reg = <12>;
|
|
regulator-compatible = "ldo8";
|
|
regulator-name = "+1.8vs_ldo8,avdd_hdmi_pll";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
regulator@13 {
|
|
reg = <13>;
|
|
regulator-compatible = "ldo9";
|
|
regulator-name = "+2.85vs_ldo9,vdd_ddr_rx";
|
|
regulator-min-microvolt = <2850000>;
|
|
regulator-max-microvolt = <2850000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@14 {
|
|
reg = <14>;
|
|
regulator-compatible = "ldo_rtc";
|
|
regulator-name = "+3.3vs_rtc";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
};
|
|
|
|
adt7461@4c {
|
|
compatible = "adi,adt7461";
|
|
reg = <0x4c>;
|
|
};
|
|
};
|
|
|
|
pmc {
|
|
nvidia,invert-interrupt;
|
|
};
|
|
|
|
usb@c5000000 {
|
|
status = "okay";
|
|
};
|
|
|
|
usb@c5004000 {
|
|
status = "okay";
|
|
nvidia,phy-reset-gpio = <&gpio 168 0>; /* gpio PV0 */
|
|
};
|
|
|
|
usb@c5008000 {
|
|
status = "okay";
|
|
};
|
|
|
|
sdhci@c8000000 {
|
|
status = "okay";
|
|
cd-gpios = <&gpio 173 0>; /* gpio PV5 */
|
|
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
|
power-gpios = <&gpio 169 0>; /* gpio PV1 */
|
|
bus-width = <4>;
|
|
};
|
|
|
|
sdhci@c8000600 {
|
|
status = "okay";
|
|
bus-width = <8>;
|
|
};
|
|
|
|
gpio-keys {
|
|
compatible = "gpio-keys";
|
|
|
|
power {
|
|
label = "Power";
|
|
gpios = <&gpio 79 1>; /* gpio PJ7, active low */
|
|
linux,code = <116>; /* KEY_POWER */
|
|
gpio-key,wakeup;
|
|
};
|
|
};
|
|
|
|
gpio-leds {
|
|
compatible = "gpio-leds";
|
|
|
|
wifi {
|
|
label = "wifi-led";
|
|
gpios = <&gpio 24 0>; /* gpio PD0 */
|
|
linux,default-trigger = "rfkill0";
|
|
};
|
|
};
|
|
|
|
regulators {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
p5valw_reg: regulator@0 {
|
|
compatible = "regulator-fixed";
|
|
reg = <0>;
|
|
regulator-name = "+5valw";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
|
|
sound {
|
|
compatible = "nvidia,tegra-audio-alc5632-paz00",
|
|
"nvidia,tegra-audio-alc5632";
|
|
|
|
nvidia,model = "Compal PAZ00";
|
|
|
|
nvidia,audio-routing =
|
|
"Int Spk", "SPKOUT",
|
|
"Int Spk", "SPKOUTN",
|
|
"Headset Mic", "MICBIAS1",
|
|
"MIC1", "Headset Mic",
|
|
"Headset Stereophone", "HPR",
|
|
"Headset Stereophone", "HPL",
|
|
"DMICDAT", "Digital Mic";
|
|
|
|
nvidia,audio-codec = <&alc5632>;
|
|
nvidia,i2s-controller = <&tegra_i2s1>;
|
|
nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
|
|
};
|
|
};
|