1*5abb6c7aSAngeloGioacchino Del Regno# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*5abb6c7aSAngeloGioacchino Del Regno%YAML 1.2 3*5abb6c7aSAngeloGioacchino Del Regno--- 4*5abb6c7aSAngeloGioacchino Del Regno$id: http://devicetree.org/schemas/spmi/mediatek,mt8196-spmi.yaml# 5*5abb6c7aSAngeloGioacchino Del Regno$schema: http://devicetree.org/meta-schemas/core.yaml# 6*5abb6c7aSAngeloGioacchino Del Regno 7*5abb6c7aSAngeloGioacchino Del Regnotitle: MediaTek MT8196 SPMI 2.0 Controller 8*5abb6c7aSAngeloGioacchino Del Regno 9*5abb6c7aSAngeloGioacchino Del Regnomaintainers: 10*5abb6c7aSAngeloGioacchino Del Regno - Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com> 11*5abb6c7aSAngeloGioacchino Del Regno - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 12*5abb6c7aSAngeloGioacchino Del Regno 13*5abb6c7aSAngeloGioacchino Del Regnodescription: 14*5abb6c7aSAngeloGioacchino Del Regno The MediaTek MT8196 SoC features a SPMI version 2.0 compliant controller, 15*5abb6c7aSAngeloGioacchino Del Regno with internal wrapping arbitration logic to allow for multiple on-chip 16*5abb6c7aSAngeloGioacchino Del Regno devices to control up to two SPMI buses. 17*5abb6c7aSAngeloGioacchino Del Regno The main arbiter also acts as an interrupt controller, arbitering also 18*5abb6c7aSAngeloGioacchino Del Regno the interrupts coming from SPMI-connected devices into each of the nested 19*5abb6c7aSAngeloGioacchino Del Regno interrupt controllers from any of the present SPMI buses. 20*5abb6c7aSAngeloGioacchino Del Regno 21*5abb6c7aSAngeloGioacchino Del Regnoproperties: 22*5abb6c7aSAngeloGioacchino Del Regno compatible: 23*5abb6c7aSAngeloGioacchino Del Regno oneOf: 24*5abb6c7aSAngeloGioacchino Del Regno - enum: 25*5abb6c7aSAngeloGioacchino Del Regno - mediatek,mt8196-spmi 26*5abb6c7aSAngeloGioacchino Del Regno - items: 27*5abb6c7aSAngeloGioacchino Del Regno - enum: 28*5abb6c7aSAngeloGioacchino Del Regno - mediatek,mt6991-spmi 29*5abb6c7aSAngeloGioacchino Del Regno - const: mediatek,mt8196-spmi 30*5abb6c7aSAngeloGioacchino Del Regno 31*5abb6c7aSAngeloGioacchino Del Regno ranges: true 32*5abb6c7aSAngeloGioacchino Del Regno 33*5abb6c7aSAngeloGioacchino Del Regno '#address-cells': 34*5abb6c7aSAngeloGioacchino Del Regno const: 1 35*5abb6c7aSAngeloGioacchino Del Regno 36*5abb6c7aSAngeloGioacchino Del Regno '#size-cells': 37*5abb6c7aSAngeloGioacchino Del Regno const: 1 38*5abb6c7aSAngeloGioacchino Del Regno 39*5abb6c7aSAngeloGioacchino Del RegnopatternProperties: 40*5abb6c7aSAngeloGioacchino Del Regno "^spmi@[a-f0-9]+$": 41*5abb6c7aSAngeloGioacchino Del Regno type: object 42*5abb6c7aSAngeloGioacchino Del Regno $ref: /schemas/spmi/spmi.yaml 43*5abb6c7aSAngeloGioacchino Del Regno unevaluatedProperties: false 44*5abb6c7aSAngeloGioacchino Del Regno 45*5abb6c7aSAngeloGioacchino Del Regno properties: 46*5abb6c7aSAngeloGioacchino Del Regno reg: 47*5abb6c7aSAngeloGioacchino Del Regno items: 48*5abb6c7aSAngeloGioacchino Del Regno - description: controller interface registers 49*5abb6c7aSAngeloGioacchino Del Regno - description: spmi master controller registers 50*5abb6c7aSAngeloGioacchino Del Regno 51*5abb6c7aSAngeloGioacchino Del Regno reg-names: 52*5abb6c7aSAngeloGioacchino Del Regno items: 53*5abb6c7aSAngeloGioacchino Del Regno - const: pmif 54*5abb6c7aSAngeloGioacchino Del Regno - const: spmimst 55*5abb6c7aSAngeloGioacchino Del Regno 56*5abb6c7aSAngeloGioacchino Del Regno clocks: 57*5abb6c7aSAngeloGioacchino Del Regno items: 58*5abb6c7aSAngeloGioacchino Del Regno - description: controller interface system clock 59*5abb6c7aSAngeloGioacchino Del Regno - description: controller interface timer clock 60*5abb6c7aSAngeloGioacchino Del Regno - description: spmi controller master clock 61*5abb6c7aSAngeloGioacchino Del Regno 62*5abb6c7aSAngeloGioacchino Del Regno clock-names: 63*5abb6c7aSAngeloGioacchino Del Regno items: 64*5abb6c7aSAngeloGioacchino Del Regno - const: pmif_sys_ck 65*5abb6c7aSAngeloGioacchino Del Regno - const: pmif_tmr_ck 66*5abb6c7aSAngeloGioacchino Del Regno - const: spmimst_clk_mux 67*5abb6c7aSAngeloGioacchino Del Regno 68*5abb6c7aSAngeloGioacchino Del Regno interrupts: 69*5abb6c7aSAngeloGioacchino Del Regno maxItems: 1 70*5abb6c7aSAngeloGioacchino Del Regno 71*5abb6c7aSAngeloGioacchino Del Regno interrupt-names: 72*5abb6c7aSAngeloGioacchino Del Regno const: rcs 73*5abb6c7aSAngeloGioacchino Del Regno 74*5abb6c7aSAngeloGioacchino Del Regno interrupt-controller: true 75*5abb6c7aSAngeloGioacchino Del Regno 76*5abb6c7aSAngeloGioacchino Del Regno "#interrupt-cells": 77*5abb6c7aSAngeloGioacchino Del Regno const: 3 78*5abb6c7aSAngeloGioacchino Del Regno description: | 79*5abb6c7aSAngeloGioacchino Del Regno cell 1: slave ID for the requested interrupt (0-15) 80*5abb6c7aSAngeloGioacchino Del Regno cell 2: the requested peripheral interrupt (0-7) 81*5abb6c7aSAngeloGioacchino Del Regno cell 3: interrupt flags indicating level-sense information, 82*5abb6c7aSAngeloGioacchino Del Regno as defined in dt-bindings/interrupt-controller/irq.h 83*5abb6c7aSAngeloGioacchino Del Regno required: 84*5abb6c7aSAngeloGioacchino Del Regno - reg 85*5abb6c7aSAngeloGioacchino Del Regno - reg-names 86*5abb6c7aSAngeloGioacchino Del Regno - clocks 87*5abb6c7aSAngeloGioacchino Del Regno - clock-names 88*5abb6c7aSAngeloGioacchino Del Regno - interrupts 89*5abb6c7aSAngeloGioacchino Del Regno - interrupt-names 90*5abb6c7aSAngeloGioacchino Del Regno - interrupt-controller 91*5abb6c7aSAngeloGioacchino Del Regno - "#interrupt-cells" 92*5abb6c7aSAngeloGioacchino Del Regno 93*5abb6c7aSAngeloGioacchino Del Regnorequired: 94*5abb6c7aSAngeloGioacchino Del Regno - compatible 95*5abb6c7aSAngeloGioacchino Del Regno - ranges 96*5abb6c7aSAngeloGioacchino Del Regno - '#address-cells' 97*5abb6c7aSAngeloGioacchino Del Regno - '#size-cells' 98*5abb6c7aSAngeloGioacchino Del Regno 99*5abb6c7aSAngeloGioacchino Del RegnoadditionalProperties: false 100*5abb6c7aSAngeloGioacchino Del Regno 101*5abb6c7aSAngeloGioacchino Del Regnoexamples: 102*5abb6c7aSAngeloGioacchino Del Regno - | 103*5abb6c7aSAngeloGioacchino Del Regno #include <dt-bindings/interrupt-controller/arm-gic.h> 104*5abb6c7aSAngeloGioacchino Del Regno 105*5abb6c7aSAngeloGioacchino Del Regno soc { 106*5abb6c7aSAngeloGioacchino Del Regno #address-cells = <2>; 107*5abb6c7aSAngeloGioacchino Del Regno #size-cells = <2>; 108*5abb6c7aSAngeloGioacchino Del Regno 109*5abb6c7aSAngeloGioacchino Del Regno spmi-arbiter@1c018000 { 110*5abb6c7aSAngeloGioacchino Del Regno compatible = "mediatek,mt8196-spmi"; 111*5abb6c7aSAngeloGioacchino Del Regno ranges = <0 0 0x1c018000 0x4900>; 112*5abb6c7aSAngeloGioacchino Del Regno #address-cells = <1>; 113*5abb6c7aSAngeloGioacchino Del Regno #size-cells = <1>; 114*5abb6c7aSAngeloGioacchino Del Regno 115*5abb6c7aSAngeloGioacchino Del Regno spmi@0 { 116*5abb6c7aSAngeloGioacchino Del Regno reg = <0 0x900>, <0x4800 0x100>; 117*5abb6c7aSAngeloGioacchino Del Regno reg-names = "pmif", "spmimst"; 118*5abb6c7aSAngeloGioacchino Del Regno interrupts-extended = <&pio 292 IRQ_TYPE_LEVEL_HIGH>; 119*5abb6c7aSAngeloGioacchino Del Regno interrupt-names = "rcs"; 120*5abb6c7aSAngeloGioacchino Del Regno interrupt-controller; 121*5abb6c7aSAngeloGioacchino Del Regno #interrupt-cells = <3>; 122*5abb6c7aSAngeloGioacchino Del Regno clocks = <&pmif_sys>, <&pmif_tmr>, <&spmi_mst>; 123*5abb6c7aSAngeloGioacchino Del Regno clock-names = "pmif_sys_ck", "pmif_tmr_ck", "spmimst_clk_mux"; 124*5abb6c7aSAngeloGioacchino Del Regno }; 125*5abb6c7aSAngeloGioacchino Del Regno 126*5abb6c7aSAngeloGioacchino Del Regno spmi@2000 { 127*5abb6c7aSAngeloGioacchino Del Regno reg = <0x2000 0x900>, <0x4000 0x100>; 128*5abb6c7aSAngeloGioacchino Del Regno reg-names = "pmif", "spmimst"; 129*5abb6c7aSAngeloGioacchino Del Regno interrupts-extended = <&pio 291 IRQ_TYPE_LEVEL_HIGH>; 130*5abb6c7aSAngeloGioacchino Del Regno interrupt-names = "rcs"; 131*5abb6c7aSAngeloGioacchino Del Regno interrupt-controller; 132*5abb6c7aSAngeloGioacchino Del Regno #interrupt-cells = <3>; 133*5abb6c7aSAngeloGioacchino Del Regno clocks = <&pmif_sys>, <&pmif_tmr>, <&spmi_mst>; 134*5abb6c7aSAngeloGioacchino Del Regno clock-names = "pmif_sys_ck", "pmif_tmr_ck", "spmimst_clk_mux"; 135*5abb6c7aSAngeloGioacchino Del Regno }; 136*5abb6c7aSAngeloGioacchino Del Regno }; 137*5abb6c7aSAngeloGioacchino Del Regno }; 138*5abb6c7aSAngeloGioacchino Del Regno... 139