[PATCH v1 1/5] dt-bindings: spmi: Add MediaTek MT8196 SPMI 2 Arbiter/Controllers

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Mon Jun 30 05:13:05 PDT 2025


Il 27/06/25 22:07, Rob Herring ha scritto:
> On Mon, Jun 23, 2025 at 02:00:43PM +0200, AngeloGioacchino Del Regno wrote:
>> Document the MT8196 SPMI 2.0 Controller with a new schema.
>> This is a MIPI SPMI 2.0 compliant IP, composed of a main arbiter
>> and two SPMI master controllers with Request Capable Slave (RCS)
>> support.
>>
>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
>> ---
>>   .../bindings/spmi/mediatek,mt8196-spmi.yaml   | 138 ++++++++++++++++++
>>   1 file changed, 138 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/spmi/mediatek,mt8196-spmi.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/spmi/mediatek,mt8196-spmi.yaml b/Documentation/devicetree/bindings/spmi/mediatek,mt8196-spmi.yaml
>> new file mode 100644
>> index 000000000000..d7eb63e81a5c
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/spmi/mediatek,mt8196-spmi.yaml
>> @@ -0,0 +1,138 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/spmi/mediatek,mt8196-spmi.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: MediaTek MT8196 SPMI 2.0 Controller
>> +
>> +maintainers:
>> +  - Hsin-Hsiung Wang <hsin-hsiung.wang at mediatek.com>
>> +  - AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
>> +
>> +description:
>> +  The MediaTek MT8196 SoC features a SPMI version 2.0 compliant controller,
>> +  with internal wrapping arbitration logic to allow for multiple on-chip
>> +  devices to control up to two SPMI buses.
>> +  The main arbiter also acts as an interrupt controller, arbitering also
>> +  the interrupts coming from SPMI-connected devices into each of the nested
>> +  interrupt controllers from any of the present SPMI buses.
>> +
>> +properties:
>> +  compatible:
>> +    oneOf:
>> +      - enum:
>> +          - mediatek,mt8196-spmi
>> +      - items:
>> +          - enum:
>> +              - mediatek,mt6991-spmi
>> +          - const: mediatek,mt8196-spmi
>> +
>> +  ranges: true
>> +
>> +  '#address-cells':
>> +    const: 1
>> +
>> +  '#size-cells':
>> +    const: 1
>> +
>> +patternProperties:
>> +  "^spmi@[a-f0-9]+$":
>> +    type: object
>> +    $ref: /schemas/spmi/spmi.yaml
>> +    unevaluatedProperties: false
>> +
>> +    properties:
>> +      reg:
>> +        items:
>> +          - description: controller interface registers
>> +          - description: spmi master controller registers
>> +
>> +      reg-names:
>> +        items:
>> +          - const: pmif
>> +          - const: spmimst
>> +
>> +      clocks:
>> +        items:
>> +          - description: controller interface system clock
>> +          - description: controller interface timer clock
>> +          - description: spmi controller master clock
>> +
>> +      clock-names:
>> +        items:
>> +          - const: pmif_sys_ck
>> +          - const: pmif_tmr_ck
>> +          - const: spmimst_clk_mux
>> +
>> +      interrupts:
>> +        maxItems: 1
>> +
>> +      interrupt-names:
>> +        const: rcs
>> +
>> +      interrupt-controller: true
>> +
>> +      "#interrupt-cells":
>> +        const: 3
>> +        description: |
>> +          cell 1: slave ID for the requested interrupt (0-15)
>> +          cell 2: the requested peripheral interrupt (0-7)
>> +          cell 3: interrupt flags indicating level-sense information,
>> +                  as defined in dt-bindings/interrupt-controller/irq.h
>> +    required:
>> +      - reg
>> +      - reg-names
>> +      - clocks
>> +      - clock-names
>> +      - interrupts
>> +      - interrupt-names
>> +      - interrupt-controller
>> +      - "#interrupt-cells"
>> +
>> +required:
>> +  - compatible
>> +  - ranges
>> +  - '#address-cells'
>> +  - '#size-cells'
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> +  - |
>> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +
>> +    soc {
>> +      #address-cells = <2>;
>> +      #size-cells = <2>;
>> +
>> +      spmi-arbiter at 1c018000 {
>> +        compatible = "mediatek,mt8196-spmi";
>> +        ranges = <0 0 0x1c018000 0x4900>;
>> +        #address-cells = <1>;
>> +        #size-cells = <1>;
>> +
>> +        spmi at 0 {
>> +          reg = <0 0x900>, <0x4800 0x100>;
>> +          reg-names = "pmif", "spmimst";
>> +          interrupts-extended = <&pio 292 IRQ_TYPE_LEVEL_HIGH>;
>> +          interrupt-names = "rcs";
>> +         interrupt-controller;
> 
> Indentation error.
> 
> Otherwise,
> 
> Reviewed-by: Rob Herring (Arm) <robh at kernel.org>
> 

Oh sorry for that.

If there's no "complaint" on any other patch of this series, I wonder if this
could be fixed while applying?

Thanks a lot,
Angelo

>> +          #interrupt-cells = <3>;
>> +          clocks = <&pmif_sys>, <&pmif_tmr>, <&spmi_mst>;
>> +          clock-names = "pmif_sys_ck", "pmif_tmr_ck", "spmimst_clk_mux";
>> +        };
>> +
>> +        spmi at 2000 {
>> +          reg = <0x2000 0x900>, <0x4000 0x100>;
>> +          reg-names = "pmif", "spmimst";
>> +          interrupts-extended = <&pio 291 IRQ_TYPE_LEVEL_HIGH>;
>> +          interrupt-names = "rcs";
>> +          interrupt-controller;
>> +          #interrupt-cells = <3>;
>> +          clocks = <&pmif_sys>, <&pmif_tmr>, <&spmi_mst>;
>> +          clock-names = "pmif_sys_ck", "pmif_tmr_ck", "spmimst_clk_mux";
>> +        };
>> +      };
>> +    };
>> +...
>> -- 
>> 2.49.0
>>





More information about the Linux-mediatek mailing list