2015-04-02 14:32:31

by Tomeu Vizoso

[permalink] [raw]
Subject: [PATCH] ARM: tegra: Correct which USB controller has the UTMI pad registers

It should be the first controller, not the second.

This broke USB after 6261b06 ("regulator: Defer lookup of supply to
regulator_get"), because it changed the order in which the controllers
were probed.

The fix for this issue was suggested by Mikko Perttunen.

Signed-off-by: Tomeu Vizoso <[email protected]>
Cc: Mikko Perttunen <[email protected]>
---
arch/arm/boot/dts/tegra124.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
index cf01c81..cb786a9 100644
--- a/arch/arm/boot/dts/tegra124.dtsi
+++ b/arch/arm/boot/dts/tegra124.dtsi
@@ -838,6 +838,7 @@
nvidia,hssquelch-level = <2>;
nvidia,hsdiscon-level = <5>;
nvidia,xcvr-hsslew = <12>;
+ nvidia,has-utmi-pad-registers;
status = "disabled";
};

@@ -874,7 +875,6 @@
nvidia,hssquelch-level = <2>;
nvidia,hsdiscon-level = <5>;
nvidia,xcvr-hsslew = <12>;
- nvidia,has-utmi-pad-registers;
status = "disabled";
};

--
2.3.4


2015-04-02 14:53:53

by Mikko Perttunen

[permalink] [raw]
Subject: Re: [PATCH] ARM: tegra: Correct which USB controller has the UTMI pad registers

Have you checked that this patch applies correctly, considering that the
chunks are still ambiguous? :)

Mikko

On 04/02/2015 05:31 PM, Tomeu Vizoso wrote:
> It should be the first controller, not the second.
>
> This broke USB after 6261b06 ("regulator: Defer lookup of supply to
> regulator_get"), because it changed the order in which the controllers
> were probed.
>
> The fix for this issue was suggested by Mikko Perttunen.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
> Cc: Mikko Perttunen <[email protected]>
> ---
> arch/arm/boot/dts/tegra124.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
> index cf01c81..cb786a9 100644
> --- a/arch/arm/boot/dts/tegra124.dtsi
> +++ b/arch/arm/boot/dts/tegra124.dtsi
> @@ -838,6 +838,7 @@
> nvidia,hssquelch-level = <2>;
> nvidia,hsdiscon-level = <5>;
> nvidia,xcvr-hsslew = <12>;
> + nvidia,has-utmi-pad-registers;
> status = "disabled";
> };
>
> @@ -874,7 +875,6 @@
> nvidia,hssquelch-level = <2>;
> nvidia,hsdiscon-level = <5>;
> nvidia,xcvr-hsslew = <12>;
> - nvidia,has-utmi-pad-registers;
> status = "disabled";
> };
>
>

2015-04-02 15:01:20

by Tomeu Vizoso

[permalink] [raw]
Subject: [PATCH v2] ARM: tegra: Correct which USB controller has the UTMI pad registers

It should be the first controller, not the second.

This broke USB after 6261b06 ("regulator: Defer lookup of supply to
regulator_get"), because it changed the order in which the controllers
were probed.

The fix for this issue was suggested by Mikko Perttunen.

Signed-off-by: Tomeu Vizoso <[email protected]>
Cc: Mikko Perttunen <[email protected]>
---

I think that the line numbers should be enough in this case, as I expect this to be merged soon, but just in case I'm sending the same patch with plenty of context.

Regards,

Tomeu

---
arch/arm/boot/dts/tegra124.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
index cf01c81..cb786a9 100644
--- a/arch/arm/boot/dts/tegra124.dtsi
+++ b/arch/arm/boot/dts/tegra124.dtsi
@@ -821,77 +821,77 @@
compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
reg = <0x0 0x7d000000 0x0 0x4000>,
<0x0 0x7d000000 0x0 0x4000>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USBD>,
<&tegra_car TEGRA124_CLK_PLL_U>,
<&tegra_car TEGRA124_CLK_USBD>;
clock-names = "reg", "pll_u", "utmi-pads";
resets = <&tegra_car 59>, <&tegra_car 22>;
reset-names = "usb", "utmi-pads";
nvidia,hssync-start-delay = <0>;
nvidia,idle-wait-delay = <17>;
nvidia,elastic-limit = <16>;
nvidia,term-range-adj = <6>;
nvidia,xcvr-setup = <9>;
nvidia,xcvr-lsfslew = <0>;
nvidia,xcvr-lsrslew = <3>;
nvidia,hssquelch-level = <2>;
nvidia,hsdiscon-level = <5>;
nvidia,xcvr-hsslew = <12>;
+ nvidia,has-utmi-pad-registers;
status = "disabled";
};

