Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1432882 > unrolled thread

[RFC PATCH 3/3] arm64: tegra210: Add XUSB powergates

Started byJon Hunter <jonathanh@nvidia.com>
First post2016-06-28 13:30 +0200
Last post2016-06-29 18:20 +0200
Articles 5 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [RFC PATCH 3/3] arm64: tegra210: Add XUSB powergates Jon Hunter <jonathanh@nvidia.com> - 2016-06-28 13:30 +0200
    Re: [RFC PATCH 3/3] arm64: tegra210: Add XUSB powergates Jon Hunter <jonathanh@nvidia.com> - 2016-06-29 17:40 +0200
      Re: [RFC PATCH 3/3] arm64: tegra210: Add XUSB powergates Jon Hunter <jonathanh@nvidia.com> - 2016-06-29 18:10 +0200
        Re: [RFC PATCH 3/3] arm64: tegra210: Add XUSB powergates Thierry Reding <thierry.reding@gmail.com> - 2016-06-30 12:30 +0200
      Re: [RFC PATCH 3/3] arm64: tegra210: Add XUSB powergates Thierry Reding <thierry.reding@gmail.com> - 2016-06-29 18:20 +0200

#1432882 — [RFC PATCH 3/3] arm64: tegra210: Add XUSB powergates

FromJon Hunter <jonathanh@nvidia.com>
Date2016-06-28 13:30 +0200
Subject[RFC PATCH 3/3] arm64: tegra210: Add XUSB powergates
Message-ID<rOZnk-6lK-35@gated-at.bofh.it>
The Tegra210 XUSB subsystem has 3 power partitions which are XUSBA
(super-speed logic), XUSBB (USB device logic) and XUSBC (USB host
logic). Populate the device-tree nodes for these XUSB partitions.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
---
 arch/arm64/boot/dts/nvidia/tegra210.dtsi | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/arch/arm64/boot/dts/nvidia/tegra210.dtsi b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
index 65b829b762bb..efb0fd98b789 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
@@ -670,6 +670,30 @@
 					 <&tegra_car TEGRA210_CLK_MIPI_CAL>;
 				#power-domain-cells = <0>;
 			};
+
+			pd_xusbss: xusba {
+				clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
+				clock-names = "xusb_ss";
+				resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
+				reset-names = "xusb_ss";
+				#power-domain-cells = <0>;
+			};
+
+			pd_xusbdev: xusbb {
+				clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>;
+				clock-names = "xusb_dev";
+				resets = <&tegra_car 95>;
+				reset-names = "xusb_dev";
+				#power-domain-cells = <0>;
+			};
+
+			pd_xusbhost: xusbc {
+				clocks = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
+				clock-names = "xusb_host";
+				resets = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
+				reset-names = "xusb_host";
+				#power-domain-cells = <0>;
+			};
 		};
 	};
 
-- 
2.1.4

[toc] | [next] | [standalone]


#1433859

FromJon Hunter <jonathanh@nvidia.com>
Date2016-06-29 17:40 +0200
Message-ID<rPpKO-5V4-9@gated-at.bofh.it>
In reply to#1432882
On 28/06/16 12:20, Jon Hunter wrote:
> The Tegra210 XUSB subsystem has 3 power partitions which are XUSBA
> (super-speed logic), XUSBB (USB device logic) and XUSBC (USB host
> logic). Populate the device-tree nodes for these XUSB partitions.
> 
> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> ---
>  arch/arm64/boot/dts/nvidia/tegra210.dtsi | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/nvidia/tegra210.dtsi b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
> index 65b829b762bb..efb0fd98b789 100644
> --- a/arch/arm64/boot/dts/nvidia/tegra210.dtsi
> +++ b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
> @@ -670,6 +670,30 @@
>  					 <&tegra_car TEGRA210_CLK_MIPI_CAL>;
>  				#power-domain-cells = <0>;
>  			};
> +
> +			pd_xusbss: xusba {
> +				clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
> +				clock-names = "xusb_ss";
> +				resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
> +				reset-names = "xusb_ss";
> +				#power-domain-cells = <0>;
> +			};
> +
> +			pd_xusbdev: xusbb {
> +				clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>;
> +				clock-names = "xusb_dev";
> +				resets = <&tegra_car 95>;
> +				reset-names = "xusb_dev";
> +				#power-domain-cells = <0>;
> +			};
> +
> +			pd_xusbhost: xusbc {
> +				clocks = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
> +				clock-names = "xusb_host";
> +				resets = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
> +				reset-names = "xusb_host";
> +				#power-domain-cells = <0>;
> +			};
>  		};
>  	};

The 'clock-names' and 'reset-names' nodes are not used/required and so I
will remove these.

