[PATCH v3] ARM: tegra: Correct which USB controller has the UTMI pad registers
Mikko Perttunen
mikko.perttunen at kapsi.fi
Fri Apr 3 02:10:29 PDT 2015
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 <tomeu.vizoso at collabora.com>
> Cc: Mikko Perttunen <mikko.perttunen at kapsi.fi>
> Cc: Tuomas Tynkkynen <ttynkkynen at nvidia.com>
> ---
> 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 at 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 at 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 at 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 at 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 at 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 at 0 {
> device_type = "cpu";
>
More information about the linux-arm-kernel
mailing list