diff mbox series

[v2,3/4] arm64: dts: imx8mp: Add MEDIAMIX power domains

Message ID 20220322190324.12589-4-laurent.pinchart@ideasonboard.com (mailing list archive)
State New, archived
Headers show
Series imx8mp: Add media block control | expand

Commit Message

Laurent Pinchart March 22, 2022, 7:03 p.m. UTC
Add the power domains related to the MEDIAMIX to the GPC.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 arch/arm64/boot/dts/freescale/imx8mp.dtsi | 26 +++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Marek Vasut March 22, 2022, 9:31 p.m. UTC | #1
On 3/22/22 20:03, Laurent Pinchart wrote:
> Add the power domains related to the MEDIAMIX to the GPC.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>   arch/arm64/boot/dts/freescale/imx8mp.dtsi | 26 +++++++++++++++++++++++
>   1 file changed, 26 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> index b40a5646f205..b440f22e03e5 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> @@ -488,6 +488,11 @@ pgc {
>   					#address-cells = <1>;
>   					#size-cells = <0>;
>   
> +					pgc_mipi_phy1: power-domain@0 {
> +						#power-domain-cells = <0>;
> +						reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY1>;

Shouldn't there be this here ?

power-domains = <&pgc_mediamix>;

> +					};
> +
>   					pgc_pcie_phy: power-domain@1 {
>   						#power-domain-cells = <0>;
>   						reg = <IMX8MP_POWER_DOMAIN_PCIE_PHY>;
> @@ -530,6 +535,21 @@ pgc_gpu3d: power-domain@9 {
>   						power-domains = <&pgc_gpumix>;
>   					};
>   
> +					pgc_mediamix: power-domain@10 {
> +						#power-domain-cells = <0>;
> +						reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX>;
> +						clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> +							 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> +						assigned-clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> +								  <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> +						assigned-clock-rates = <500000000>, <200000000>;
> +					};
> +
> +					pgc_mipi_phy2: power-domain@16 {
> +						#power-domain-cells = <0>;
> +						reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>;

Here too ?
Laurent Pinchart March 22, 2022, 10:02 p.m. UTC | #2
Hi Marek,

On Tue, Mar 22, 2022 at 10:31:59PM +0100, Marek Vasut wrote:
> On 3/22/22 20:03, Laurent Pinchart wrote:
> > Add the power domains related to the MEDIAMIX to the GPC.
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> >   arch/arm64/boot/dts/freescale/imx8mp.dtsi | 26 +++++++++++++++++++++++
> >   1 file changed, 26 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > index b40a5646f205..b440f22e03e5 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > @@ -488,6 +488,11 @@ pgc {
> >   					#address-cells = <1>;
> >   					#size-cells = <0>;
> >   
> > +					pgc_mipi_phy1: power-domain@0 {
> > +						#power-domain-cells = <0>;
> > +						reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY1>;
> 
> Shouldn't there be this here ?
> 
> power-domains = <&pgc_mediamix>;

I recall Lucas telling me it wasn't needed, and was instead handled
internally in the gpcv2 driver, due to sequencing requirements, but I
don't recall the details.

> > +					};
> > +
> >   					pgc_pcie_phy: power-domain@1 {
> >   						#power-domain-cells = <0>;
> >   						reg = <IMX8MP_POWER_DOMAIN_PCIE_PHY>;
> > @@ -530,6 +535,21 @@ pgc_gpu3d: power-domain@9 {
> >   						power-domains = <&pgc_gpumix>;
> >   					};
> >   
> > +					pgc_mediamix: power-domain@10 {
> > +						#power-domain-cells = <0>;
> > +						reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX>;
> > +						clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> > +							 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> > +						assigned-clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> > +								  <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> > +						assigned-clock-rates = <500000000>, <200000000>;
> > +					};
> > +
> > +					pgc_mipi_phy2: power-domain@16 {
> > +						#power-domain-cells = <0>;
> > +						reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>;
> 
> Here too ?
Lucas Stach March 23, 2022, 9:14 a.m. UTC | #3
Am Mittwoch, dem 23.03.2022 um 00:02 +0200 schrieb Laurent Pinchart:
> Hi Marek,
> 
> On Tue, Mar 22, 2022 at 10:31:59PM +0100, Marek Vasut wrote:
> > On 3/22/22 20:03, Laurent Pinchart wrote:
> > > Add the power domains related to the MEDIAMIX to the GPC.
> > > 
> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > ---
> > >   arch/arm64/boot/dts/freescale/imx8mp.dtsi | 26 +++++++++++++++++++++++
> > >   1 file changed, 26 insertions(+)
> > > 
> > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > > index b40a5646f205..b440f22e03e5 100644
> > > --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > > +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > > @@ -488,6 +488,11 @@ pgc {
> > >   					#address-cells = <1>;
> > >   					#size-cells = <0>;
> > >   
> > > +					pgc_mipi_phy1: power-domain@0 {
> > > +						#power-domain-cells = <0>;
> > > +						reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY1>;
> > 
> > Shouldn't there be this here ?
> > 
> > power-domains = <&pgc_mediamix>;
> 
> I recall Lucas telling me it wasn't needed, and was instead handled
> internally in the gpcv2 driver, due to sequencing requirements, but I
> don't recall the details.

It's not handled by the gpcv2 driver, but the blk-ctrl driver. The blk-
ctrl driver handles the sequencing requirements when powering up/down
the "bus" domain, in that case the mediamix domain. In fact there must
not be any direct connection between the domains in the GPC DT
description as that would cause the requirements for clock and reset
propagation to be violated.

Regards,
Lucas

> 
> > > +					};
> > > +
> > >   					pgc_pcie_phy: power-domain@1 {
> > >   						#power-domain-cells = <0>;
> > >   						reg = <IMX8MP_POWER_DOMAIN_PCIE_PHY>;
> > > @@ -530,6 +535,21 @@ pgc_gpu3d: power-domain@9 {
> > >   						power-domains = <&pgc_gpumix>;
> > >   					};
> > >   
> > > +					pgc_mediamix: power-domain@10 {
> > > +						#power-domain-cells = <0>;
> > > +						reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX>;
> > > +						clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> > > +							 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> > > +						assigned-clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
> > > +								  <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
> > > +						assigned-clock-rates = <500000000>, <200000000>;
> > > +					};
> > > +
> > > +					pgc_mipi_phy2: power-domain@16 {
> > > +						#power-domain-cells = <0>;
> > > +						reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>;
> > 
> > Here too ?
>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index b40a5646f205..b440f22e03e5 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -488,6 +488,11 @@  pgc {
 					#address-cells = <1>;
 					#size-cells = <0>;
 
+					pgc_mipi_phy1: power-domain@0 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY1>;
+					};
+
 					pgc_pcie_phy: power-domain@1 {
 						#power-domain-cells = <0>;
 						reg = <IMX8MP_POWER_DOMAIN_PCIE_PHY>;
@@ -530,6 +535,21 @@  pgc_gpu3d: power-domain@9 {
 						power-domains = <&pgc_gpumix>;
 					};
 
+					pgc_mediamix: power-domain@10 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX>;
+						clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+							 <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
+						assigned-clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+								  <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
+						assigned-clock-rates = <500000000>, <200000000>;
+					};
+
+					pgc_mipi_phy2: power-domain@16 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>;
+					};
+
 					pgc_hsiomix: power-domains@17 {
 						#power-domain-cells = <0>;
 						reg = <IMX8MP_POWER_DOMAIN_HSIOMIX>;
@@ -539,6 +559,12 @@  pgc_hsiomix: power-domains@17 {
 						assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
 						assigned-clock-rates = <500000000>;
 					};
+
+					pgc_ispdwp: power-domain@18 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX_ISPDWP>;
+						clocks = <&clk IMX8MP_CLK_MEDIA_ISP_DIV>;
+					};
 				};
 			};
 		};