Jon

-- 
nvpublic

[toc] | [prev] | [next] | [standalone]


#1433885

FromJon Hunter <jonathanh@nvidia.com>
Date2016-06-29 18:10 +0200
Message-ID<rPqdQ-6kR-19@gated-at.bofh.it>
In reply to#1433859
On 29/06/16 16:56, Thierry Reding wrote:
> * PGP Signed by an unknown key
> 
> On Wed, Jun 29, 2016 at 04:30:08PM +0100, Jon Hunter wrote:
>>
>> On 28/06/16 12:20, Jon Hunter wrote:
>>> The Tegra210 XUSB subsystem has 3 power partitions which are XUSBA
>>> (super-speed logic), XUSBB (USB device logic) and XUSBC (USB host
>>> logic). Populate the device-tree nodes for these XUSB partitions.
>>>
>>> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
>>> ---
>>>  arch/arm64/boot/dts/nvidia/tegra210.dtsi | 24 ++++++++++++++++++++++++
>>>  1 file changed, 24 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/nvidia/tegra210.dtsi b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
>>> index 65b829b762bb..efb0fd98b789 100644
>>> --- a/arch/arm64/boot/dts/nvidia/tegra210.dtsi
>>> +++ b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
>>> @@ -670,6 +670,30 @@
>>>  					 <&tegra_car TEGRA210_CLK_MIPI_CAL>;
>>>  				#power-domain-cells = <0>;
>>>  			};
>>> +
>>> +			pd_xusbss: xusba {
>>> +				clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
>>> +				clock-names = "xusb_ss";
>>> +				resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
>>> +				reset-names = "xusb_ss";
>>> +				#power-domain-cells = <0>;
>>> +			};
>>> +
>>> +			pd_xusbdev: xusbb {
>>> +				clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>;
>>> +				clock-names = "xusb_dev";
>>> +				resets = <&tegra_car 95>;
>>> +				reset-names = "xusb_dev";
>>> +				#power-domain-cells = <0>;
>>> +			};
>>> +
>>> +			pd_xusbhost: xusbc {
>>> +				clocks = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
>>> +				clock-names = "xusb_host";
>>> +				resets = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
>>> +				reset-names = "xusb_host";
>>> +				#power-domain-cells = <0>;
>>> +			};
>>>  		};
>>>  	};
>>
>> The 'clock-names' and 'reset-names' nodes are not used/required and so I
>> will remove these.
> 
> Please keep them and make use of the names. We used to not do this in
> the past, and then things became tricky to describe in the DT bindings
> in order to keep backwards-compatibility.

Unfortunately, in order to use them, we would need to keep a list of all
the clock and reset names in the PMC driver which would be huge.

> Though perhaps you're not using them because they are found by index? In
> that case I think it might still be useful to have them for consistency.

Right, we just iterate over the number of the clocks and resets found
when we initialise the powergate.

> If you keep them, you might want to turn the _ into -.

I can keep them, however, in other patches I have sent out, for example
the SOR powergate (part of the DPAUX series) and Audio powergate, they
do not have them. So I thought I would remove them here to be
consistent. However, we could add them for these other powergates as well.

Cheers
Jon

-- 
nvpublic

[toc] | [prev] | [next] | [standalone]


#1434430

FromThierry Reding <thierry.reding@gmail.com>
Date2016-06-30 12:30 +0200
Message-ID<rPHom-8ot-53@gated-at.bofh.it>
In reply to#1433885

[Multipart message — attachments visible in raw view] — view raw