usb@0,7d004000 {
compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
reg = <0x0 0x7d004000 0x0 0x4000>;
interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USB2>;
resets = <&tegra_car 58>;
reset-names = "usb";
nvidia,phy = <&phy2>;
status = "disabled";
};

phy2: usb-phy@0,7d004000 {
compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
reg = <0x0 0x7d004000 0x0 0x4000>,
<0x0 0x7d000000 0x0 0x4000>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USB2>,
<&tegra_car TEGRA124_CLK_PLL_U>,
<&tegra_car TEGRA124_CLK_USBD>;
clock-names = "reg", "pll_u", "utmi-pads";
resets = <&tegra_car 22>, <&tegra_car 22>;
reset-names = "usb", "utmi-pads";
nvidia,hssync-start-delay = <0>;
nvidia,idle-wait-delay = <17>;
nvidia,elastic-limit = <16>;
nvidia,term-range-adj = <6>;
nvidia,xcvr-setup = <9>;
nvidia,xcvr-lsfslew = <0>;
nvidia,xcvr-lsrslew = <3>;
nvidia,hssquelch-level = <2>;
nvidia,hsdiscon-level = <5>;
nvidia,xcvr-hsslew = <12>;
- nvidia,has-utmi-pad-registers;
status = "disabled";
};

usb@0,7d008000 {
compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
reg = <0x0 0x7d008000 0x0 0x4000>;
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USB3>;
resets = <&tegra_car 59>;
reset-names = "usb";
nvidia,phy = <&phy3>;
status = "disabled";
};

