+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@xxxxxx> > --- > 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@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@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@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@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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html