linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc
@ 2021-03-17  5:29 Maulik Shah
  2021-03-17  5:29 ` [PATCH 2/3] arm64: dts: qcom: sm8250: " Maulik Shah
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Maulik Shah @ 2021-03-17  5:29 UTC (permalink / raw)
  To: swboyd, bjorn.andersson, maz
  Cc: linux-arm-msm, linux-kernel, robh+dt, dianders, rnayak, lsrao,
	Maulik Shah, devicetree

PDC interrupt controller driver do not use second reg. Remove it.
This is in preparation to convert PDC bindings to yaml where
dtbs_check reports it as additional reg.

Cc: devicetree@vger.kernel.org
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
---
 arch/arm64/boot/dts/qcom/sm8350.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qcom/sm8350.dtsi
index ea28514..b48bc1b 100644
--- a/arch/arm64/boot/dts/qcom/sm8350.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8350.dtsi
@@ -612,7 +612,7 @@
 
 		pdc: interrupt-controller@b220000 {
 			compatible = "qcom,sm8350-pdc", "qcom,pdc";
-			reg = <0 0x0b220000 0 0x30000>, <0 0x17c000f0 0 0x60>;
+			reg = <0 0x0b220000 0 0x30000>;
 			qcom,pdc-ranges = <0 480 40>, <40 140 14>, <54 263 1>,   <55 306 4>,
 					  <59 312 3>, <62 374 2>,  <64 434 2>,   <66 438 3>,
 					  <69 86 1>,  <70 520 54>, <124 609 31>, <155 63 1>,
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/3] arm64: dts: qcom: sm8250: Remove second reg from pdc
  2021-03-17  5:29 [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc Maulik Shah
@ 2021-03-17  5:29 ` Maulik Shah
  2021-03-17  5:29 ` [PATCH 3/3] dt-bindings: interrupt-controller: Convert bindings to yaml for qcom,pdc Maulik Shah
  2021-03-17  9:17 ` [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc Marc Zyngier
  2 siblings, 0 replies; 8+ messages in thread
From: Maulik Shah @ 2021-03-17  5:29 UTC (permalink / raw)
  To: swboyd, bjorn.andersson, maz
  Cc: linux-arm-msm, linux-kernel, robh+dt, dianders, rnayak, lsrao,
	Maulik Shah, devicetree

PDC interrupt controller driver do not use second reg. Remove it.
This is in preparation to convert PDC bindings to yaml where
dtbs_check reports it as additional reg.

Cc: devicetree@vger.kernel.org
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
---
 arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index bbb6e28..8090b8e 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -2617,7 +2617,7 @@
 
 		pdc: interrupt-controller@b220000 {
 			compatible = "qcom,sm8250-pdc", "qcom,pdc";
-			reg = <0 0x0b220000 0 0x30000>, <0 0x17c000f0 0 0x60>;
+			reg = <0 0x0b220000 0 0x30000>;
 			qcom,pdc-ranges = <0 480 94>, <94 609 31>,
 					  <125 63 1>, <126 716 12>;
 			#interrupt-cells = <2>;
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/3] dt-bindings: interrupt-controller: Convert bindings to yaml for qcom,pdc
  2021-03-17  5:29 [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc Maulik Shah
  2021-03-17  5:29 ` [PATCH 2/3] arm64: dts: qcom: sm8250: " Maulik Shah
@ 2021-03-17  5:29 ` Maulik Shah
  2021-03-17  9:17 ` [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc Marc Zyngier
  2 siblings, 0 replies; 8+ messages in thread
From: Maulik Shah @ 2021-03-17  5:29 UTC (permalink / raw)
  To: swboyd, bjorn.andersson, maz
  Cc: linux-arm-msm, linux-kernel, robh+dt, dianders, rnayak, lsrao,
	Maulik Shah, devicetree

This change converts PDC interrupt controller bindings to yaml.

Cc: devicetree@vger.kernel.org
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
---
This change depends on [1] which adds sc7280 compatible for PDC

[1] https://patchwork.kernel.org/project/linux-arm-msm/list/?series=440315
---
 .../bindings/interrupt-controller/qcom,pdc.txt     | 76 ------------------
 .../bindings/interrupt-controller/qcom,pdc.yaml    | 93 ++++++++++++++++++++++
 2 files changed, 93 insertions(+), 76 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.txt
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml

diff --git a/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.txt b/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.txt
deleted file mode 100644
index 98d89e5..0000000
--- a/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-PDC interrupt controller
-
-Qualcomm Technologies Inc. SoCs based on the RPM Hardened architecture have a
-Power Domain Controller (PDC) that is on always-on domain. In addition to
-providing power control for the power domains, the hardware also has an
-interrupt controller that can be used to help detect edge low interrupts as
-well detect interrupts when the GIC is non-operational.
-
-GIC is parent interrupt controller at the highest level. Platform interrupt
-controller PDC is next in hierarchy, followed by others. Drivers requiring
-wakeup capabilities of their device interrupts routed through the PDC, must
-specify PDC as their interrupt controller and request the PDC port associated
-with the GIC interrupt. See example below.
-
-Properties:
-
-- compatible:
-	Usage: required
-	Value type: <string>
-	Definition: Should contain "qcom,<soc>-pdc" and "qcom,pdc"
-		    - "qcom,sc7180-pdc": For SC7180
-		    - "qcom,sc7280-pdc": For SC7280
-		    - "qcom,sdm845-pdc": For SDM845
-		    - "qcom,sdm8250-pdc": For SM8250
-		    - "qcom,sdm8350-pdc": For SM8350
-
-- reg:
-	Usage: required
-	Value type: <prop-encoded-array>
-	Definition: Specifies the base physical address for PDC hardware.
-
-- interrupt-cells:
-	Usage: required
-	Value type: <u32>
-	Definition: Specifies the number of cells needed to encode an interrupt
-		    source.
-		    Must be 2.
-		    The first element of the tuple is the PDC pin for the
-		    interrupt.
-		    The second element is the trigger type.
-
-- interrupt-controller:
-	Usage: required
-	Value type: <bool>
-	Definition: Identifies the node as an interrupt controller.
-
-- qcom,pdc-ranges:
-	Usage: required
-	Value type: <u32 array>
-	Definition: Specifies the PDC pin offset and the number of PDC ports.
-		    The tuples indicates the valid mapping of valid PDC ports
-		    and their hwirq mapping.
-		    The first element of the tuple is the starting PDC port.
-		    The second element is the GIC hwirq number for the PDC port.
-		    The third element is the number of interrupts in sequence.
-
-Example:
-
-	pdc: interrupt-controller@b220000 {
-		compatible = "qcom,sdm845-pdc";
-		reg = <0xb220000 0x30000>;
-		qcom,pdc-ranges = <0 512 94>, <94 641 15>, <115 662 7>;
-		#interrupt-cells = <2>;
-		interrupt-parent = <&intc>;
-		interrupt-controller;
-	};
-
-DT binding of a device that wants to use the GIC SPI 514 as a wakeup
-interrupt, must do -
-
-	wake-device {
-		interrupts-extended = <&pdc 2 IRQ_TYPE_LEVEL_HIGH>;
-	};
-
-In this case interrupt 514 would be mapped to port 2 on the PDC as defined by
-the qcom,pdc-ranges property.
diff --git a/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml b/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml
new file mode 100644
index 0000000..26ae77c
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/qcom,pdc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. PDC interrupt controller
+
+maintainers:
+  - Maulik Shah <mkshah@codeaurora.org>
+
+description: |
+  Qualcomm Technologies, Inc. SoCs based on the RPM Hardened architecture have a
+  Power Domain Controller (PDC) that is on always-on domain. In addition to
+  providing power control for the power domains, the hardware also has an
+  interrupt controller that can be used to help detect edge low interrupts as
+  well detect interrupts when the GIC is non-operational.
+
+  GIC is parent interrupt controller at the highest level. Platform interrupt
+  controller PDC is next in hierarchy, followed by others. Drivers requiring
+  wakeup capabilities of their device interrupts routed through the PDC, must
+  specify PDC as their interrupt controller and request the PDC port associated
+  with the GIC interrupt. See example below.
+
+properties:
+ compatible:
+   items:
+     - enum:
+        # Should contain "qcom,<soc>-pdc" and "qcom,pdc"
+         - qcom,sc7180-pdc #For SC7180
+         - qcom,sc7280-pdc #For SC7280
+         - qcom,sdm845-pdc #For SDM845
+         - qcom,sm8250-pdc #For SM8250
+         - qcom,sm8350-pdc #For SM8350
+     - const: qcom,pdc
+
+ reg:
+    minItems: 1
+    items:
+      - description: PDC register base address
+
+ '#interrupt-cells':
+    # Specifies the number of cells needed to encode an interrupt.
+    # The first element of the tuple is the PDC pin for the interrupt.
+    # The second element is the trigger type.
+    const: 2
+
+ interrupt-controller: true
+
+ qcom,pdc-ranges:
+   description: |
+      Specifies the PDC pin offset and the number of PDC ports.
+      The tuples indicates the valid mapping of valid PDC ports
+      and their hwirq mapping.
+   $ref: /schemas/types.yaml#/definitions/uint32-matrix
+   items:
+      items:
+        - description: |
+           "a" The first element of the tuple is the starting PDC port.
+        - description: |
+           "b" The second element is the GIC SPI number for the PDC port.
+        - description: |
+           "c" The third element is the number of interrupts in sequence.
+
+required:
+    - compatible
+    - reg
+    - '#interrupt-cells'
+    - interrupt-controller
+    - qcom,pdc-ranges
+
+additionalProperties: false
+
+examples:
+  - |
+    pdc: interrupt-controller@b220000 {
+            compatible = "qcom,sdm845-pdc", "qcom,pdc";
+            reg = <0xb220000 0x30000>;
+            qcom,pdc-ranges = <0 512 94>, <94 641 15>, <115 662 7>;
+            #interrupt-cells = <2>;
+            interrupt-parent = <&intc>;
+            interrupt-controller;
+    };
+
+   # DT binding of a device that wants to use the GIC SPI 514 as a wakeup
+   # interrupt, must do -
+   # wake-device {
+   #     interrupts-extended = <&pdc 2 IRQ_TYPE_LEVEL_HIGH>;
+   # };
+
+   # In this case interrupt 514 would be mapped to port 2 on the PDC as defined
+   # by the qcom,pdc-ranges property.
+...
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc
  2021-03-17  5:29 [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc Maulik Shah
  2021-03-17  5:29 ` [PATCH 2/3] arm64: dts: qcom: sm8250: " Maulik Shah
  2021-03-17  5:29 ` [PATCH 3/3] dt-bindings: interrupt-controller: Convert bindings to yaml for qcom,pdc Maulik Shah
@ 2021-03-17  9:17 ` Marc Zyngier
  2021-03-17  9:48   ` Maulik Shah
  2 siblings, 1 reply; 8+ messages in thread
From: Marc Zyngier @ 2021-03-17  9:17 UTC (permalink / raw)
  To: Maulik Shah
  Cc: swboyd, bjorn.andersson, linux-arm-msm, linux-kernel, robh+dt,
	dianders, rnayak, lsrao, devicetree

On Wed, 17 Mar 2021 05:29:54 +0000,
Maulik Shah <mkshah@codeaurora.org> wrote:
> 
> PDC interrupt controller driver do not use second reg. Remove it.

This is a DT file, not a driver. What the driver does is irrelevant.

The real question is: what does this range do?

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc
  2021-03-17  9:17 ` [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc Marc Zyngier
@ 2021-03-17  9:48   ` Maulik Shah
  2021-03-17 14:02     ` Marc Zyngier
  0 siblings, 1 reply; 8+ messages in thread
From: Maulik Shah @ 2021-03-17  9:48 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: swboyd, bjorn.andersson, linux-arm-msm, linux-kernel, robh+dt,
	dianders, rnayak, lsrao, devicetree

Hi Marc,

On 3/17/2021 2:47 PM, Marc Zyngier wrote:
> On Wed, 17 Mar 2021 05:29:54 +0000,
> Maulik Shah <mkshah@codeaurora.org> wrote:
>> PDC interrupt controller driver do not use second reg. Remove it.
> This is a DT file, not a driver. What the driver does is irrelevant.
>
> The real question is: what does this range do?
>
> Thanks,
>
> 	M.

This is to set interrupt type in SPI config for which there was a change 
[1] but has not gone in for upstream PDC driver.

The second reg is not used in upstream PDC driver, probably when posting 
downstream DT changes for sm8350/sm8250 it was carried in device node as is.

As its not mentioned in bindigs as well, dtbs_check reports it as 
additional reg when converted to yaml.

[1] 
https://patchwork.kernel.org/project/linux-arm-msm/patch/1568411962-1022-8-git-send-email-ilina@codeaurora.org/

Thanks,
Maulik
>
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc
  2021-03-17  9:48   ` Maulik Shah
@ 2021-03-17 14:02     ` Marc Zyngier
  2021-03-17 18:08       ` Bjorn Andersson
  0 siblings, 1 reply; 8+ messages in thread
From: Marc Zyngier @ 2021-03-17 14:02 UTC (permalink / raw)
  To: Maulik Shah
  Cc: swboyd, bjorn.andersson, linux-arm-msm, linux-kernel, robh+dt,
	dianders, rnayak, lsrao, devicetree

On Wed, 17 Mar 2021 09:48:09 +0000,
Maulik Shah <mkshah@codeaurora.org> wrote:
> 
> Hi Marc,
> 
> On 3/17/2021 2:47 PM, Marc Zyngier wrote:
> > On Wed, 17 Mar 2021 05:29:54 +0000,
> > Maulik Shah <mkshah@codeaurora.org> wrote:
> >> PDC interrupt controller driver do not use second reg. Remove it.
> > This is a DT file, not a driver. What the driver does is irrelevant.
> > 
> > The real question is: what does this range do?
> > 
> > Thanks,
> > 
> > 	M.
> 
> This is to set interrupt type in SPI config for which there was a
> change [1] but has not gone in for upstream PDC driver.
> 
> The second reg is not used in upstream PDC driver, probably when
> posting downstream DT changes for sm8350/sm8250 it was carried in
> device node as is.
> 
> As its not mentioned in bindigs as well, dtbs_check reports it as
> additional reg when converted to yaml.

Then I'd rather you provide accurate documentation in the binding
rather than changing the DT files. Other operating systems may use it,
and it isn't unlikely that Linux could use the feature at some point.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc
  2021-03-17 14:02     ` Marc Zyngier
@ 2021-03-17 18:08       ` Bjorn Andersson
  2021-03-22 10:26         ` Maulik Shah
  0 siblings, 1 reply; 8+ messages in thread
From: Bjorn Andersson @ 2021-03-17 18:08 UTC (permalink / raw)
  To: Marc Zyngier, Maulik Shah
  Cc: swboyd, linux-arm-msm, linux-kernel, robh+dt, dianders, rnayak,
	lsrao, devicetree

On Wed 17 Mar 09:02 CDT 2021, Marc Zyngier wrote:

> On Wed, 17 Mar 2021 09:48:09 +0000,
> Maulik Shah <mkshah@codeaurora.org> wrote:
> > 
> > Hi Marc,
> > 
> > On 3/17/2021 2:47 PM, Marc Zyngier wrote:
> > > On Wed, 17 Mar 2021 05:29:54 +0000,
> > > Maulik Shah <mkshah@codeaurora.org> wrote:
> > >> PDC interrupt controller driver do not use second reg. Remove it.
> > > This is a DT file, not a driver. What the driver does is irrelevant.
> > > 
> > > The real question is: what does this range do?
> > > 
> > > Thanks,
> > > 
> > > 	M.
> > 
> > This is to set interrupt type in SPI config for which there was a
> > change [1] but has not gone in for upstream PDC driver.
> > 
> > The second reg is not used in upstream PDC driver, probably when
> > posting downstream DT changes for sm8350/sm8250 it was carried in
> > device node as is.
> > 
> > As its not mentioned in bindigs as well, dtbs_check reports it as
> > additional reg when converted to yaml.
> 
> Then I'd rather you provide accurate documentation in the binding
> rather than changing the DT files. Other operating systems may use it,
> and it isn't unlikely that Linux could use the feature at some point.
> 

I agree. Maulik, please update the DT binding to document this region as
well.


It also seems relevant to pursue getting [1] into the upstream Linux
kernel. Is this something that you use downstream Maulik?

Regards,
Bjorn

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc
  2021-03-17 18:08       ` Bjorn Andersson
@ 2021-03-22 10:26         ` Maulik Shah
  0 siblings, 0 replies; 8+ messages in thread
From: Maulik Shah @ 2021-03-22 10:26 UTC (permalink / raw)
  To: Bjorn Andersson, Marc Zyngier
  Cc: swboyd, linux-arm-msm, linux-kernel, robh+dt, dianders, rnayak,
	lsrao, devicetree

Hi,

On 3/17/2021 11:38 PM, Bjorn Andersson wrote:
> On Wed 17 Mar 09:02 CDT 2021, Marc Zyngier wrote:
>
>> On Wed, 17 Mar 2021 09:48:09 +0000,
>> Maulik Shah <mkshah@codeaurora.org> wrote:
>>> Hi Marc,
>>>
>>> On 3/17/2021 2:47 PM, Marc Zyngier wrote:
>>>> On Wed, 17 Mar 2021 05:29:54 +0000,
>>>> Maulik Shah <mkshah@codeaurora.org> wrote:
>>>>> PDC interrupt controller driver do not use second reg. Remove it.
>>>> This is a DT file, not a driver. What the driver does is irrelevant.
>>>>
>>>> The real question is: what does this range do?
>>>>
>>>> Thanks,
>>>>
>>>> 	M.
>>> This is to set interrupt type in SPI config for which there was a
>>> change [1] but has not gone in for upstream PDC driver.
>>>
>>> The second reg is not used in upstream PDC driver, probably when
>>> posting downstream DT changes for sm8350/sm8250 it was carried in
>>> device node as is.
>>>
>>> As its not mentioned in bindigs as well, dtbs_check reports it as
>>> additional reg when converted to yaml.
>> Then I'd rather you provide accurate documentation in the binding
>> rather than changing the DT files. Other operating systems may use it,
>> and it isn't unlikely that Linux could use the feature at some point.
>>
> I agree. Maulik, please update the DT binding to document this region as
> well.
sure. updated in v2.
>
>
> It also seems relevant to pursue getting [1] into the upstream Linux
> kernel. Is this something that you use downstream Maulik?

Yes its used in downstream. We can pursue to get [1] in.

Thanks,
Maulik

>
> Regards,
> Bjorn

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-03-22 10:27 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-17  5:29 [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc Maulik Shah
2021-03-17  5:29 ` [PATCH 2/3] arm64: dts: qcom: sm8250: " Maulik Shah
2021-03-17  5:29 ` [PATCH 3/3] dt-bindings: interrupt-controller: Convert bindings to yaml for qcom,pdc Maulik Shah
2021-03-17  9:17 ` [PATCH 1/3] arm64: dts: qcom: sm8350: Remove second reg from pdc Marc Zyngier
2021-03-17  9:48   ` Maulik Shah
2021-03-17 14:02     ` Marc Zyngier
2021-03-17 18:08       ` Bjorn Andersson
2021-03-22 10:26         ` Maulik Shah

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).