# 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 - Alexandre Mergnat 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 - 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 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 additionalProperties: false examples: - | #include #include #include 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 = ; 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"; }; };