diff mbox series

[1/2] dt-bindings: soc: qcom: YAML-ify SSBI bindings

Message ID 20220930212052.894834-1-dmitry.baryshkov@linaro.org
State Changes Requested, archived
Headers show
Series [1/2] dt-bindings: soc: qcom: YAML-ify SSBI bindings | expand

Checks

Context Check Description
robh/checkpatch warning total: 0 errors, 2 warnings, 63 lines checked
robh/patch-applied success
robh/dtbs-check warning build log
robh/dt-meta-schema success

Commit Message

Dmitry Baryshkov Sept. 30, 2022, 9:20 p.m. UTC
Convert arm/msm/ssbi.txt yo YAML, moving it to the directory with SoC
bindings (soc/qcom/).

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 .../devicetree/bindings/arm/msm/ssbi.txt      | 18 ------
 .../bindings/soc/qcom/qcom,ssbi.yaml          | 63 +++++++++++++++++++
 2 files changed, 63 insertions(+), 18 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/msm/ssbi.txt
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml

Comments

Krzysztof Kozlowski Oct. 1, 2022, 9:40 a.m. UTC | #1
On 30/09/2022 23:20, Dmitry Baryshkov wrote:
> On MDM9615 the PMICs are connected using SSBI devices, which do not have
> any addressing scheme. Drop the unused unit ids from PMIC device nodes.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>  arch/arm/boot/dts/qcom-mdm9615.dtsi | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/qcom-mdm9615.dtsi b/arch/arm/boot/dts/qcom-mdm9615.dtsi
> index b47c86412de2..bb17a57a2b90 100644
> --- a/arch/arm/boot/dts/qcom-mdm9615.dtsi
> +++ b/arch/arm/boot/dts/qcom-mdm9615.dtsi
> @@ -283,7 +283,7 @@ qcom,ssbi@500000 {
>  			reg = <0x500000 0x1000>;
>  			qcom,controller-type = "pmic-arbiter";
>  
> -			pmicintc: pmic@0 {
> +			pmicintc: pmic {

I think several other platforms, also with PMIC over SSBI, have the same
problem. If that's correct, can you fix them in the same patchset?

Best regards,
Krzysztof
Krzysztof Kozlowski Oct. 1, 2022, 9:43 a.m. UTC | #2
On 30/09/2022 23:20, Dmitry Baryshkov wrote:
> Convert arm/msm/ssbi.txt yo YAML, moving it to the directory with SoC
> bindings (soc/qcom/).

I think this should go to "bus" instead. Actually we could put there as
well GSBI and few others...

> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>  .../devicetree/bindings/arm/msm/ssbi.txt      | 18 ------
>  .../bindings/soc/qcom/qcom,ssbi.yaml          | 63 +++++++++++++++++++
>  2 files changed, 63 insertions(+), 18 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/msm/ssbi.txt
>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml
> 
> diff --git a/Documentation/devicetree/bindings/arm/msm/ssbi.txt b/Documentation/devicetree/bindings/arm/msm/ssbi.txt
> deleted file mode 100644
> index 54fd5ced3401..000000000000
> --- a/Documentation/devicetree/bindings/arm/msm/ssbi.txt
> +++ /dev/null
> @@ -1,18 +0,0 @@
> -* Qualcomm SSBI
> -
> -Some Qualcomm MSM devices contain a point-to-point serial bus used to
> -communicate with a limited range of devices (mostly power management
> -chips).
> -
> -These require the following properties:
> -
> -- compatible: "qcom,ssbi"
> -
> -- qcom,controller-type
> -  indicates the SSBI bus variant the controller should use to talk
> -  with the slave device.  This should be one of "ssbi", "ssbi2", or
> -  "pmic-arbiter".  The type chosen is determined by the attached
> -  slave.
> -
> -The slave device should be the single child node of the ssbi device
> -with a compatible field.
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml
> new file mode 100644
> index 000000000000..6154f7222899
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml
> @@ -0,0 +1,63 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/soc/qcom/qcom,ssbi.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"

Drop quotes from both above.

> +
> +title: Qualcomm Single-wire Serial Bus Interface (SSBI)
> +
> +description:
> +  Some Qualcomm MSM devices contain a point-to-point serial bus used to
> +  communicate with a limited range of devices (mostly power management
> +  chips).
> +
> +maintainers:
> +  - Andy Gross <agross@kernel.org>
> +  - Bjorn Andersson <andersson@kernel.org>
> +
> +properties:
> +  compatible:
> +    const: qcom,ssbi
> +
> +  reg:
> +    maxItems: 1
> +
> +  qcom,controller-type:
> +    description:
> +      Indicates the SSBI bus variant the controller should use to talk
> +      with the slave device. The type chosen is determined by the attached
> +      slave.
> +    enum:
> +      - ssbi
> +      - ssbi2
> +      - pmic-arbiter
> +
> +  pmic:
> +    type: object

This is quite unspecific... Can we make it a ref to some PMICs schemas?

> +
> +required:
> +  - compatible
> +  - reg
> +  - qcom,controller-type
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    ssbi@c00000 {
> +        compatible = "qcom,ssbi";
> +        reg = <0x00c00000 0x1000>;
> +        qcom,controller-type = "pmic-arbiter";
> +
> +        pmic {
> +            compatible = "qcom,pm8821";
> +            interrupt-parent = <&msmgpio>;
> +            interrupts = <76 IRQ_TYPE_LEVEL_LOW>;
> +            #interrupt-cells = <2>;
> +            interrupt-controller;
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +        };
> +    };
> +...

Best regards,
Krzysztof
Dmitry Baryshkov Oct. 2, 2022, 1:20 p.m. UTC | #3
On Sat, 1 Oct 2022 at 12:40, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 30/09/2022 23:20, Dmitry Baryshkov wrote:
> > On MDM9615 the PMICs are connected using SSBI devices, which do not have
> > any addressing scheme. Drop the unused unit ids from PMIC device nodes.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> >  arch/arm/boot/dts/qcom-mdm9615.dtsi | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/boot/dts/qcom-mdm9615.dtsi b/arch/arm/boot/dts/qcom-mdm9615.dtsi
> > index b47c86412de2..bb17a57a2b90 100644
> > --- a/arch/arm/boot/dts/qcom-mdm9615.dtsi
> > +++ b/arch/arm/boot/dts/qcom-mdm9615.dtsi
> > @@ -283,7 +283,7 @@ qcom,ssbi@500000 {
> >                       reg = <0x500000 0x1000>;
> >                       qcom,controller-type = "pmic-arbiter";
> >
> > -                     pmicintc: pmic@0 {
> > +                     pmicintc: pmic {
>
> I think several other platforms, also with PMIC over SSBI, have the same
> problem. If that's correct, can you fix them in the same patchset?

It was a part of my previous patchset, but yeah. Let's get it done in this one.
Dmitry Baryshkov Oct. 2, 2022, 1:46 p.m. UTC | #4
On Sat, 1 Oct 2022 at 12:43, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 30/09/2022 23:20, Dmitry Baryshkov wrote:
> > Convert arm/msm/ssbi.txt yo YAML, moving it to the directory with SoC
> > bindings (soc/qcom/).
>
> I think this should go to "bus" instead. Actually we could put there as
> well GSBI and few others...

ack

>
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> >  .../devicetree/bindings/arm/msm/ssbi.txt      | 18 ------
> >  .../bindings/soc/qcom/qcom,ssbi.yaml          | 63 +++++++++++++++++++
> >  2 files changed, 63 insertions(+), 18 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/arm/msm/ssbi.txt
> >  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/arm/msm/ssbi.txt b/Documentation/devicetree/bindings/arm/msm/ssbi.txt
> > deleted file mode 100644
> > index 54fd5ced3401..000000000000
> > --- a/Documentation/devicetree/bindings/arm/msm/ssbi.txt
> > +++ /dev/null
> > @@ -1,18 +0,0 @@
> > -* Qualcomm SSBI
> > -
> > -Some Qualcomm MSM devices contain a point-to-point serial bus used to
> > -communicate with a limited range of devices (mostly power management
> > -chips).
> > -
> > -These require the following properties:
> > -
> > -- compatible: "qcom,ssbi"
> > -
> > -- qcom,controller-type
> > -  indicates the SSBI bus variant the controller should use to talk
> > -  with the slave device.  This should be one of "ssbi", "ssbi2", or
> > -  "pmic-arbiter".  The type chosen is determined by the attached
> > -  slave.
> > -
> > -The slave device should be the single child node of the ssbi device
> > -with a compatible field.
> > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml
> > new file mode 100644
> > index 000000000000..6154f7222899
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml
> > @@ -0,0 +1,63 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: "http://devicetree.org/schemas/soc/qcom/qcom,ssbi.yaml#"
> > +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
>
> Drop quotes from both above.

ack

>
> > +
> > +title: Qualcomm Single-wire Serial Bus Interface (SSBI)
> > +
> > +description:
> > +  Some Qualcomm MSM devices contain a point-to-point serial bus used to
> > +  communicate with a limited range of devices (mostly power management
> > +  chips).
> > +
> > +maintainers:
> > +  - Andy Gross <agross@kernel.org>
> > +  - Bjorn Andersson <andersson@kernel.org>
> > +
> > +properties:
> > +  compatible:
> > +    const: qcom,ssbi
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  qcom,controller-type:
> > +    description:
> > +      Indicates the SSBI bus variant the controller should use to talk
> > +      with the slave device. The type chosen is determined by the attached
> > +      slave.
> > +    enum:
> > +      - ssbi
> > +      - ssbi2
> > +      - pmic-arbiter
> > +
> > +  pmic:
> > +    type: object
>
> This is quite unspecific... Can we make it a ref to some PMICs schemas?

Yes, I thought about listing all compats, but probably a $ref:
../mfd/qcom-pm8xxx.yaml# makes more sense.

>
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - qcom,controller-type
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/irq.h>
> > +    ssbi@c00000 {
> > +        compatible = "qcom,ssbi";
> > +        reg = <0x00c00000 0x1000>;
> > +        qcom,controller-type = "pmic-arbiter";
> > +
> > +        pmic {
> > +            compatible = "qcom,pm8821";
> > +            interrupt-parent = <&msmgpio>;
> > +            interrupts = <76 IRQ_TYPE_LEVEL_LOW>;
> > +            #interrupt-cells = <2>;
> > +            interrupt-controller;
> > +            #address-cells = <1>;
> > +            #size-cells = <0>;
> > +        };
> > +    };
> > +...
>
> Best regards,
> Krzysztof
>
Krzysztof Kozlowski Oct. 3, 2022, 6:46 a.m. UTC | #5
On 02/10/2022 15:46, Dmitry Baryshkov wrote:
>>> +    enum:
>>> +      - ssbi
>>> +      - ssbi2
>>> +      - pmic-arbiter
>>> +
>>> +  pmic:
>>> +    type: object
>>
>> This is quite unspecific... Can we make it a ref to some PMICs schemas?
> 
> Yes, I thought about listing all compats, but probably a $ref:
> ../mfd/qcom-pm8xxx.yaml# makes more sense.

Then full path - /schemas/mfd/qcom-....

> 
>>

Best regards,
Krzysztof
Krzysztof Kozlowski Oct. 3, 2022, 6:46 a.m. UTC | #6
On 02/10/2022 15:20, Dmitry Baryshkov wrote:
>>> diff --git a/arch/arm/boot/dts/qcom-mdm9615.dtsi b/arch/arm/boot/dts/qcom-mdm9615.dtsi
>>> index b47c86412de2..bb17a57a2b90 100644
>>> --- a/arch/arm/boot/dts/qcom-mdm9615.dtsi
>>> +++ b/arch/arm/boot/dts/qcom-mdm9615.dtsi
>>> @@ -283,7 +283,7 @@ qcom,ssbi@500000 {
>>>                       reg = <0x500000 0x1000>;
>>>                       qcom,controller-type = "pmic-arbiter";
>>>
>>> -                     pmicintc: pmic@0 {
>>> +                     pmicintc: pmic {
>>
>> I think several other platforms, also with PMIC over SSBI, have the same
>> problem. If that's correct, can you fix them in the same patchset?
> 
> It was a part of my previous patchset, but yeah. Let's get it done in this one.
> 

Ah, if you fix them in separate patchset, it's also ok.



Best regards,
Krzysztof
Rob Herring (Arm) Oct. 3, 2022, 1:24 p.m. UTC | #7
On Sat, 01 Oct 2022 00:20:51 +0300, Dmitry Baryshkov wrote:
> Convert arm/msm/ssbi.txt yo YAML, moving it to the directory with SoC
> bindings (soc/qcom/).
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>  .../devicetree/bindings/arm/msm/ssbi.txt      | 18 ------
>  .../bindings/soc/qcom/qcom,ssbi.yaml          | 63 +++++++++++++++++++
>  2 files changed, 63 insertions(+), 18 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/msm/ssbi.txt
>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/


qcom,ssbi@500000: 'pmic@0' does not match any of the regexes: 'pinctrl-[0-9]+'
	arch/arm/boot/dts/qcom-apq8060-dragonboard.dtb
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dtb
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dtb
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dtb
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-lagan-yuga.dtb
	arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dtb
	arch/arm/boot/dts/qcom-msm8660-surf.dtb
	arch/arm/boot/dts/qcom-msm8960-cdp.dtb

ssbi@c00000: 'pmic@1' does not match any of the regexes: 'pinctrl-[0-9]+'
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dtb
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dtb
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dtb
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-lagan-yuga.dtb
Rob Herring (Arm) Oct. 3, 2022, 5:17 p.m. UTC | #8
On Mon, Oct 03, 2022 at 08:46:09AM +0200, Krzysztof Kozlowski wrote:
> On 02/10/2022 15:46, Dmitry Baryshkov wrote:
> >>> +    enum:
> >>> +      - ssbi
> >>> +      - ssbi2
> >>> +      - pmic-arbiter
> >>> +
> >>> +  pmic:
> >>> +    type: object
> >>
> >> This is quite unspecific... Can we make it a ref to some PMICs schemas?
> > 
> > Yes, I thought about listing all compats, but probably a $ref:
> > ../mfd/qcom-pm8xxx.yaml# makes more sense.
> 
> Then full path - /schemas/mfd/qcom-....

While effectively it's always a QCom PMIC, this is a bus binding, so 
shouldn't it just be 'additionalProperties: { type: object }' without 
any reference to the type of device?

Rob
Rob Herring (Arm) Oct. 3, 2022, 5:18 p.m. UTC | #9
On Sat, Oct 01, 2022 at 12:20:51AM +0300, Dmitry Baryshkov wrote:
> Convert arm/msm/ssbi.txt yo YAML, moving it to the directory with SoC
> bindings (soc/qcom/).

YAML-ify? Can we say 'convert to DT schema' instead like everywhere 
else. YAML is a file format. It doesn't describe the vocabulary.

Rob
Krzysztof Kozlowski Oct. 3, 2022, 5:32 p.m. UTC | #10
On 03/10/2022 19:17, Rob Herring wrote:
> On Mon, Oct 03, 2022 at 08:46:09AM +0200, Krzysztof Kozlowski wrote:
>> On 02/10/2022 15:46, Dmitry Baryshkov wrote:
>>>>> +    enum:
>>>>> +      - ssbi
>>>>> +      - ssbi2
>>>>> +      - pmic-arbiter
>>>>> +
>>>>> +  pmic:
>>>>> +    type: object
>>>>
>>>> This is quite unspecific... Can we make it a ref to some PMICs schemas?
>>>
>>> Yes, I thought about listing all compats, but probably a $ref:
>>> ../mfd/qcom-pm8xxx.yaml# makes more sense.
>>
>> Then full path - /schemas/mfd/qcom-....
> 
> While effectively it's always a QCom PMIC, this is a bus binding, so 
> shouldn't it just be 'additionalProperties: { type: object }' without 
> any reference to the type of device?

If we treat it as generic bus, then maybe also "pmic" is not
appropriate. What if other devices are connected?

Bindings were saying it is Qualcomm SoC specific bus, so I don't think
we can have here anything else than Qualcomm PMIC.

Best regards,
Krzysztof
Dmitry Baryshkov Oct. 3, 2022, 9:28 p.m. UTC | #11
On Mon, 3 Oct 2022 at 20:32, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 03/10/2022 19:17, Rob Herring wrote:
> > On Mon, Oct 03, 2022 at 08:46:09AM +0200, Krzysztof Kozlowski wrote:
> >> On 02/10/2022 15:46, Dmitry Baryshkov wrote:
> >>>>> +    enum:
> >>>>> +      - ssbi
> >>>>> +      - ssbi2
> >>>>> +      - pmic-arbiter
> >>>>> +
> >>>>> +  pmic:
> >>>>> +    type: object
> >>>>
> >>>> This is quite unspecific... Can we make it a ref to some PMICs schemas?
> >>>
> >>> Yes, I thought about listing all compats, but probably a $ref:
> >>> ../mfd/qcom-pm8xxx.yaml# makes more sense.
> >>
> >> Then full path - /schemas/mfd/qcom-....
> >
> > While effectively it's always a QCom PMIC, this is a bus binding, so
> > shouldn't it just be 'additionalProperties: { type: object }' without
> > any reference to the type of device?
>
> If we treat it as generic bus, then maybe also "pmic" is not
> appropriate. What if other devices are connected?

It's a 1:1 bus, so SSBI host can be connected to a single IC. This bus
is not used in new designs (it got replaced with SPMI). All existing
devices use SSBI to connect to PMIC. So I think it is safe to assume
that the only ssbi child is a PMIC.

>
> Bindings were saying it is Qualcomm SoC specific bus, so I don't think
> we can have here anything else than Qualcomm PMIC.
>
> Best regards,
> Krzysztof
>
Bjorn Andersson Nov. 8, 2022, 1:27 a.m. UTC | #12
On Sat, 1 Oct 2022 00:20:51 +0300, Dmitry Baryshkov wrote:
> Convert arm/msm/ssbi.txt yo YAML, moving it to the directory with SoC
> bindings (soc/qcom/).
> 
> 

Applied, thanks!

[2/2] ARM: dts: qcom: mdm9615: drop unit ids from PMIC nodes
      commit: 0d6e44e257ec53b41c2969130e0eb97b0a41b1d6

Best regards,
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/arm/msm/ssbi.txt b/Documentation/devicetree/bindings/arm/msm/ssbi.txt
deleted file mode 100644
index 54fd5ced3401..000000000000
--- a/Documentation/devicetree/bindings/arm/msm/ssbi.txt
+++ /dev/null
@@ -1,18 +0,0 @@ 
-* Qualcomm SSBI
-
-Some Qualcomm MSM devices contain a point-to-point serial bus used to
-communicate with a limited range of devices (mostly power management
-chips).
-
-These require the following properties:
-
-- compatible: "qcom,ssbi"
-
-- qcom,controller-type
-  indicates the SSBI bus variant the controller should use to talk
-  with the slave device.  This should be one of "ssbi", "ssbi2", or
-  "pmic-arbiter".  The type chosen is determined by the attached
-  slave.
-
-The slave device should be the single child node of the ssbi device
-with a compatible field.
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml
new file mode 100644
index 000000000000..6154f7222899
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,ssbi.yaml
@@ -0,0 +1,63 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/soc/qcom/qcom,ssbi.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Qualcomm Single-wire Serial Bus Interface (SSBI)
+
+description:
+  Some Qualcomm MSM devices contain a point-to-point serial bus used to
+  communicate with a limited range of devices (mostly power management
+  chips).
+
+maintainers:
+  - Andy Gross <agross@kernel.org>
+  - Bjorn Andersson <andersson@kernel.org>
+
+properties:
+  compatible:
+    const: qcom,ssbi
+
+  reg:
+    maxItems: 1
+
+  qcom,controller-type:
+    description:
+      Indicates the SSBI bus variant the controller should use to talk
+      with the slave device. The type chosen is determined by the attached
+      slave.
+    enum:
+      - ssbi
+      - ssbi2
+      - pmic-arbiter
+
+  pmic:
+    type: object
+
+required:
+  - compatible
+  - reg
+  - qcom,controller-type
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    ssbi@c00000 {
+        compatible = "qcom,ssbi";
+        reg = <0x00c00000 0x1000>;
+        qcom,controller-type = "pmic-arbiter";
+
+        pmic {
+            compatible = "qcom,pm8821";
+            interrupt-parent = <&msmgpio>;
+            interrupts = <76 IRQ_TYPE_LEVEL_LOW>;
+            #interrupt-cells = <2>;
+            interrupt-controller;
+            #address-cells = <1>;
+            #size-cells = <0>;
+        };
+    };
+...