mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-22 10:34:55 +08:00
3cc404de24
Harmony uses a TPS6586x regulator. Instantiate this, and hook up a couple of fixed GPIO-controlled regulators too. Based on Ventana regulator patch by Stephen Warren <swarren@nvidia.com> and converted to Harmony. swarren made the following changes: * Added ldo0 regulator configuration to device tree, and updated board-harmony-pcie.c for the new regulator name. * Fixed vdd_1v05's voltage from 10.5V to 1.05V. * Modified board-harmony-pcie.c to obtain the en_vdd_1v05 GPIO number at run-time from device tree instead of hard-coding it. * Removed board-harmony{-power.c,.h} now that they're unused. * Disabled vdd_1v05 regulator; the code in board-harmony-pcie.c hijacks this GPIO for now. This will be fixed when the PCIe driver is re- written as a driver. The code can't regulator_get("vdd_1v05") right now, because the vdd_1v05 regulator's probe gets deferred due to its supply being the PMIC, which gets probed after the regulator the first time around, and this dependency is only resolved by repeated probing, which happens when deferred_probe_initcall() is called, which happens in a late initcall, whose runtime order relative to harmony_pcie_init() is undefined, since that's also called from a late initcall. * Removed unused harmony_pcie_initcall(). Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
555 lines
12 KiB
Plaintext
555 lines
12 KiB
Plaintext
/dts-v1/;
|
|
|
|
/include/ "tegra20.dtsi"
|
|
|
|
/ {
|
|
model = "NVIDIA Tegra2 Harmony evaluation board";
|
|
compatible = "nvidia,harmony", "nvidia,tegra20";
|
|
|
|
memory {
|
|
reg = <0x00000000 0x40000000>;
|
|
};
|
|
|
|
pinmux {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&state_default>;
|
|
|
|
state_default: pinmux {
|
|
ata {
|
|
nvidia,pins = "ata";
|
|
nvidia,function = "ide";
|
|
};
|
|
atb {
|
|
nvidia,pins = "atb", "gma", "gme";
|
|
nvidia,function = "sdio4";
|
|
};
|
|
atc {
|
|
nvidia,pins = "atc";
|
|
nvidia,function = "nand";
|
|
};
|
|
atd {
|
|
nvidia,pins = "atd", "ate", "gmb", "gmd", "gpu",
|
|
"spia", "spib", "spic";
|
|
nvidia,function = "gmi";
|
|
};
|
|
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 = "vi_sensor_clk";
|
|
};
|
|
dap1 {
|
|
nvidia,pins = "dap1";
|
|
nvidia,function = "dap1";
|
|
};
|
|
dap2 {
|
|
nvidia,pins = "dap2";
|
|
nvidia,function = "dap2";
|
|
};
|
|
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", "dtd";
|
|
nvidia,function = "sdio2";
|
|
};
|
|
dtb {
|
|
nvidia,pins = "dtb", "dtc", "dte";
|
|
nvidia,function = "rsvd1";
|
|
};
|
|
dtf {
|
|
nvidia,pins = "dtf";
|
|
nvidia,function = "i2c3";
|
|
};
|
|
gmc {
|
|
nvidia,pins = "gmc";
|
|
nvidia,function = "uartd";
|
|
};
|
|
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", "kbcb", "kbcc", "kbcd",
|
|
"kbce", "kbcf";
|
|
nvidia,function = "kbc";
|
|
};
|
|
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", "spdi", "spdo", "uac";
|
|
nvidia,function = "rsvd2";
|
|
};
|
|
pmc {
|
|
nvidia,pins = "pmc";
|
|
nvidia,function = "pwr_on";
|
|
};
|
|
rm {
|
|
nvidia,pins = "rm";
|
|
nvidia,function = "i2c1";
|
|
};
|
|
sdb {
|
|
nvidia,pins = "sdb", "sdc", "sdd";
|
|
nvidia,function = "pwm";
|
|
};
|
|
sdio1 {
|
|
nvidia,pins = "sdio1";
|
|
nvidia,function = "sdio1";
|
|
};
|
|
slxc {
|
|
nvidia,pins = "slxc", "slxd";
|
|
nvidia,function = "spdif";
|
|
};
|
|
spid {
|
|
nvidia,pins = "spid", "spie", "spif";
|
|
nvidia,function = "spi1";
|
|
};
|
|
spig {
|
|
nvidia,pins = "spig", "spih";
|
|
nvidia,function = "spi2_alt";
|
|
};
|
|
uaa {
|
|
nvidia,pins = "uaa", "uab", "uda";
|
|
nvidia,function = "ulpi";
|
|
};
|
|
uad {
|
|
nvidia,pins = "uad";
|
|
nvidia,function = "irda";
|
|
};
|
|
uca {
|
|
nvidia,pins = "uca", "ucb";
|
|
nvidia,function = "uartc";
|
|
};
|
|
conf_ata {
|
|
nvidia,pins = "ata", "atb", "atc", "atd", "ate",
|
|
"cdev1", "cdev2", "dap1", "dtb", "gma",
|
|
"gmb", "gmc", "gmd", "gme", "gpu7",
|
|
"gpv", "i2cp", "pta", "rm", "slxa",
|
|
"slxk", "spia", "spib", "uac";
|
|
nvidia,pull = <0>;
|
|
nvidia,tristate = <0>;
|
|
};
|
|
conf_ck32 {
|
|
nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
|
|
"pmcc", "pmcd", "pmce", "xm2c", "xm2d";
|
|
nvidia,pull = <0>;
|
|
};
|
|
conf_csus {
|
|
nvidia,pins = "csus", "spid", "spif";
|
|
nvidia,pull = <1>;
|
|
nvidia,tristate = <1>;
|
|
};
|
|
conf_crtp {
|
|
nvidia,pins = "crtp", "dap2", "dap3", "dap4",
|
|
"dtc", "dte", "dtf", "gpu", "sdio1",
|
|
"slxc", "slxd", "spdi", "spdo", "spig",
|
|
"uda";
|
|
nvidia,pull = <0>;
|
|
nvidia,tristate = <1>;
|
|
};
|
|
conf_ddc {
|
|
nvidia,pins = "ddc", "dta", "dtd", "kbca",
|
|
"kbcb", "kbcc", "kbcd", "kbce", "kbcf",
|
|
"sdc";
|
|
nvidia,pull = <2>;
|
|
nvidia,tristate = <0>;
|
|
};
|
|
conf_hdint {
|
|
nvidia,pins = "hdint", "lcsn", "ldc", "lm1",
|
|
"lpw1", "lsc1", "lsck", "lsda", "lsdi",
|
|
"lvp0", "owc", "sdb";
|
|
nvidia,tristate = <1>;
|
|
};
|
|
conf_irrx {
|
|
nvidia,pins = "irrx", "irtx", "sdd", "spic",
|
|
"spie", "spih", "uaa", "uab", "uad",
|
|
"uca", "ucb";
|
|
nvidia,pull = <2>;
|
|
nvidia,tristate = <1>;
|
|
};
|
|
conf_lc {
|
|
nvidia,pins = "lc", "ls";
|
|
nvidia,pull = <2>;
|
|
};
|
|
conf_ld0 {
|
|
nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
|
|
"ld5", "ld6", "ld7", "ld8", "ld9",
|
|
"ld10", "ld11", "ld12", "ld13", "ld14",
|
|
"ld15", "ld16", "ld17", "ldi", "lhp0",
|
|
"lhp1", "lhp2", "lhs", "lm0", "lpp",
|
|
"lpw0", "lpw2", "lsc0", "lspi", "lvp1",
|
|
"lvs", "pmc";
|
|
nvidia,tristate = <0>;
|
|
};
|
|
conf_ld17_0 {
|
|
nvidia,pins = "ld17_0", "ld19_18", "ld21_20",
|
|
"ld23_22";
|
|
nvidia,pull = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
i2s@70002800 {
|
|
status = "okay";
|
|
};
|
|
|
|
serial@70006300 {
|
|
status = "okay";
|
|
clock-frequency = <216000000>;
|
|
};
|
|
|
|
i2c@7000c000 {
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
|
|
wm8903: wm8903@1a {
|
|
compatible = "wlf,wm8903";
|
|
reg = <0x1a>;
|
|
interrupt-parent = <&gpio>;
|
|
interrupts = <187 0x04>;
|
|
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
|
|
micdet-cfg = <0>;
|
|
micdet-delay = <100>;
|
|
gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
|
|
};
|
|
};
|
|
|
|
i2c@7000c400 {
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
};
|
|
|
|
i2c@7000c500 {
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
};
|
|
|
|
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 = <&vdd_5v0_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 = "vdd_sm0,vdd_core";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@2 {
|
|
reg = <2>;
|
|
regulator-compatible = "sm1";
|
|
regulator-name = "vdd_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 = "vdd_sm2,vin_ldo*";
|
|
regulator-min-microvolt = <3700000>;
|
|
regulator-max-microvolt = <3700000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@4 {
|
|
reg = <4>;
|
|
regulator-compatible = "ldo0";
|
|
regulator-name = "vdd_ldo0,vddio_pex_clk";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
regulator@5 {
|
|
reg = <5>;
|
|
regulator-compatible = "ldo1";
|
|
regulator-name = "vdd_ldo1,avdd_pll*";
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <1100000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@6 {
|
|
reg = <6>;
|
|
regulator-compatible = "ldo2";
|
|
regulator-name = "vdd_ldo2,vdd_rtc";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
};
|
|
|
|
regulator@7 {
|
|
reg = <7>;
|
|
regulator-compatible = "ldo3";
|
|
regulator-name = "vdd_ldo3,avdd_usb*";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@8 {
|
|
reg = <8>;
|
|
regulator-compatible = "ldo4";
|
|
regulator-name = "vdd_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 = "vdd_ldo5,vcore_mmc";
|
|
regulator-min-microvolt = <2850000>;
|
|
regulator-max-microvolt = <2850000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@10 {
|
|
reg = <10>;
|
|
regulator-compatible = "ldo6";
|
|
regulator-name = "vdd_ldo6,avdd_vdac";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
regulator@11 {
|
|
reg = <11>;
|
|
regulator-compatible = "ldo7";
|
|
regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
regulator@12 {
|
|
reg = <12>;
|
|
regulator-compatible = "ldo8";
|
|
regulator-name = "vdd_ldo8,avdd_hdmi_pll";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
regulator@13 {
|
|
reg = <13>;
|
|
regulator-compatible = "ldo9";
|
|
regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
|
|
regulator-min-microvolt = <2850000>;
|
|
regulator-max-microvolt = <2850000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@14 {
|
|
reg = <14>;
|
|
regulator-compatible = "ldo_rtc";
|
|
regulator-name = "vdd_rtc_out,vdd_cell";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
pmc {
|
|
nvidia,invert-interrupt;
|
|
};
|
|
|
|
usb@c5000000 {
|
|
status = "okay";
|
|
};
|
|
|
|
usb@c5004000 {
|
|
status = "okay";
|
|
nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
|
|
};
|
|
|
|
usb@c5008000 {
|
|
status = "okay";
|
|
};
|
|
|
|
sdhci@c8000200 {
|
|
status = "okay";
|
|
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
|
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
|
power-gpios = <&gpio 155 0>; /* gpio PT3 */
|
|
bus-width = <4>;
|
|
};
|
|
|
|
sdhci@c8000600 {
|
|
status = "okay";
|
|
cd-gpios = <&gpio 58 0>; /* gpio PH2 */
|
|
wp-gpios = <&gpio 59 0>; /* gpio PH3 */
|
|
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
|
bus-width = <8>;
|
|
};
|
|
|
|
regulators {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
vdd_5v0_reg: regulator@0 {
|
|
compatible = "regulator-fixed";
|
|
reg = <0>;
|
|
regulator-name = "vdd_5v0";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
regulator@1 {
|
|
compatible = "regulator-fixed";
|
|
reg = <1>;
|
|
regulator-name = "vdd_1v5";
|
|
regulator-min-microvolt = <1500000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
gpio = <&pmic 0 0>;
|
|
};
|
|
|
|
regulator@2 {
|
|
compatible = "regulator-fixed";
|
|
reg = <2>;
|
|
regulator-name = "vdd_1v2";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
gpio = <&pmic 1 0>;
|
|
enable-active-high;
|
|
};
|
|
|
|
regulator@3 {
|
|
compatible = "regulator-fixed";
|
|
reg = <3>;
|
|
regulator-name = "vdd_1v05";
|
|
regulator-min-microvolt = <1050000>;
|
|
regulator-max-microvolt = <1050000>;
|
|
gpio = <&pmic 2 0>;
|
|
enable-active-high;
|
|
/* Hack until board-harmony-pcie.c is removed */
|
|
status = "disabled";
|
|
};
|
|
|
|
regulator@4 {
|
|
compatible = "regulator-fixed";
|
|
reg = <4>;
|
|
regulator-name = "vdd_pnl";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
gpio = <&gpio 22 0>; /* gpio PC6 */
|
|
enable-active-high;
|
|
};
|
|
|
|
regulator@5 {
|
|
compatible = "regulator-fixed";
|
|
reg = <5>;
|
|
regulator-name = "vdd_bl";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
gpio = <&gpio 176 0>; /* gpio PW0 */
|
|
enable-active-high;
|
|
};
|
|
};
|
|
|
|
sound {
|
|
compatible = "nvidia,tegra-audio-wm8903-harmony",
|
|
"nvidia,tegra-audio-wm8903";
|
|
nvidia,model = "NVIDIA Tegra Harmony";
|
|
|
|
nvidia,audio-routing =
|
|
"Headphone Jack", "HPOUTR",
|
|
"Headphone Jack", "HPOUTL",
|
|
"Int Spk", "ROP",
|
|
"Int Spk", "RON",
|
|
"Int Spk", "LOP",
|
|
"Int Spk", "LON",
|
|
"Mic Jack", "MICBIAS",
|
|
"IN1L", "Mic Jack";
|
|
|
|
nvidia,i2s-controller = <&tegra_i2s1>;
|
|
nvidia,audio-codec = <&wm8903>;
|
|
|
|
nvidia,spkr-en-gpios = <&wm8903 2 0>;
|
|
nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
|
|
nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */
|
|
nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */
|
|
};
|
|
};
|