Message ID | 20240104-gcc-docs-update-v1-1-127e4816b798@quicinc.com |
---|---|
State | New |
Headers | show |
Series | arm64: dts: qcom: ipq6018: add #power-domain-cells for gcc node | expand |
On Thu, 4 Jan 2024 at 10:06, Fenglin Wu via B4 Relay <devnull+quic_fenglinw.quicinc.com@kernel.org> wrote: > > From: Fenglin Wu <quic_fenglinw@quicinc.com> > > Property '#power-domain-cells' is required as per defined in qcom,gcc.yaml > so add it for ipq6018 gcc device node to eliminate following warning in > dtbs_check: > > arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: gcc@1800000: > '#power-domain-cells' is a required property > from schema $id: http://devicetree.org/schemas/clock/qcom,gcc-ipq6018.yaml# But ipq6018 doesn't implement GDSC support. So for the sake of fixing the warning you are adding a bogus property. > > Signed-off-by: Fenglin Wu <quic_fenglinw@quicinc.com> > --- > arch/arm64/boot/dts/qcom/ipq6018.dtsi | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi > index 39cd6b76b4c1..54914912d610 100644 > --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi > +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi > @@ -386,6 +386,7 @@ gcc: gcc@1800000 { > reg = <0x0 0x01800000 0x0 0x80000>; > clocks = <&xo>, <&sleep_clk>; > clock-names = "xo", "sleep_clk"; > + #power-domain-cells = <1>; > #clock-cells = <1>; > #reset-cells = <1>; > }; > > --- > base-commit: 17cb8a20bde66a520a2ca7aad1063e1ce7382240 > change-id: 20240103-gcc-docs-update-fa604579e468 > > Best regards, > -- > Fenglin Wu <quic_fenglinw@quicinc.com> > >
On 04/01/2024 10:53, Dmitry Baryshkov wrote: > On Thu, 4 Jan 2024 at 10:06, Fenglin Wu via B4 Relay > <devnull+quic_fenglinw.quicinc.com@kernel.org> wrote: >> >> From: Fenglin Wu <quic_fenglinw@quicinc.com> >> >> Property '#power-domain-cells' is required as per defined in qcom,gcc.yaml >> so add it for ipq6018 gcc device node to eliminate following warning in >> dtbs_check: >> >> arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: gcc@1800000: >> '#power-domain-cells' is a required property >> from schema $id: http://devicetree.org/schemas/clock/qcom,gcc-ipq6018.yaml# > > But ipq6018 doesn't implement GDSC support. So for the sake of fixing > the warning you are adding a bogus property. Reminds me "fix" of removal of address/size-cells from DSI. The point of fixing all the warnings is not only to make the warning go away, but rather to fix the actual cause of the warning. Best regards, Krzysztof
On 1/4/2024 5:53 PM, Dmitry Baryshkov wrote: > On Thu, 4 Jan 2024 at 10:06, Fenglin Wu via B4 Relay > <devnull+quic_fenglinw.quicinc.com@kernel.org> wrote: >> >> From: Fenglin Wu <quic_fenglinw@quicinc.com> >> >> Property '#power-domain-cells' is required as per defined in qcom,gcc.yaml >> so add it for ipq6018 gcc device node to eliminate following warning in >> dtbs_check: >> >> arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: gcc@1800000: >> '#power-domain-cells' is a required property >> from schema $id: http://devicetree.org/schemas/clock/qcom,gcc-ipq6018.yaml# > > But ipq6018 doesn't implement GDSC support. So for the sake of fixing > the warning you are adding a bogus property. > I agree. However, there are also some gcc drivers not implementing GDSC support but the bindings are adding '#power-domain-cells' in the DT example, such as: qcom,gcc-apq8064.yaml, qcom,gcc-ipq4019.yaml, qcom,gcc-ipq6018.yaml, qcom,gcc-ipq8064.yaml, qcom,gcc-msm8660.yaml. Actually I thought that maybe we should do a clean up by removing '#power-domain-cells' out of the qcom,gcc.yaml binding and only adding it into individual qcom,gcc-xxx.yaml for the driver which has implemented GDSC support. I checked this with Taniya offline, but she prefers only fixing it in ipq6018.dtsi as it doesn't hurt anything by adding the property, and she expects the GDSC support should be existing in most of qcom,gcc drivers especially the newer Qcom chipsets. >> >> Signed-off-by: Fenglin Wu <quic_fenglinw@quicinc.com> >> --- >> arch/arm64/boot/dts/qcom/ipq6018.dtsi | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi >> index 39cd6b76b4c1..54914912d610 100644 >> --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi >> +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi >> @@ -386,6 +386,7 @@ gcc: gcc@1800000 { >> reg = <0x0 0x01800000 0x0 0x80000>; >> clocks = <&xo>, <&sleep_clk>; >> clock-names = "xo", "sleep_clk"; >> + #power-domain-cells = <1>; >> #clock-cells = <1>; >> #reset-cells = <1>; >> }; >> >> --- >> base-commit: 17cb8a20bde66a520a2ca7aad1063e1ce7382240 >> change-id: 20240103-gcc-docs-update-fa604579e468 >> >> Best regards, >> -- >> Fenglin Wu <quic_fenglinw@quicinc.com> >> >> > >
On 1/4/2024 6:16 PM, Konrad Dybcio wrote: > On 4.01.2024 11:13, Fenglin Wu wrote: >> >> >> On 1/4/2024 5:53 PM, Dmitry Baryshkov wrote: >>> On Thu, 4 Jan 2024 at 10:06, Fenglin Wu via B4 Relay >>> <devnull+quic_fenglinw.quicinc.com@kernel.org> wrote: >>>> >>>> From: Fenglin Wu <quic_fenglinw@quicinc.com> >>>> >>>> Property '#power-domain-cells' is required as per defined in qcom,gcc.yaml >>>> so add it for ipq6018 gcc device node to eliminate following warning in >>>> dtbs_check: >>>> >>>> arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: gcc@1800000: >>>> '#power-domain-cells' is a required property >>>> from schema $id: http://devicetree.org/schemas/clock/qcom,gcc-ipq6018.yaml# >>> >>> But ipq6018 doesn't implement GDSC support. So for the sake of fixing >>> the warning you are adding a bogus property. >>> >> I agree. However, there are also some gcc drivers not implementing GDSC support but the bindings are adding '#power-domain-cells' in the DT example, such as: qcom,gcc-apq8064.yaml, qcom,gcc-ipq4019.yaml, qcom,gcc-ipq6018.yaml, qcom,gcc-ipq8064.yaml, qcom,gcc-msm8660.yaml. >> >> Actually I thought that maybe we should do a clean up by removing '#power-domain-cells' out of the qcom,gcc.yaml binding and only adding it into individual qcom,gcc-xxx.yaml for the driver which has implemented GDSC support. I checked this with Taniya offline, but she prefers only fixing it in ipq6018.dtsi as it doesn't hurt anything by adding the property, and she expects the GDSC support should be existing in most of qcom,gcc drivers especially the newer Qcom chipsets. > > Before we start changing anything, we should assess whether these > platforms actually have GDSCs within this clock controller block, > even if they are (currently) not described in the clk driver. > I would assume '#power-domain-cells' is only required for drivers which register GDSC as power-domain device, for drivers that only configure GDSC during probe or for platforms have GDSC but not register them as power-domain device, making '#power-domain-cells' as a required property doesn't help anything but just generating more dtbs check warnings. > Konrad
On 04. 01. 2024. 11:16, Konrad Dybcio wrote: > On 4.01.2024 11:13, Fenglin Wu wrote: >> >> On 1/4/2024 5:53 PM, Dmitry Baryshkov wrote: >>> On Thu, 4 Jan 2024 at 10:06, Fenglin Wu via B4 Relay >>> <devnull+quic_fenglinw.quicinc.com@kernel.org> wrote: >>>> From: Fenglin Wu <quic_fenglinw@quicinc.com> >>>> >>>> Property '#power-domain-cells' is required as per defined in qcom,gcc.yaml >>>> so add it for ipq6018 gcc device node to eliminate following warning in >>>> dtbs_check: >>>> >>>> arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: gcc@1800000: >>>> '#power-domain-cells' is a required property >>>> from schema $id: http://devicetree.org/schemas/clock/qcom,gcc-ipq6018.yaml# >>> But ipq6018 doesn't implement GDSC support. So for the sake of fixing >>> the warning you are adding a bogus property. >>> >> I agree. However, there are also some gcc drivers not implementing GDSC support but the bindings are adding '#power-domain-cells' in the DT example, such as: qcom,gcc-apq8064.yaml, qcom,gcc-ipq4019.yaml, qcom,gcc-ipq6018.yaml, qcom,gcc-ipq8064.yaml, qcom,gcc-msm8660.yaml. >> >> Actually I thought that maybe we should do a clean up by removing '#power-domain-cells' out of the qcom,gcc.yaml binding and only adding it into individual qcom,gcc-xxx.yaml for the driver which has implemented GDSC support. I checked this with Taniya offline, but she prefers only fixing it in ipq6018.dtsi as it doesn't hurt anything by adding the property, and she expects the GDSC support should be existing in most of qcom,gcc drivers especially the newer Qcom chipsets. > Before we start changing anything, we should assess whether these > platforms actually have GDSCs within this clock controller block, > even if they are (currently) not described in the clk driver. Hi, IPQ6018 has GDSC-s, at least for the USB-s. I tried configuring them a while ago, but the USB2.0 GDSC seems to either have a HW bug or it uses some special configuration as its status bits never show that its ON [1]. [1] https://patchwork.kernel.org/project/linux-arm-msm/patch/20231025104457.628109-2-robimarko@gmail.com/ Regards, Robert > > Konrad
On Thu, 4 Jan 2024 at 12:16, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > On 4.01.2024 11:13, Fenglin Wu wrote: > > > > > > On 1/4/2024 5:53 PM, Dmitry Baryshkov wrote: > >> On Thu, 4 Jan 2024 at 10:06, Fenglin Wu via B4 Relay > >> <devnull+quic_fenglinw.quicinc.com@kernel.org> wrote: > >>> > >>> From: Fenglin Wu <quic_fenglinw@quicinc.com> > >>> > >>> Property '#power-domain-cells' is required as per defined in qcom,gcc.yaml > >>> so add it for ipq6018 gcc device node to eliminate following warning in > >>> dtbs_check: > >>> > >>> arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: gcc@1800000: > >>> '#power-domain-cells' is a required property > >>> from schema $id: http://devicetree.org/schemas/clock/qcom,gcc-ipq6018.yaml# > >> > >> But ipq6018 doesn't implement GDSC support. So for the sake of fixing > >> the warning you are adding a bogus property. > >> > > I agree. However, there are also some gcc drivers not implementing GDSC support but the bindings are adding '#power-domain-cells' in the DT example, such as: qcom,gcc-apq8064.yaml, qcom,gcc-ipq4019.yaml, qcom,gcc-ipq6018.yaml, qcom,gcc-ipq8064.yaml, qcom,gcc-msm8660.yaml. > > > > Actually I thought that maybe we should do a clean up by removing '#power-domain-cells' out of the qcom,gcc.yaml binding and only adding it into individual qcom,gcc-xxx.yaml for the driver which has implemented GDSC support. I checked this with Taniya offline, but she prefers only fixing it in ipq6018.dtsi as it doesn't hurt anything by adding the property, and she expects the GDSC support should be existing in most of qcom,gcc drivers especially the newer Qcom chipsets. > > Before we start changing anything, we should assess whether these > platforms actually have GDSCs within this clock controller block, > even if they are (currently) not described in the clk driver. APQ8064 / MSM8960 / MSM8x60 (and thus I assume IPQ8064) have an older power rail control mechanism called footswitch / GFS_CTL. We do not implement it (for now), but it might be worth implementing it as the question has been raised.
On 1/4/2024 6:32 PM, Robert Marko wrote: > > On 04. 01. 2024. 11:16, Konrad Dybcio wrote: >> On 4.01.2024 11:13, Fenglin Wu wrote: >>> >>> On 1/4/2024 5:53 PM, Dmitry Baryshkov wrote: >>>> On Thu, 4 Jan 2024 at 10:06, Fenglin Wu via B4 Relay >>>> <devnull+quic_fenglinw.quicinc.com@kernel.org> wrote: >>>>> From: Fenglin Wu <quic_fenglinw@quicinc.com> >>>>> >>>>> Property '#power-domain-cells' is required as per defined in >>>>> qcom,gcc.yaml >>>>> so add it for ipq6018 gcc device node to eliminate following >>>>> warning in >>>>> dtbs_check: >>>>> >>>>> arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb: gcc@1800000: >>>>> '#power-domain-cells' is a required property >>>>> from schema $id: >>>>> http://devicetree.org/schemas/clock/qcom,gcc-ipq6018.yaml# >>>> But ipq6018 doesn't implement GDSC support. So for the sake of fixing >>>> the warning you are adding a bogus property. >>>> >>> I agree. However, there are also some gcc drivers not implementing >>> GDSC support but the bindings are adding '#power-domain-cells' in the >>> DT example, such as: qcom,gcc-apq8064.yaml, qcom,gcc-ipq4019.yaml, >>> qcom,gcc-ipq6018.yaml, qcom,gcc-ipq8064.yaml, qcom,gcc-msm8660.yaml. >>> >>> Actually I thought that maybe we should do a clean up by removing >>> '#power-domain-cells' out of the qcom,gcc.yaml binding and only >>> adding it into individual qcom,gcc-xxx.yaml for the driver which has >>> implemented GDSC support. I checked this with Taniya offline, but she >>> prefers only fixing it in ipq6018.dtsi as it doesn't hurt anything by >>> adding the property, and she expects the GDSC support should be >>> existing in most of qcom,gcc drivers especially the newer Qcom chipsets. >> Before we start changing anything, we should assess whether these >> platforms actually have GDSCs within this clock controller block, >> even if they are (currently) not described in the clk driver. > Hi, > IPQ6018 has GDSC-s, at least for the USB-s. > I tried configuring them a while ago, but the USB2.0 GDSC seems to > either have a HW bug or > it uses some special configuration as its status bits never show that > its ON [1]. > > [1] > https://patchwork.kernel.org/project/linux-arm-msm/patch/20231025104457.628109-2-robimarko@gmail.com/ > Thanks for the link! I checked the spec internal, and I did see GDSC device for USB0/USB1 controller is present in GCC clock controller. So considering there is a patch ongoing to add GDSC device for ipq6018 gcc driver, can the DT commit which adds '#power-domain-cells' be accepted? > Regards, > Robert > >> >> Konrad
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi index 39cd6b76b4c1..54914912d610 100644 --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi @@ -386,6 +386,7 @@ gcc: gcc@1800000 { reg = <0x0 0x01800000 0x0 0x80000>; clocks = <&xo>, <&sleep_clk>; clock-names = "xo", "sleep_clk"; + #power-domain-cells = <1>; #clock-cells = <1>; #reset-cells = <1>; };