On Wed, Jun 29, 2016 at 05:07:15PM +0100, Jon Hunter wrote:
> 
> On 29/06/16 16:56, Thierry Reding wrote:
> > * PGP Signed by an unknown key
> > 
> > On Wed, Jun 29, 2016 at 04:30:08PM +0100, Jon Hunter wrote:
> >>
> >> On 28/06/16 12:20, Jon Hunter wrote:
> >>> The Tegra210 XUSB subsystem has 3 power partitions which are XUSBA
> >>> (super-speed logic), XUSBB (USB device logic) and XUSBC (USB host
> >>> logic). Populate the device-tree nodes for these XUSB partitions.
> >>>
> >>> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> >>> ---
> >>>  arch/arm64/boot/dts/nvidia/tegra210.dtsi | 24 ++++++++++++++++++++++++
> >>>  1 file changed, 24 insertions(+)
> >>>
> >>> diff --git a/arch/arm64/boot/dts/nvidia/tegra210.dtsi b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
> >>> index 65b829b762bb..efb0fd98b789 100644
> >>> --- a/arch/arm64/boot/dts/nvidia/tegra210.dtsi
> >>> +++ b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
> >>> @@ -670,6 +670,30 @@
> >>>  					 <&tegra_car TEGRA210_CLK_MIPI_CAL>;
> >>>  				#power-domain-cells = <0>;
> >>>  			};
> >>> +
> >>> +			pd_xusbss: xusba {
> >>> +				clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
> >>> +				clock-names = "xusb_ss";
> >>> +				resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
> >>> +				reset-names = "xusb_ss";
> >>> +				#power-domain-cells = <0>;
> >>> +			};
> >>> +
> >>> +			pd_xusbdev: xusbb {
> >>> +				clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>;
> >>> +				clock-names = "xusb_dev";
> >>> +				resets = <&tegra_car 95>;
> >>> +				reset-names = "xusb_dev";
> >>> +				#power-domain-cells = <0>;
> >>> +			};
> >>> +
> >>> +			pd_xusbhost: xusbc {
> >>> +				clocks = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
> >>> +				clock-names = "xusb_host";
> >>> +				resets = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
> >>> +				reset-names = "xusb_host";
> >>> +				#power-domain-cells = <0>;
> >>> +			};
> >>>  		};
> >>>  	};
> >>
> >> The 'clock-names' and 'reset-names' nodes are not used/required and so I
> >> will remove these.
> > 
> > Please keep them and make use of the names. We used to not do this in
> > the past, and then things became tricky to describe in the DT bindings
> > in order to keep backwards-compatibility.
> 
> Unfortunately, in order to use them, we would need to keep a list of all
> the clock and reset names in the PMC driver which would be huge.

That's a Linux driver implementation detail, so it shouldn't influence
the binding.

> > Though perhaps you're not using them because they are found by index? In
> > that case I think it might still be useful to have them for consistency.
> 
> Right, we just iterate over the number of the clocks and resets found
> when we initialise the powergate.

Again, that's a driver implementation detail.

> > If you keep them, you might want to turn the _ into -.
> 
> I can keep them, however, in other patches I have sent out, for example
> the SOR powergate (part of the DPAUX series) and Audio powergate, they
> do not have them. So I thought I would remove them here to be
> consistent. However, we could add them for these other powergates as well.

Yes, I'd prefer them to be listed in all nodes for documentation, if for
nothing else.

Thierry

[toc] | [prev] | [next] | [standalone]


#1433890

FromThierry Reding <thierry.reding@gmail.com>
Date2016-06-29 18:20 +0200
Message-ID<rPqdQ-6kR-21@gated-at.bofh.it>
In reply to#1433859

[Multipart message — attachments visible in raw view] — view raw

On Wed, Jun 29, 2016 at 04:30:08PM +0100, Jon Hunter wrote:
> 
> On 28/06/16 12:20, Jon Hunter wrote:
> > The Tegra210 XUSB subsystem has 3 power partitions which are XUSBA
> > (super-speed logic), XUSBB (USB device logic) and XUSBC (USB host
> > logic). Populate the device-tree nodes for these XUSB partitions.
> > 
> > Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> > ---
> >  arch/arm64/boot/dts/nvidia/tegra210.dtsi | 24 ++++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/nvidia/tegra210.dtsi b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
> > index 65b829b762bb..efb0fd98b789 100644
> > --- a/arch/arm64/boot/dts/nvidia/tegra210.dtsi
> > +++ b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
> > @@ -670,6 +670,30 @@
> >  					 <&tegra_car TEGRA210_CLK_MIPI_CAL>;
> >  				#power-domain-cells = <0>;
> >  			};
> > +
> > +			pd_xusbss: xusba {
> > +				clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
> > +				clock-names = "xusb_ss";
> > +				resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
> > +				reset-names = "xusb_ss";
> > +				#power-domain-cells = <0>;
> > +			};
> > +
> > +			pd_xusbdev: xusbb {
> > +				clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>;
> > +				clock-names = "xusb_dev";
> > +				resets = <&tegra_car 95>;
> > +				reset-names = "xusb_dev";
> > +				#power-domain-cells = <0>;
> > +			};
> > +
> > +			pd_xusbhost: xusbc {
> > +				clocks = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
> > +				clock-names = "xusb_host";
> > +				resets = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
> > +				reset-names = "xusb_host";
> > +				#power-domain-cells = <0>;
> > +			};
> >  		};
> >  	};
> 
> The 'clock-names' and 'reset-names' nodes are not used/required and so I
> will remove these.

Please keep them and make use of the names. We used to not do this in
the past, and then things became tricky to describe in the DT bindings
in order to keep backwards-compatibility.

Though perhaps you're not using them because they are found by index? In
that case I think it might still be useful to have them for consistency.

If you keep them, you might want to turn the _ into -.

Thierry

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web