| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/soc/mediatek/mediatek,pwrap.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Mediatek PMIC Wrapper | |
| maintainers: | |
| - Flora Fu <flora.fu@mediatek.com> | |
| - Alexandre Mergnat <amergnat@baylibre.com> | |
| description: | |
| On MediaTek SoCs the PMIC is connected via SPI. The SPI master interface | |
| is not directly visible to the CPU, but only through the PMIC wrapper | |
| inside the SoC. The communication between the SoC and the PMIC can | |
| optionally be encrypted. Also a non standard Dual IO SPI mode can be | |
| used to increase speed. | |
| IP Pairing | |
| On MT8135 the pins of some SoC internal peripherals can be on the PMIC. | |
| The signals of these pins are routed over the SPI bus using the pwrap | |
| bridge. In the binding description below the properties needed for bridging | |
| are marked with "IP Pairing". These are optional on SoCs which do not support | |
| IP Pairing | |
| properties: | |
| compatible: | |
| oneOf: | |
| - items: | |
| - enum: | |
| - mediatek,mt2701-pwrap | |
| - mediatek,mt6765-pwrap | |
| - mediatek,mt6779-pwrap | |
| - mediatek,mt6795-pwrap | |
| - mediatek,mt6797-pwrap | |
| - mediatek,mt6873-pwrap | |
| - mediatek,mt7622-pwrap | |
| - mediatek,mt8135-pwrap | |
| - mediatek,mt8173-pwrap | |
| - mediatek,mt8183-pwrap | |
| - mediatek,mt8186-pwrap | |
| - mediatek,mt8195-pwrap | |
| - mediatek,mt8365-pwrap | |
| - mediatek,mt8516-pwrap | |
| - items: | |
| - enum: | |
| - mediatek,mt8186-pwrap | |
| - mediatek,mt8195-pwrap | |
| - const: syscon | |
| - items: | |
| - enum: | |
| - mediatek,mt8188-pwrap | |
| - mediatek,mt8189-pwrap | |
| - const: mediatek,mt8195-pwrap | |
| - const: syscon | |
| reg: | |
| minItems: 1 | |
| items: | |
| - description: PMIC wrapper registers | |
| - description: IP pairing registers | |
| reg-names: | |
| minItems: 1 | |
| items: | |
| - const: pwrap | |
| - const: pwrap-bridge | |
| interrupts: | |
| maxItems: 1 | |
| clocks: | |
| minItems: 2 | |
| items: | |
| - description: SPI bus clock | |
| - description: Main module clock | |
| - description: System module clock | |
| - description: Timer module clock | |
| clock-names: | |
| minItems: 2 | |
| items: | |
| - const: spi | |
| - const: wrap | |
| - const: sys | |
| - const: tmr | |
| resets: | |
| minItems: 1 | |
| items: | |
| - description: PMIC wrapper reset | |
| - description: IP pairing reset | |
| reset-names: | |
| minItems: 1 | |
| items: | |
| - const: pwrap | |
| - const: pwrap-bridge | |
| power-domains: | |
| maxItems: 1 | |
| pmic: | |
| type: object | |
| required: | |
| - compatible | |
| - reg | |
| - reg-names | |
| - interrupts | |
| - clocks | |
| - clock-names | |
| dependentRequired: | |
| resets: [reset-names] | |
| allOf: | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| const: mediatek,mt8365-pwrap | |
| then: | |
| properties: | |
| clocks: | |
| minItems: 4 | |
| clock-names: | |
| minItems: 4 | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| const: mediatek,mt8173-pwrap | |
| then: | |
| properties: | |
| power-domains: true | |
| else: | |
| properties: | |
| power-domains: false | |
| additionalProperties: false | |
| examples: | |
| - | | |
| #include <dt-bindings/interrupt-controller/irq.h> | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> | |
| #include <dt-bindings/reset/mt8135-resets.h> | |
| soc { | |
| #address-cells = <2>; | |
| #size-cells = <2>; | |
| pwrap@1000f000 { | |
| compatible = "mediatek,mt8135-pwrap"; | |
| reg = <0 0x1000f000 0 0x1000>, | |
| <0 0x11017000 0 0x1000>; | |
| reg-names = "pwrap", "pwrap-bridge"; | |
| interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>; | |
| clocks = <&clk26m>, <&clk26m>; | |
| clock-names = "spi", "wrap"; | |
| resets = <&infracfg MT8135_INFRA_PMIC_WRAP_RST>, | |
| <&pericfg MT8135_PERI_PWRAP_BRIDGE_SW_RST>; | |
| reset-names = "pwrap", "pwrap-bridge"; | |
| }; | |
| }; |