[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