phy3: usb-phy@0,7d008000 {
compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
reg = <0x0 0x7d008000 0x0 0x4000>,
<0x0 0x7d000000 0x0 0x4000>;
phy_type = "utmi";
--
2.3.4

2015-04-02 15:20:21

by Mikko Perttunen

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: tegra: Correct which USB controller has the UTMI pad registers

Reviewed-by: Mikko Perttunen <[email protected]>

On 04/02/2015 06:00 PM, Tomeu Vizoso wrote:
> It should be the first controller, not the second.
>
> This broke USB after 6261b06 ("regulator: Defer lookup of supply to
> regulator_get"), because it changed the order in which the controllers
> were probed.
>
> The fix for this issue was suggested by Mikko Perttunen.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
> Cc: Mikko Perttunen <[email protected]>
> ---
>
> I think that the line numbers should be enough in this case, as I expect this to be merged soon, but just in case I'm sending the same patch with plenty of context.
>
> Regards,
>
> Tomeu
>
> ---
> arch/arm/boot/dts/tegra124.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
> index cf01c81..cb786a9 100644
> --- a/arch/arm/boot/dts/tegra124.dtsi
> +++ b/arch/arm/boot/dts/tegra124.dtsi
> @@ -821,77 +821,77 @@
> compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
> reg = <0x0 0x7d000000 0x0 0x4000>,
> <0x0 0x7d000000 0x0 0x4000>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USBD>,
> <&tegra_car TEGRA124_CLK_PLL_U>,
> <&tegra_car TEGRA124_CLK_USBD>;
> clock-names = "reg", "pll_u", "utmi-pads";
> resets = <&tegra_car 59>, <&tegra_car 22>;
> reset-names = "usb", "utmi-pads";
> nvidia,hssync-start-delay = <0>;
> nvidia,idle-wait-delay = <17>;
> nvidia,elastic-limit = <16>;
> nvidia,term-range-adj = <6>;
> nvidia,xcvr-setup = <9>;
> nvidia,xcvr-lsfslew = <0>;
> nvidia,xcvr-lsrslew = <3>;
> nvidia,hssquelch-level = <2>;
> nvidia,hsdiscon-level = <5>;
> nvidia,xcvr-hsslew = <12>;
> + nvidia,has-utmi-pad-registers;
> status = "disabled";
> };
>
> usb@0,7d004000 {
> compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
> reg = <0x0 0x7d004000 0x0 0x4000>;
> interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USB2>;
> resets = <&tegra_car 58>;
> reset-names = "usb";
> nvidia,phy = <&phy2>;
> status = "disabled";
> };
>
> phy2: usb-phy@0,7d004000 {
> compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
> reg = <0x0 0x7d004000 0x0 0x4000>,
> <0x0 0x7d000000 0x0 0x4000>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USB2>,
> <&tegra_car TEGRA124_CLK_PLL_U>,
> <&tegra_car TEGRA124_CLK_USBD>;
> clock-names = "reg", "pll_u", "utmi-pads";
> resets = <&tegra_car 22>, <&tegra_car 22>;
> reset-names = "usb", "utmi-pads";
> nvidia,hssync-start-delay = <0>;
> nvidia,idle-wait-delay = <17>;
> nvidia,elastic-limit = <16>;
> nvidia,term-range-adj = <6>;
> nvidia,xcvr-setup = <9>;
> nvidia,xcvr-lsfslew = <0>;
> nvidia,xcvr-lsrslew = <3>;
> nvidia,hssquelch-level = <2>;
> nvidia,hsdiscon-level = <5>;
> nvidia,xcvr-hsslew = <12>;
> - nvidia,has-utmi-pad-registers;
> status = "disabled";
> };
>
> usb@0,7d008000 {
> compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
> reg = <0x0 0x7d008000 0x0 0x4000>;
> interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USB3>;
> resets = <&tegra_car 59>;
> reset-names = "usb";
> nvidia,phy = <&phy3>;
> status = "disabled";
> };
>
> phy3: usb-phy@0,7d008000 {
> compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
> reg = <0x0 0x7d008000 0x0 0x4000>,
> <0x0 0x7d000000 0x0 0x4000>;
> phy_type = "utmi";
>

2015-04-02 15:35:13

by Mikko Perttunen

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: tegra: Correct which USB controller has the UTMI pad registers

On 04/02/2015 06:20 PM, Mikko Perttunen wrote:
> Reviewed-by: Mikko Perttunen <[email protected]>

Scratch that;

as Tuomas noted on IRC, the reset numbers here are still wrong.
phy1 should have 22 and phy2 58.

>
> On 04/02/2015 06:00 PM, Tomeu Vizoso wrote:
>> It should be the first controller, not the second.
>>
>> This broke USB after 6261b06 ("regulator: Defer lookup of supply to
>> regulator_get"), because it changed the order in which the controllers
>> were probed.
>>
>> The fix for this issue was suggested by Mikko Perttunen.
>>
>> Signed-off-by: Tomeu Vizoso <[email protected]>
>> Cc: Mikko Perttunen <[email protected]>
>> ---
>>
>> I think that the line numbers should be enough in this case, as I
>> expect this to be merged soon, but just in case I'm sending the same
>> patch with plenty of context.
>>
>> Regards,
>>
>> Tomeu
>>
>> ---
>> arch/arm/boot/dts/tegra124.dtsi | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/boot/dts/tegra124.dtsi
>> b/arch/arm/boot/dts/tegra124.dtsi
>> index cf01c81..cb786a9 100644
>> --- a/arch/arm/boot/dts/tegra124.dtsi
>> +++ b/arch/arm/boot/dts/tegra124.dtsi
>> @@ -821,77 +821,77 @@
>> compatible = "nvidia,tegra124-usb-phy",
>> "nvidia,tegra30-usb-phy";
>> reg = <0x0 0x7d000000 0x0 0x4000>,
>> <0x0 0x7d000000 0x0 0x4000>;
>> phy_type = "utmi";
>> clocks = <&tegra_car TEGRA124_CLK_USBD>,
>> <&tegra_car TEGRA124_CLK_PLL_U>,
>> <&tegra_car TEGRA124_CLK_USBD>;
>> clock-names = "reg", "pll_u", "utmi-pads";
>> resets = <&tegra_car 59>, <&tegra_car 22>;
>> reset-names = "usb", "utmi-pads";
>> nvidia,hssync-start-delay = <0>;
>> nvidia,idle-wait-delay = <17>;
>> nvidia,elastic-limit = <16>;
>> nvidia,term-range-adj = <6>;
>> nvidia,xcvr-setup = <9>;
>> nvidia,xcvr-lsfslew = <0>;
>> nvidia,xcvr-lsrslew = <3>;
>> nvidia,hssquelch-level = <2>;
>> nvidia,hsdiscon-level = <5>;
>> nvidia,xcvr-hsslew = <12>;
>> + nvidia,has-utmi-pad-registers;
>> status = "disabled";
>> };
>>
>> usb@0,7d004000 {
>> compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci",
>> "usb-ehci";
>> reg = <0x0 0x7d004000 0x0 0x4000>;
>> interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
>> phy_type = "utmi";
>> clocks = <&tegra_car TEGRA124_CLK_USB2>;
>> resets = <&tegra_car 58>;
>> reset-names = "usb";
>> nvidia,phy = <&phy2>;
>> status = "disabled";
>> };
>>
>> phy2: usb-phy@0,7d004000 {
>> compatible = "nvidia,tegra124-usb-phy",
>> "nvidia,tegra30-usb-phy";
>> reg = <0x0 0x7d004000 0x0 0x4000>,
>> <0x0 0x7d000000 0x0 0x4000>;
>> phy_type = "utmi";
>> clocks = <&tegra_car TEGRA124_CLK_USB2>,
>> <&tegra_car TEGRA124_CLK_PLL_U>,
>> <&tegra_car TEGRA124_CLK_USBD>;
>> clock-names = "reg", "pll_u", "utmi-pads";
>> resets = <&tegra_car 22>, <&tegra_car 22>;
>> reset-names = "usb", "utmi-pads";
>> nvidia,hssync-start-delay = <0>;
>> nvidia,idle-wait-delay = <17>;
>> nvidia,elastic-limit = <16>;
>> nvidia,term-range-adj = <6>;
>> nvidia,xcvr-setup = <9>;
>> nvidia,xcvr-lsfslew = <0>;
>> nvidia,xcvr-lsrslew = <3>;
>> nvidia,hssquelch-level = <2>;
>> nvidia,hsdiscon-level = <5>;
>> nvidia,xcvr-hsslew = <12>;
>> - nvidia,has-utmi-pad-registers;
>> status = "disabled";
>> };
>>
>> usb@0,7d008000 {
>> compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci",
>> "usb-ehci";
>> reg = <0x0 0x7d008000 0x0 0x4000>;
>> interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
>> phy_type = "utmi";
>> clocks = <&tegra_car TEGRA124_CLK_USB3>;
>> resets = <&tegra_car 59>;
>> reset-names = "usb";
>> nvidia,phy = <&phy3>;
>> status = "disabled";
>> };
>>
>> phy3: usb-phy@0,7d008000 {
>> compatible = "nvidia,tegra124-usb-phy",
>> "nvidia,tegra30-usb-phy";
>> reg = <0x0 0x7d008000 0x0 0x4000>,
>> <0x0 0x7d000000 0x0 0x4000>;
>> phy_type = "utmi";
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2015-04-03 07:21:34

by Tomeu Vizoso

[permalink] [raw]
Subject: [PATCH v3] ARM: tegra: Correct which USB controller has the UTMI pad registers

It should be the first controller, not the second. The indexes of the
usb resets were also wrong and have been fixed.

The issue was caused by the changes in 308efde ("ARM: tegra: Add resets
& has-utmi-pad-registers flag to all USB PHYs") being misapplied by git
due to the patch context being insufficient.

This broke USB after 6261b06 ("regulator: Defer lookup of supply to
regulator_get"), because it changed the order in which the controllers
were probed.

The fix for this issue was suggested by Mikko Perttunen and Tuomas
Tynkkynen.

Signed-off-by: Tomeu Vizoso <[email protected]>
Cc: Mikko Perttunen <[email protected]>
Cc: Tuomas Tynkkynen <[email protected]>
---
Hi,

hope I have gotten it right this time, but please do check :)

Thanks,

Tomeu
---
arch/arm/boot/dts/tegra124.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
index cf01c81..13cc7ca 100644
--- a/arch/arm/boot/dts/tegra124.dtsi
+++ b/arch/arm/boot/dts/tegra124.dtsi
@@ -809,114 +809,114 @@
compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
reg = <0x0 0x7d000000 0x0 0x4000>;
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USBD>;
resets = <&tegra_car 22>;
reset-names = "usb";
nvidia,phy = <&phy1>;
status = "disabled";
};

phy1: usb-phy@0,7d000000 {
compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
reg = <0x0 0x7d000000 0x0 0x4000>,
<0x0 0x7d000000 0x0 0x4000>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USBD>,
<&tegra_car TEGRA124_CLK_PLL_U>,
<&tegra_car TEGRA124_CLK_USBD>;
clock-names = "reg", "pll_u", "utmi-pads";
- resets = <&tegra_car 59>, <&tegra_car 22>;
+ resets = <&tegra_car 22>, <&tegra_car 22>;
reset-names = "usb", "utmi-pads";
nvidia,hssync-start-delay = <0>;
nvidia,idle-wait-delay = <17>;
nvidia,elastic-limit = <16>;
nvidia,term-range-adj = <6>;
nvidia,xcvr-setup = <9>;
nvidia,xcvr-lsfslew = <0>;
nvidia,xcvr-lsrslew = <3>;
nvidia,hssquelch-level = <2>;
nvidia,hsdiscon-level = <5>;
nvidia,xcvr-hsslew = <12>;
+ nvidia,has-utmi-pad-registers;
status = "disabled";
};

usb@0,7d004000 {
compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
reg = <0x0 0x7d004000 0x0 0x4000>;
interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USB2>;
resets = <&tegra_car 58>;
reset-names = "usb";
nvidia,phy = <&phy2>;
status = "disabled";
};

phy2: usb-phy@0,7d004000 {
compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
reg = <0x0 0x7d004000 0x0 0x4000>,
<0x0 0x7d000000 0x0 0x4000>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USB2>,
<&tegra_car TEGRA124_CLK_PLL_U>,
<&tegra_car TEGRA124_CLK_USBD>;
clock-names = "reg", "pll_u", "utmi-pads";
- resets = <&tegra_car 22>, <&tegra_car 22>;
+ resets = <&tegra_car 58>, <&tegra_car 22>;
reset-names = "usb", "utmi-pads";
nvidia,hssync-start-delay = <0>;
nvidia,idle-wait-delay = <17>;
nvidia,elastic-limit = <16>;
nvidia,term-range-adj = <6>;
nvidia,xcvr-setup = <9>;
nvidia,xcvr-lsfslew = <0>;
nvidia,xcvr-lsrslew = <3>;
nvidia,hssquelch-level = <2>;
nvidia,hsdiscon-level = <5>;
nvidia,xcvr-hsslew = <12>;
- nvidia,has-utmi-pad-registers;
status = "disabled";
};

usb@0,7d008000 {
compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
reg = <0x0 0x7d008000 0x0 0x4000>;
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USB3>;
resets = <&tegra_car 59>;
reset-names = "usb";
nvidia,phy = <&phy3>;
status = "disabled";
};

phy3: usb-phy@0,7d008000 {
compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
reg = <0x0 0x7d008000 0x0 0x4000>,
<0x0 0x7d000000 0x0 0x4000>;
phy_type = "utmi";
clocks = <&tegra_car TEGRA124_CLK_USB3>,
<&tegra_car TEGRA124_CLK_PLL_U>,
<&tegra_car TEGRA124_CLK_USBD>;
clock-names = "reg", "pll_u", "utmi-pads";
- resets = <&tegra_car 58>, <&tegra_car 22>;
+ resets = <&tegra_car 59>, <&tegra_car 22>;
reset-names = "usb", "utmi-pads";
nvidia,hssync-start-delay = <0>;
nvidia,idle-wait-delay = <17>;
nvidia,elastic-limit = <16>;
nvidia,term-range-adj = <6>;
nvidia,xcvr-setup = <9>;
nvidia,xcvr-lsfslew = <0>;
nvidia,xcvr-lsrslew = <3>;
nvidia,hssquelch-level = <2>;
nvidia,hsdiscon-level = <5>;
nvidia,xcvr-hsslew = <12>;
status = "disabled";
};

cpus {
#address-cells = <1>;
#size-cells = <0>;

cpu@0 {
device_type = "cpu";
--
2.3.4

2015-04-03 09:10:45

by Mikko Perttunen

[permalink] [raw]
Subject: Re: [PATCH v3] ARM: tegra: Correct which USB controller has the UTMI pad registers

On 04/03/2015 10:21 AM, Tomeu Vizoso wrote:
> It should be the first controller, not the second. The indexes of the
> usb resets were also wrong and have been fixed.
>
> The issue was caused by the changes in 308efde ("ARM: tegra: Add resets
> & has-utmi-pad-registers flag to all USB PHYs") being misapplied by git
> due to the patch context being insufficient.
>
> This broke USB after 6261b06 ("regulator: Defer lookup of supply to
> regulator_get"), because it changed the order in which the controllers
> were probed.
>
> The fix for this issue was suggested by Mikko Perttunen and Tuomas
> Tynkkynen.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
> Cc: Mikko Perttunen <[email protected]>
> Cc: Tuomas Tynkkynen <[email protected]>
> ---
> Hi,
>
> hope I have gotten it right this time, but please do check :)

Yeah, this seems correct to me :)

>
> Thanks,
>
> Tomeu
> ---
> arch/arm/boot/dts/tegra124.dtsi | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
> index cf01c81..13cc7ca 100644
> --- a/arch/arm/boot/dts/tegra124.dtsi
> +++ b/arch/arm/boot/dts/tegra124.dtsi
> @@ -809,114 +809,114 @@
> compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
> reg = <0x0 0x7d000000 0x0 0x4000>;
> interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USBD>;
> resets = <&tegra_car 22>;
> reset-names = "usb";
> nvidia,phy = <&phy1>;
> status = "disabled";
> };
>
> phy1: usb-phy@0,7d000000 {
> compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
> reg = <0x0 0x7d000000 0x0 0x4000>,
> <0x0 0x7d000000 0x0 0x4000>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USBD>,
> <&tegra_car TEGRA124_CLK_PLL_U>,
> <&tegra_car TEGRA124_CLK_USBD>;
> clock-names = "reg", "pll_u", "utmi-pads";
> - resets = <&tegra_car 59>, <&tegra_car 22>;
> + resets = <&tegra_car 22>, <&tegra_car 22>;
> reset-names = "usb", "utmi-pads";
> nvidia,hssync-start-delay = <0>;
> nvidia,idle-wait-delay = <17>;
> nvidia,elastic-limit = <16>;
> nvidia,term-range-adj = <6>;
> nvidia,xcvr-setup = <9>;
> nvidia,xcvr-lsfslew = <0>;
> nvidia,xcvr-lsrslew = <3>;
> nvidia,hssquelch-level = <2>;
> nvidia,hsdiscon-level = <5>;
> nvidia,xcvr-hsslew = <12>;
> + nvidia,has-utmi-pad-registers;
> status = "disabled";
> };
>
> usb@0,7d004000 {
> compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
> reg = <0x0 0x7d004000 0x0 0x4000>;
> interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USB2>;
> resets = <&tegra_car 58>;
> reset-names = "usb";
> nvidia,phy = <&phy2>;
> status = "disabled";
> };
>
> phy2: usb-phy@0,7d004000 {
> compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
> reg = <0x0 0x7d004000 0x0 0x4000>,
> <0x0 0x7d000000 0x0 0x4000>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USB2>,
> <&tegra_car TEGRA124_CLK_PLL_U>,
> <&tegra_car TEGRA124_CLK_USBD>;
> clock-names = "reg", "pll_u", "utmi-pads";
> - resets = <&tegra_car 22>, <&tegra_car 22>;
> + resets = <&tegra_car 58>, <&tegra_car 22>;
> reset-names = "usb", "utmi-pads";
> nvidia,hssync-start-delay = <0>;
> nvidia,idle-wait-delay = <17>;
> nvidia,elastic-limit = <16>;
> nvidia,term-range-adj = <6>;
> nvidia,xcvr-setup = <9>;
> nvidia,xcvr-lsfslew = <0>;
> nvidia,xcvr-lsrslew = <3>;
> nvidia,hssquelch-level = <2>;
> nvidia,hsdiscon-level = <5>;
> nvidia,xcvr-hsslew = <12>;
> - nvidia,has-utmi-pad-registers;
> status = "disabled";
> };
>
> usb@0,7d008000 {
> compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
> reg = <0x0 0x7d008000 0x0 0x4000>;
> interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USB3>;
> resets = <&tegra_car 59>;
> reset-names = "usb";
> nvidia,phy = <&phy3>;
> status = "disabled";
> };
>
> phy3: usb-phy@0,7d008000 {
> compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
> reg = <0x0 0x7d008000 0x0 0x4000>,
> <0x0 0x7d000000 0x0 0x4000>;
> phy_type = "utmi";
> clocks = <&tegra_car TEGRA124_CLK_USB3>,
> <&tegra_car TEGRA124_CLK_PLL_U>,
> <&tegra_car TEGRA124_CLK_USBD>;
> clock-names = "reg", "pll_u", "utmi-pads";
> - resets = <&tegra_car 58>, <&tegra_car 22>;
> + resets = <&tegra_car 59>, <&tegra_car 22>;
> reset-names = "usb", "utmi-pads";
> nvidia,hssync-start-delay = <0>;
> nvidia,idle-wait-delay = <17>;
> nvidia,elastic-limit = <16>;
> nvidia,term-range-adj = <6>;
> nvidia,xcvr-setup = <9>;
> nvidia,xcvr-lsfslew = <0>;
> nvidia,xcvr-lsrslew = <3>;
> nvidia,hssquelch-level = <2>;
> nvidia,hsdiscon-level = <5>;
> nvidia,xcvr-hsslew = <12>;
> status = "disabled";
> };
>
> cpus {
> #address-cells = <1>;
> #size-cells = <0>;
>
> cpu@0 {
> device_type = "cpu";
>

2015-04-28 09:11:12

by Jon Hunter

[permalink] [raw]
Subject: Re: [PATCH v3] ARM: tegra: Correct which USB controller has the UTMI pad registers


On 04/03/2015 08:21 AM, Tomeu Vizoso wrote:
> It should be the first controller, not the second. The indexes of the
> usb resets were also wrong and have been fixed.
>
> The issue was caused by the changes in 308efde ("ARM: tegra: Add resets
> & has-utmi-pad-registers flag to all USB PHYs") being misapplied by git
> due to the patch context being insufficient.
>
> This broke USB after 6261b06 ("regulator: Defer lookup of supply to
> regulator_get"), because it changed the order in which the controllers
> were probed.
>
> The fix for this issue was suggested by Mikko Perttunen and Tuomas
> Tynkkynen.
>
> Signed-off-by: Tomeu Vizoso <[email protected]>
> Cc: Mikko Perttunen <[email protected]>
> Cc: Tuomas Tynkkynen <[email protected]>
> ---
> Hi,
>
> hope I have gotten it right this time, but please do check :)

FWIW, this works for me.

Tested-by: Jon Hunter <[email protected]>

Cheers
Jon