Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dt-bindings: spmi: Add MediaTek MT8196 SPMI 2 Arbiter/Controllers

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.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Link: https://patch.msgid.link/20260123182039.224314-2-sboyd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

AngeloGioacchino Del Regno and committed by
Greg Kroah-Hartman
5abb6c7a 4f423d89

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