ARM: DT: tegra: Add Tegra30 Beaver board support
Subsystems (3)
PATCH 1/2 ARM: DT: tegra: Add Tegra30 Beaver board support
This patch adds support for Tegra30 Beaver board in upstream kernel.
Beaver board is a Tegra30 SoC based development board, it has following features:
- T30 or T33 SoC (Qual core ARM Cortex A9)
- 2 GB DDR3L
- 16 GB EMMC
- 1 SD slot
- 1 USB Standart A port and 1 USB micro AB port
- PCI-E Gig Ethernet
- Audio input/output
- SATA port
- HDMI output
- UART and JTAG
--- arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/tegra30-beaver.dts | 374 ++++++++++++++++++++++++++++++++++ 2 files changed, 376 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/tegra30-beaver.dts
arch/arm/boot/dts/Makefile +2 -1
@@ -144,7 +144,8 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ tegra20-ventana.dtb \ tegra20-whistler.dtb \ tegra30-cardhu-a02.dtb \ - tegra30-cardhu-a04.dtb + tegra30-cardhu-a04.dtb \ + tegra30-beaver.dtb dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \ vexpress-v2p-ca9.dtb \ vexpress-v2p-ca15-tc1.dtb \
arch/arm/boot/dts/tegra30-beaver.dts new file +374 -0
374 lines not on this page · raw message
Signature · 1 line
1.7.10.4
PATCH 2/2 ARM: DT: tegra: Unify the description of Tegra20 boards
Use engineering name 'Tegra20' instead of 'Tegra2'
--- arch/arm/boot/dts/tegra20-harmony.dts | 2 +- arch/arm/boot/dts/tegra20-ventana.dts | 2 +- arch/arm/boot/dts/tegra20-whistler.dts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
arch/arm/boot/dts/tegra20-harmony.dts +1 -1
@@ -3,7 +3,7 @@ /include/ "tegra20.dtsi" / { - model = "NVIDIA Tegra2 Harmony evaluation board"; + model = "NVIDIA Tegra20 Harmony evaluation board"; compatible = "nvidia,harmony", "nvidia,tegra20"; memory {
arch/arm/boot/dts/tegra20-ventana.dts +1 -1
@@ -3,7 +3,7 @@ /include/ "tegra20.dtsi" / { - model = "NVIDIA Tegra2 Ventana evaluation board"; + model = "NVIDIA Tegra20 Ventana evaluation board"; compatible = "nvidia,ventana", "nvidia,tegra20"; memory {
arch/arm/boot/dts/tegra20-whistler.dts +1 -1
@@ -3,7 +3,7 @@ /include/ "tegra20.dtsi" / { - model = "NVIDIA Tegra2 Whistler evaluation board"; + model = "NVIDIA Tegra20 Whistler evaluation board"; compatible = "nvidia,whistler", "nvidia,tegra20"; memory {
Signature · 1 line
1.7.10.4
PATCH 2/2 ARM: DT: tegra: Unify the description of Tegra20 boards
Quoted 1 line · Bryan Wu
Use engineering name 'Tegra20' instead of 'Tegra2'
I have applied just patch 2/2 to Tegra's for-3.9/dt branch. I'll wait for an updated patch 1/2 that documents the board-level compatible property.
PATCH 1/2 ARM: DT: tegra: Add Tegra30 Beaver board support
In reply to Bryan WuQuoted 1 line · Bryan Wu
This patch adds support for Tegra30 Beaver board in upstream kernel.
I think these look fine. I can apply after the merge window closes.
PATCH 1/2 ARM: DT: tegra: Add Tegra30 Beaver board support
In reply to Bryan WuQuoted 15 lines · Bryan Wu
This patch adds support for Tegra30 Beaver board in upstream kernel.
Beaver board is a Tegra30 SoC based development board, it has following features:
- T30 or T33 SoC (Qual core ARM Cortex A9)
- 2 GB DDR3L
- 16 GB EMMC
- 1 SD slot
- 1 USB Standart A port and 1 USB micro AB port
- PCI-E Gig Ethernet
- Audio input/output
- SATA port
- HDMI output
- UART and JTAG
Quoted 4 lines
Signed-off-by Bryan Wu <[email protected]>--- arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/tegra30-beaver.dts | 374 ++++++++++++++++++++++++++++++++++
Nice to see we can add board support with only a new dts.
Quoted 23 lines
2 files changed, 376 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/tegra30-beaver.dtsarch/arm/boot/dts/Makefile +2
-1@@ -144,7 +144,8 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ tegra20-ventana.dtb \ tegra20-whistler.dtb \ tegra30-cardhu-a02.dtb \ - tegra30-cardhu-a04.dtb + tegra30-cardhu-a04.dtb \ + tegra30-beaver.dtb dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \ vexpress-v2p-ca9.dtb \ vexpress-v2p-ca15-tc1.dtb \arch/arm/boot/dts/tegra30-beaver.dts new file +0
-0
arch/arm/boot/dts/tegra30-beaver.dts line 7
Quoted 7 lines
arch/arm/boot/dts/tegra30-beaver.dts new file +7
-0@@ -0,0 +1,374 @@ +/dts-v1/; + +/include/ "tegra30.dtsi" + +/ { + model = "NVIDIA Tegra30 Beaver evaluation board"; + compatible = "nvidia,beaver", "nvidia,tegra30";
nvidia,beaver needs to be documented.
Rob
Quoted 368 lines
arch/arm/boot/dts/tegra30-beaver.dts new file +367
-0+ + memory { + reg = <0x80000000 0x80000000>; + }; + + pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + state_default: pinmux { + sdmmc1_clk_pz0 { + nvidia,pins = "sdmmc1_clk_pz0"; + nvidia,function = "sdmmc1"; + nvidia,pull = <0>; + nvidia,tristate = <0>; + }; + sdmmc1_cmd_pz1 { + nvidia,pins = "sdmmc1_cmd_pz1", + "sdmmc1_dat0_py7", + "sdmmc1_dat1_py6", + "sdmmc1_dat2_py5", + "sdmmc1_dat3_py4"; + nvidia,function = "sdmmc1"; + nvidia,pull = <2>; + nvidia,tristate = <0>; + }; + sdmmc3_clk_pa6 { + nvidia,pins = "sdmmc3_clk_pa6"; + nvidia,function = "sdmmc3"; + nvidia,pull = <0>; + nvidia,tristate = <0>; + }; + sdmmc3_cmd_pa7 { + nvidia,pins = "sdmmc3_cmd_pa7", + "sdmmc3_dat0_pb7", + "sdmmc3_dat1_pb6", + "sdmmc3_dat2_pb5", + "sdmmc3_dat3_pb4"; + nvidia,function = "sdmmc3"; + nvidia,pull = <2>; + nvidia,tristate = <0>; + }; + sdmmc4_clk_pcc4 { + nvidia,pins = "sdmmc4_clk_pcc4", + "sdmmc4_rst_n_pcc3"; + nvidia,function = "sdmmc4"; + nvidia,pull = <0>; + nvidia,tristate = <0>; + }; + sdmmc4_dat0_paa0 { + nvidia,pins = "sdmmc4_dat0_paa0", + "sdmmc4_dat1_paa1", + "sdmmc4_dat2_paa2", + "sdmmc4_dat3_paa3", + "sdmmc4_dat4_paa4", + "sdmmc4_dat5_paa5", + "sdmmc4_dat6_paa6", + "sdmmc4_dat7_paa7"; + nvidia,function = "sdmmc4"; + nvidia,pull = <2>; + nvidia,tristate = <0>; + }; + dap2_fs_pa2 { + nvidia,pins = "dap2_fs_pa2", + "dap2_sclk_pa3", + "dap2_din_pa4", + "dap2_dout_pa5"; + nvidia,function = "i2s1"; + nvidia,pull = <0>; + nvidia,tristate = <0>; + }; + sdio3 { + nvidia,pins = "drive_sdio3"; + nvidia,high-speed-mode = <0>; + nvidia,schmitt = <0>; + nvidia,pull-down-strength = <46>; + nvidia,pull-up-strength = <42>; + nvidia,slew-rate-rising = <1>; + nvidia,slew-rate-falling = <1>; + }; + }; + }; + + serial at 70006000 { + status = "okay"; + clock-frequency = <408000000>; + }; + + i2c at 7000c000 { + status = "okay"; + clock-frequency = <100000>; + }; + + i2c at 7000c400 { + status = "okay"; + clock-frequency = <100000>; + }; + + i2c at 7000c500 { + status = "okay"; + clock-frequency = <100000>; + }; + + i2c at 7000c700 { + status = "okay"; + clock-frequency = <100000>; + }; + + i2c at 7000d000 { + status = "okay"; + clock-frequency = <100000>; + + tps62361 { + compatible = "ti,tps62361"; + reg = <0x60>; + + regulator-name = "tps62361-vout"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1500000>; + regulator-boot-on; + regulator-always-on; + ti,vsel0-state-high; + ti,vsel1-state-high; + }; + + pmic: tps65911 at 2d { + compatible = "ti,tps65911"; + reg = <0x2d>; + + interrupts = <0 86 0x4>; + #interrupt-cells = <2>; + interrupt-controller; + + ti,system-power-controller; + + #gpio-cells = <2>; + gpio-controller; + + vcc1-supply = <&vdd_5v_in_reg>; + vcc2-supply = <&vdd_5v_in_reg>; + vcc3-supply = <&vio_reg>; + vcc4-supply = <&vdd_5v_in_reg>; + vcc5-supply = <&vdd_5v_in_reg>; + vcc6-supply = <&vdd2_reg>; + vcc7-supply = <&vdd_5v_in_reg>; + vccio-supply = <&vdd_5v_in_reg>; + + regulators { + #address-cells = <1>; + #size-cells = <0>; + + vdd1_reg: vdd1 { + regulator-name = "vddio_ddr_1v2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + }; + + vdd2_reg: vdd2 { + regulator-name = "vdd_1v5_gen"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + }; + + vddctrl_reg: vddctrl { + regulator-name = "vdd_cpu,vdd_sys"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + }; + + vio_reg: vio { + regulator-name = "vdd_1v8_gen"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; + + ldo1_reg: ldo1 { + regulator-name = "vdd_pexa,vdd_pexb"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + }; + + ldo2_reg: ldo2 { + regulator-name = "vdd_sata,avdd_plle"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + }; + + /* LDO3 is not connected to anything */ + + ldo4_reg: ldo4 { + regulator-name = "vdd_rtc"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + }; + + ldo5_reg: ldo5 { + regulator-name = "vddio_sdmmc,avdd_vdac"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + ldo6_reg: ldo6 { + regulator-name = "avdd_dsi_csi,pwrdet_mipi"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo7_reg: ldo7 { + regulator-name = "vdd_pllm,x,u,a_p_c_s"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + }; + + ldo8_reg: ldo8 { + regulator-name = "vdd_ddr_hs"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + }; + }; + }; + }; + + spi at 7000da00 { + status = "okay"; + spi-max-frequency = <25000000>; + spi-flash at 1 { + compatible = "winbond,w25q32"; + reg = <1>; + spi-max-frequency = <20000000>; + }; + }; + + ahub { + i2s at 70080400 { + status = "okay"; + }; + }; + + pmc { + status = "okay"; + nvidia,invert-interrupt; + }; + + sdhci at 78000000 { + status = "okay"; + cd-gpios = <&gpio 69 0>; /* gpio PI5 */ + wp-gpios = <&gpio 155 0>; /* gpio PT3 */ + power-gpios = <&gpio 31 0>; /* gpio PD7 */ + bus-width = <4>; + }; + + sdhci at 78000600 { + status = "okay"; + bus-width = <8>; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + + vdd_5v_in_reg: regulator at 0 { + compatible = "regulator-fixed"; + reg = <0>; + regulator-name = "vdd_5v_in"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + }; + + chargepump_5v_reg: regulator at 1 { + compatible = "regulator-fixed"; + reg = <1>; + regulator-name = "chargepump_5v"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-boot-on; + regulator-always-on; + enable-active-high; + gpio = <&pmic 0 0>; /* PMIC TPS65911 GPIO0 */ + }; + + ddr_reg: regulator at 2 { + compatible = "regulator-fixed"; + reg = <2>; + regulator-name = "vdd_ddr"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + enable-active-high; + gpio = <&pmic 7 0>; /* PMIC TPS65911 GPIO7 */ + vin-supply = <&vdd_5v_in_reg>; + }; + + vdd_5v_sata_reg: regulator at 3 { + compatible = "regulator-fixed"; + reg = <3>; + regulator-name = "vdd_5v_sata"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + enable-active-high; + gpio = <&gpio 30 0>; /* gpio PD6 */ + vin-supply = <&vdd_5v_in_reg>; + }; + + usb1_vbus_reg: regulator at 4 { + compatible = "regulator-fixed"; + reg = <4>; + regulator-name = "usb1_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio 68 0>; /* GPIO PI4 */ + gpio-open-drain; + vin-supply = <&vdd_5v_in_reg>; + }; + + usb3_vbus_reg: regulator at 5 { + compatible = "regulator-fixed"; + reg = <5>; + regulator-name = "usb3_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio 63 0>; /* GPIO PH7 */ + gpio-open-drain; + vin-supply = <&vdd_5v_in_reg>; + }; + + sys_3v3_reg: regulator at 6 { + compatible = "regulator-fixed"; + reg = <6>; + regulator-name = "sys_3v3,vdd_3v3_alw"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + enable-active-high; + gpio = <&pmic 6 0>; /* PMIC TPS65911 GPIO6 */ + vin-supply = <&vdd_5v_in_reg>; + }; + + sys_3v3_pexs_reg: regulator at 7 { + compatible = "regulator-fixed"; + reg = <7>; + regulator-name = "sys_3v3_pexs"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + enable-active-high; + gpio = <&gpio 95 0>; /* gpio PL7 */ + vin-supply = <&sys_3v3_reg>; + }; + }; +};
PATCH 1/2 ARM: DT: tegra: Add Tegra30 Beaver board support
Quoted 10 lines · Rob Herring
arch/arm/boot/dts/tegra30-beaver.dts line 7
Quoted 7 lines · Bryan Wu
This patch adds support for Tegra30 Beaver board in upstream kernel.
arch/arm/boot/dts/tegra30-beaver.dts +3
-0+/ { + model = "NVIDIA Tegra30 Beaver evaluation board"; + compatible = "nvidia,beaver", "nvidia,tegra30";nvidia,beaver needs to be documented.
Hmmm. I guess we've managed not to document /any/ of the Tegra board-level compatible values. Bryan, could you make a separate patch to add all the existing board compatible values to Documentation/devicetree/bindings/arm/tegra.txt. The Beaver addition to that file can still be part of the Beaver-specific patch though.
PATCH 1/2 ARM: DT: tegra: Add Tegra30 Beaver board support
Quoted 10 lines · Stephen Warren
Quoted 9 lines · Rob Herring
Quoted 7 lines · Bryan Wu
This patch adds support for Tegra30 Beaver board in upstream kernel.
arch/arm/boot/dts/tegra30-beaver.dts +3
-0+/ { + model = "NVIDIA Tegra30 Beaver evaluation board"; + compatible = "nvidia,beaver", "nvidia,tegra30";
Quoted 7 lines
Quoted 1 line
nvidia,beaver needs to be documented.
Hmmm. I guess we've managed not to document /any/ of the Tegra board-level compatible values. Bryan, could you make a separate patch to add all the existing board compatible values to
Documentation/devicetree/bindings/arm/tegra.txt. The Beaver addition to that file can still be part of the Beaver-specific patch though.
Does it need to be documented? Then the "support a new platform only through DTS update" is no longer true. :)
In the past, I don't think we've strictly documented all derivative platform compatible values, just some of the reference ones?
-Olof
PATCH 1/2 ARM: DT: tegra: Add Tegra30 Beaver board support
Quoted 14 lines · Olof Johansson
Quoted 8 lines · Stephen Warren
Quoted 7 lines · Rob Herring
arch/arm/boot/dts/tegra30-beaver.dts line 7
Quoted 5 lines · Bryan Wu
This patch adds support for Tegra30 Beaver board in upstream kernel.
arch/arm/boot/dts/tegra30-beaver.dts +3
-0+/ { + model = "NVIDIA Tegra30 Beaver evaluation board"; + compatible = "nvidia,beaver", "nvidia,tegra30";nvidia,beaver needs to be documented.
Quoted 5 lines
Hmmm. I guess we've managed not to document /any/ of the Tegra board-level compatible values. Bryan, could you make a separate patch to add all the existing board compatible values to
Documentation/devicetree/bindings/arm/tegra.txt. The Beaver addition to that file can still be part of the Beaver-specific patch though.
Quoted 8 lines
Does it need to be documented? Then the "support a new platform only through DTS update" is no longer true. :)
In the past, I don't think we've strictly documented all derivative platform compatible values, just some of the reference ones?
-Olof
Actually in every Tegra board dts file, there is a model string to describe this machine as well as a compatible board string, just like the "nvidia,beaver". So do we still need put this duplicated information in a document file? Or if this is the requirement of DeviceTree. I will do that. I think we have 12 boards need to add such document currently.
Thanks and happy new year.
-Bryan
PATCH 1/2 ARM: DT: tegra: Add Tegra30 Beaver board support
Quoted 22 lines · Peng Wu
Quoted 21 lines · Olof Johansson
Quoted 8 lines · Stephen Warren
Quoted 7 lines · Rob Herring
arch/arm/boot/dts/tegra30-beaver.dts line 7
Quoted 5 lines · Bryan Wu
This patch adds support for Tegra30 Beaver board in upstream kernel.
arch/arm/boot/dts/tegra30-beaver.dts +3
-0+/ { + model = "NVIDIA Tegra30 Beaver evaluation board"; + compatible = "nvidia,beaver", "nvidia,tegra30";nvidia,beaver needs to be documented.
Quoted 5 lines
Hmmm. I guess we've managed not to document /any/ of the Tegra board-level compatible values. Bryan, could you make a separate patch to add all the existing board compatible values to
Documentation/devicetree/bindings/arm/tegra.txt. The Beaver addition to that file can still be part of the Beaver-specific patch though.Does it need to be documented? Then the "support a new platform only through DTS update" is no longer true. :)
In the past, I don't think we've strictly documented all derivative platform compatible values, just some of the reference ones?
Quoted 7 lines
Quoted 1 line
-Olof
Actually in every Tegra board dts file, there is a model string to describe this machine as well as a compatible board string, just like the "nvidia,beaver". So do we still need put this duplicated information in a document file? Or if this is the requirement of DeviceTree. I will do that. I think we have 12 boards need to add such document currently.
The model string is intended to be human-friendly, where as compatible is primarily the matching mechanism.
I don't think it is stricly necessary to document top level compatible strings unless there is something quirky that begs to be documented.