[PATCH v2 3/9] ARM: dts: dra72: Add separate dtsi for tps65917
Roger Quadros
rogerq at ti.com
Tue Dec 13 04:40:36 PST 2016
+Tomi, Kishon, Carlos
Hi,
On 21/10/16 13:38, Lokesh Vutla wrote:
> dra72-evm-common.dtsi consolidates dra72-evm.dts and dra72-evm-revc.dts
> which also include tps65917 pmic support as both the evms uses the same
> pmic. But, dra71-evm has mostly similar features with a different pmic.
> In order to exploit dra72-evm-common.dtsi, creating a separate dtsi
> for tps65915 support and including it in respective board files.
>
> Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
> ---
> arch/arm/boot/dts/dra72-evm-common.dtsi | 128 ----------------------------
> arch/arm/boot/dts/dra72-evm-revc.dts | 21 +++--
> arch/arm/boot/dts/dra72-evm-tps65917.dtsi | 134 ++++++++++++++++++++++++++++++
> arch/arm/boot/dts/dra72-evm.dts | 14 ++--
> 4 files changed, 154 insertions(+), 143 deletions(-)
> create mode 100644 arch/arm/boot/dts/dra72-evm-tps65917.dtsi
>
This patch breaks USB XHCI and boot on dra72-evm (both revC and non revC)
I'll explain why below.
[ 13.625167] Unhandled fault: imprecise external abort (0x1406) at 0x00000000
[ 13.632557] pgd = ede10000
[ 13.635390] [00000000] *pgd=00000000
[ 13.639145] Internal error: : 1406 [#1] SMP ARM
[ 13.643893] Modules linked in: xhci_plat_hcd(+) xhci_hcd usbcore omapfb dwc3 cfbfillrect snd_soc_davinci_mcasp cfbimgblt cfbcopyarea udc_core connector_hdmi encoder_tpd12s015 snd_soc_edma m25p80 snd_soc_simpe
[ 13.695557] CPU: 0 PID: 440 Comm: modprobe Not tainted 4.9.0-rc1 #1050
[ 13.702399] Hardware name: Generic DRA72X (Flattened Device Tree)
[ 13.708786] task: edb5c040 task.stack: edd10000
[ 13.713540] PC is at _raw_spin_unlock_irqrestore+0x0/0x44
[ 13.719219] LR is at xhci_hub_control+0xc2c/0x15e0 [xhci_hcd]
[ 13.725242] pc : [<c07df718>] lr : [<bf486300>] psr: a0000093
[ 13.725242] sp : edd118c0 ip : c0e306b4 fp : 00000000
[ 13.737278] r10: 00000000 r9 : 60000013 r8 : edf28218
[ 13.742753] r7 : edf28000 r6 : 00000000 r5 : 00000000 r4 : edf2a000
[ 13.749593] r3 : 00000000 r2 : 00000000 r1 : 60000013 r0 : edf28218
> diff --git a/arch/arm/boot/dts/dra72-evm-common.dtsi b/arch/arm/boot/dts/dra72-evm-common.dtsi
> index 8537b6a..9903ac7 100644
> --- a/arch/arm/boot/dts/dra72-evm-common.dtsi
> +++ b/arch/arm/boot/dts/dra72-evm-common.dtsi
> @@ -214,123 +214,6 @@
> status = "okay";
> clock-frequency = <400000>;
>
> - tps65917: tps65917 at 58 {
> - compatible = "ti,tps65917";
> - reg = <0x58>;
> -
> - interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */
> - interrupt-controller;
> - #interrupt-cells = <2>;
> -
> - ti,system-power-controller;
> -
> - tps65917_pmic {
> - compatible = "ti,tps65917-pmic";
> -
> - smps1-in-supply = <&vsys_3v3>;
> - smps2-in-supply = <&vsys_3v3>;
> - smps3-in-supply = <&vsys_3v3>;
> - smps4-in-supply = <&vsys_3v3>;
> - smps5-in-supply = <&vsys_3v3>;
> - ldo1-in-supply = <&vsys_3v3>;
> - ldo2-in-supply = <&vsys_3v3>;
> - ldo3-in-supply = <&vsys_3v3>;
> - ldo4-in-supply = <&evm_5v0>;
> - ldo5-in-supply = <&vsys_3v3>;
> -
> - tps65917_regulators: regulators {
> - smps1_reg: smps1 {
> - /* VDD_MPU */
> - regulator-name = "smps1";
> - regulator-min-microvolt = <850000>;
> - regulator-max-microvolt = <1250000>;
> - regulator-always-on;
> - regulator-boot-on;
> - };
> -
> - smps2_reg: smps2 {
> - /* VDD_CORE */
> - regulator-name = "smps2";
> - regulator-min-microvolt = <850000>;
> - regulator-max-microvolt = <1150000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> -
> - smps3_reg: smps3 {
> - /* VDD_GPU IVA DSPEVE */
> - regulator-name = "smps3";
> - regulator-min-microvolt = <850000>;
> - regulator-max-microvolt = <1250000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> -
> - smps4_reg: smps4 {
> - /* VDDS1V8 */
> - regulator-name = "smps4";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-always-on;
> - regulator-boot-on;
> - };
> -
> - smps5_reg: smps5 {
> - /* VDD_DDR */
> - regulator-name = "smps5";
> - regulator-min-microvolt = <1350000>;
> - regulator-max-microvolt = <1350000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> -
> - ldo1_reg: ldo1 {
> - /* LDO1_OUT --> SDIO */
> - regulator-name = "ldo1";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-allow-bypass;
> - };
> -
> - ldo3_reg: ldo3 {
> - /* VDDA_1V8_PHY */
> - regulator-name = "ldo3";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-boot-on;
> - regulator-always-on;
> - };
> -
> - ldo5_reg: ldo5 {
> - /* VDDA_1V8_PLL */
> - regulator-name = "ldo5";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-always-on;
> - regulator-boot-on;
> - };
> -
> - ldo4_reg: ldo4 {
> - /* VDDA_3V_USB: VDDA_USBHS33 */
> - regulator-name = "ldo4";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-boot-on;
> - };
> - };
> - };
> -
> - tps65917_power_button {
> - compatible = "ti,palmas-pwrbutton";
> - interrupt-parent = <&tps65917>;
> - interrupts = <1 IRQ_TYPE_NONE>;
> - wakeup-source;
> - ti,palmas-long-press-seconds = <6>;
> - };
> - };
> -
> pcf_gpio_21: gpio at 21 {
> compatible = "ti,pcf8575", "nxp,pcf8575";
> reg = <0x21>;
> @@ -480,14 +363,6 @@
> };
> };
>
> -&usb2_phy1 {
> - phy-supply = <&ldo4_reg>;
> -};
> -
> -&usb2_phy2 {
> - phy-supply = <&ldo4_reg>;
> -};
> -
You remove this here but don't add them in the board dts files.
> &omap_dwc3_1 {
> extcon = <&extcon_usb1>;
> };
> @@ -509,7 +384,6 @@
> pinctrl-names = "default";
> pinctrl-0 = <&mmc1_pins_default>;
> vmmc-supply = <&evm_3v3_sd>;
> - vmmc_aux-supply = <&ldo1_reg>;
What about this?
> bus-width = <4>;
> /*
> * SDCD signal is not being used here - using the fact that GPIO mode
> @@ -606,8 +480,6 @@
>
> &dss {
> status = "ok";
> -
> - vdda_video-supply = <&ldo5_reg>;
and this?
> };
>
> &hdmi {
> diff --git a/arch/arm/boot/dts/dra72-evm-revc.dts b/arch/arm/boot/dts/dra72-evm-revc.dts
> index 064b322..4ea2a0c 100644
> --- a/arch/arm/boot/dts/dra72-evm-revc.dts
> +++ b/arch/arm/boot/dts/dra72-evm-revc.dts
> @@ -17,17 +17,22 @@
> };
> };
>
> -&tps65917_regulators {
> - ldo2_reg: ldo2 {
> - /* LDO2_OUT --> VDDA_1V8_PHY2 */
> - regulator-name = "ldo2";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-always-on;
> - regulator-boot-on;
> +&i2c1 {
> + tps65917: tps65917 at 58 {
> + reg = <0x58>;
> +
> + interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */
> };
> };
>
> +#include "dra72-evm-tps65917.dtsi"
> +
> +&ldo2_reg {
> + /* LDO2_OUT --> VDDA_1V8_PHY2 */
> + regulator-always-on;
> + regulator-boot-on;
> +};
> +
Here you need to add the usb2_phy1 & 2 supplies.
> &hdmi {
> vdda-supply = <&ldo2_reg>;
> };
> diff --git a/arch/arm/boot/dts/dra72-evm-tps65917.dtsi b/arch/arm/boot/dts/dra72-evm-tps65917.dtsi
> new file mode 100644
> index 0000000..ee6dac4
> --- /dev/null
> +++ b/arch/arm/boot/dts/dra72-evm-tps65917.dtsi
> @@ -0,0 +1,134 @@
> +/*
> + * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +/*
> + * Integrated Power Management Chip
> + * http://www.ti.com/lit/ds/symlink/tps65917-q1.pdf
> + */
> +
> +&tps65917 {
> + compatible = "ti,tps65917";
> +
> + interrupt-controller;
> + #interrupt-cells = <2>;
> +
> + ti,system-power-controller;
> +
> + tps65917_pmic {
> + compatible = "ti,tps65917-pmic";
> +
> + smps1-in-supply = <&vsys_3v3>;
> + smps2-in-supply = <&vsys_3v3>;
> + smps3-in-supply = <&vsys_3v3>;
> + smps4-in-supply = <&vsys_3v3>;
> + smps5-in-supply = <&vsys_3v3>;
> + ldo1-in-supply = <&vsys_3v3>;
> + ldo2-in-supply = <&vsys_3v3>;
> + ldo3-in-supply = <&vsys_3v3>;
> + ldo4-in-supply = <&evm_5v0>;
> + ldo5-in-supply = <&vsys_3v3>;
> +
> + tps65917_regulators: regulators {
> + smps1_reg: smps1 {
> + /* VDD_MPU */
> + regulator-name = "smps1";
> + regulator-min-microvolt = <850000>;
> + regulator-max-microvolt = <1250000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + smps2_reg: smps2 {
> + /* VDD_CORE */
> + regulator-name = "smps2";
> + regulator-min-microvolt = <850000>;
> + regulator-max-microvolt = <1150000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + smps3_reg: smps3 {
> + /* VDD_GPU IVA DSPEVE */
> + regulator-name = "smps3";
> + regulator-min-microvolt = <850000>;
> + regulator-max-microvolt = <1250000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + smps4_reg: smps4 {
> + /* VDDS1V8 */
> + regulator-name = "smps4";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + smps5_reg: smps5 {
> + /* VDD_DDR */
> + regulator-name = "smps5";
> + regulator-min-microvolt = <1350000>;
> + regulator-max-microvolt = <1350000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + ldo1_reg: ldo1 {
> + /* LDO1_OUT --> SDIO */
> + regulator-name = "ldo1";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-allow-bypass;
> + };
> +
> + ldo2_reg: ldo2 {
> + regulator-name = "ldo2";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-allow-bypass;
> + };
> +
> + ldo3_reg: ldo3 {
> + /* VDDA_1V8_PHY */
> + regulator-name = "ldo3";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + ldo5_reg: ldo5 {
> + /* VDDA_1V8_PLL */
> + regulator-name = "ldo5";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + ldo4_reg: ldo4 {
> + /* VDDA_3V_USB: VDDA_USBHS33 */
> + regulator-name = "ldo4";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + };
> + };
> + };
> +
> + tps65917_power_button {
> + compatible = "ti,palmas-pwrbutton";
> + interrupt-parent = <&tps65917>;
> + interrupts = <1 IRQ_TYPE_NONE>;
> + wakeup-source;
> + ti,palmas-long-press-seconds = <6>;
> + };
> +};
> diff --git a/arch/arm/boot/dts/dra72-evm.dts b/arch/arm/boot/dts/dra72-evm.dts
> index e3a9b69..cd9c4ff 100644
> --- a/arch/arm/boot/dts/dra72-evm.dts
> +++ b/arch/arm/boot/dts/dra72-evm.dts
> @@ -15,16 +15,16 @@
> };
> };
>
> -&tps65917_regulators {
> - ldo2_reg: ldo2 {
> - /* LDO2_OUT --> TP1017 (UNUSED) */
> - regulator-name = "ldo2";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-allow-bypass;
> +&i2c1 {
> + tps65917: tps65917 at 58 {
> + reg = <0x58>;
> +
> + interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */
> };
> };
>
> +#include "dra72-evm-tps65917.dtsi"
> +
> &hdmi {
> vdda-supply = <&ldo3_reg>;
> };
>
Here as well you need to add the usb2_phy1 & 2 supplies.
We probably need to add dss and mmc supplies as well to both the board dts files?
cheers,
-roger
More information about the linux-arm-kernel
mailing list