1a22452afSArınç ÜNAL# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2a22452afSArınç ÜNAL%YAML 1.2 3a22452afSArınç ÜNAL--- 4a22452afSArınç ÜNAL$id: http://devicetree.org/schemas/pinctrl/mediatek,mt6795-pinctrl.yaml# 5a22452afSArınç ÜNAL$schema: http://devicetree.org/meta-schemas/core.yaml# 6a22452afSArınç ÜNAL 7a9d44c4cSArınç ÜNALtitle: MediaTek MT6795 Pin Controller 8a22452afSArınç ÜNAL 9a22452afSArınç ÜNALmaintainers: 10a22452afSArınç ÜNAL - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 11a22452afSArınç ÜNAL - Sean Wang <sean.wang@kernel.org> 12a22452afSArınç ÜNAL 13c911ad22SArınç ÜNALdescription: 14a9d44c4cSArınç ÜNAL The MediaTek's MT6795 Pin controller is used to control SoC pins. 15a22452afSArınç ÜNAL 16a22452afSArınç ÜNALproperties: 17a22452afSArınç ÜNAL compatible: 18a22452afSArınç ÜNAL const: mediatek,mt6795-pinctrl 19a22452afSArınç ÜNAL 20a22452afSArınç ÜNAL gpio-controller: true 21a22452afSArınç ÜNAL 22a22452afSArınç ÜNAL '#gpio-cells': 23c911ad22SArınç ÜNAL description: 24a22452afSArınç ÜNAL Number of cells in GPIO specifier. Since the generic GPIO binding is used, 25c911ad22SArınç ÜNAL the amount of cells must be specified as 2. See the below mentioned gpio 26c911ad22SArınç ÜNAL binding representation for description of particular cells. 27a22452afSArınç ÜNAL const: 2 28a22452afSArınç ÜNAL 29a22452afSArınç ÜNAL gpio-ranges: 30a22452afSArınç ÜNAL description: GPIO valid number range. 31a22452afSArınç ÜNAL maxItems: 1 32a22452afSArınç ÜNAL 33a22452afSArınç ÜNAL reg: 34a22452afSArınç ÜNAL description: 35c911ad22SArınç ÜNAL Physical address base for GPIO base and eint registers. 36a22452afSArınç ÜNAL minItems: 2 37a22452afSArınç ÜNAL 38a22452afSArınç ÜNAL reg-names: 39a22452afSArınç ÜNAL items: 40a22452afSArınç ÜNAL - const: base 41a22452afSArınç ÜNAL - const: eint 42a22452afSArınç ÜNAL 43a22452afSArınç ÜNAL interrupt-controller: true 44a22452afSArınç ÜNAL 45a22452afSArınç ÜNAL '#interrupt-cells': 46a22452afSArınç ÜNAL const: 2 47a22452afSArınç ÜNAL 48a22452afSArınç ÜNAL interrupts: 49a22452afSArınç ÜNAL description: Interrupt outputs to the system interrupt controller (sysirq). 50a22452afSArınç ÜNAL minItems: 1 51a22452afSArınç ÜNAL items: 52a22452afSArınç ÜNAL - description: EINT interrupt 53a22452afSArınç ÜNAL - description: EINT event_b interrupt 54a22452afSArınç ÜNAL 55a22452afSArınç ÜNAL# PIN CONFIGURATION NODES 56a22452afSArınç ÜNALpatternProperties: 57a22452afSArınç ÜNAL '-pins$': 58a22452afSArınç ÜNAL type: object 59a22452afSArınç ÜNAL additionalProperties: false 60a22452afSArınç ÜNAL patternProperties: 61a22452afSArınç ÜNAL '^pins': 62a22452afSArınç ÜNAL type: object 63a22452afSArınç ÜNAL additionalProperties: false 64a22452afSArınç ÜNAL description: | 65a22452afSArınç ÜNAL A pinctrl node should contain at least one subnodes representing the 66a22452afSArınç ÜNAL pinctrl groups available on the machine. Each subnode will list the 67a22452afSArınç ÜNAL pins it needs, and how they should be configured, with regard to muxer 68c911ad22SArınç ÜNAL configuration, pullups, drive strength, input enable/disable and input 69c911ad22SArınç ÜNAL schmitt. 70a22452afSArınç ÜNAL An example of using macro: 71a22452afSArınç ÜNAL pincontroller { 72a22452afSArınç ÜNAL /* GPIO0 set as multifunction GPIO0 */ 73a22452afSArınç ÜNAL gpio-pins { 74a22452afSArınç ÜNAL pins { 75a22452afSArınç ÜNAL pinmux = <PINMUX_GPIO0__FUNC_GPIO0>; 76a22452afSArınç ÜNAL } 77a22452afSArınç ÜNAL }; 78a22452afSArınç ÜNAL /* GPIO45 set as multifunction SDA0 */ 79a22452afSArınç ÜNAL i2c0-pins { 80a22452afSArınç ÜNAL pins { 81a22452afSArınç ÜNAL pinmux = <PINMUX_GPIO45__FUNC_SDA0>; 82a22452afSArınç ÜNAL } 83a22452afSArınç ÜNAL }; 84a22452afSArınç ÜNAL }; 856a735ad5SArınç ÜNAL $ref: pinmux-node.yaml 86a22452afSArınç ÜNAL 87a22452afSArınç ÜNAL properties: 88a22452afSArınç ÜNAL pinmux: 89c911ad22SArınç ÜNAL description: 90a22452afSArınç ÜNAL Integer array, represents gpio pin number and mux setting. 91a22452afSArınç ÜNAL Supported pin number and mux varies for different SoCs, and are 92c911ad22SArınç ÜNAL defined as macros in dt-bindings/pinctrl/<soc>-pinfunc.h directly. 93a22452afSArınç ÜNAL 94a22452afSArınç ÜNAL drive-strength: 95a22452afSArınç ÜNAL enum: [2, 4, 6, 8, 10, 12, 14, 16] 96a22452afSArınç ÜNAL 97a22452afSArınç ÜNAL bias-pull-down: 98a22452afSArınç ÜNAL oneOf: 99a22452afSArınç ÜNAL - type: boolean 100a22452afSArınç ÜNAL - enum: [100, 101, 102, 103] 101a22452afSArınç ÜNAL description: mt6795 pull down PUPD/R0/R1 type define value. 102c911ad22SArınç ÜNAL description: 103a22452afSArınç ÜNAL For normal pull down type, it is not necessary to specify R1R0 104a22452afSArınç ÜNAL values; When pull down type is PUPD/R0/R1, adding R1R0 defines 105a22452afSArınç ÜNAL will set different resistance values. 106a22452afSArınç ÜNAL 107a22452afSArınç ÜNAL bias-pull-up: 108a22452afSArınç ÜNAL oneOf: 109a22452afSArınç ÜNAL - type: boolean 110a22452afSArınç ÜNAL - enum: [100, 101, 102, 103] 111a22452afSArınç ÜNAL description: mt6795 pull up PUPD/R0/R1 type define value. 112c911ad22SArınç ÜNAL description: 113a22452afSArınç ÜNAL For normal pull up type, it is not necessary to specify R1R0 114c911ad22SArınç ÜNAL values; When pull up type is PUPD/R0/R1, adding R1R0 defines will 115c911ad22SArınç ÜNAL set different resistance values. 116a22452afSArınç ÜNAL 117a22452afSArınç ÜNAL bias-disable: true 118a22452afSArınç ÜNAL 119a22452afSArınç ÜNAL output-high: true 120a22452afSArınç ÜNAL 121a22452afSArınç ÜNAL output-low: true 122a22452afSArınç ÜNAL 123a22452afSArınç ÜNAL input-enable: true 124a22452afSArınç ÜNAL 125a22452afSArınç ÜNAL input-disable: true 126a22452afSArınç ÜNAL 127a22452afSArınç ÜNAL input-schmitt-enable: true 128a22452afSArınç ÜNAL 129a22452afSArınç ÜNAL input-schmitt-disable: true 130a22452afSArınç ÜNAL 131a22452afSArınç ÜNAL mediatek,pull-up-adv: 132a22452afSArınç ÜNAL description: | 133*47aab533SBjorn Helgaas Pull up settings for 2 pull resistors, R0 and R1. User can 134c911ad22SArınç ÜNAL configure those special pins. Valid arguments are described as 135c911ad22SArınç ÜNAL below: 136a22452afSArınç ÜNAL 0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled. 137a22452afSArınç ÜNAL 1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled. 138a22452afSArınç ÜNAL 2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled. 139a22452afSArınç ÜNAL 3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled. 140a22452afSArınç ÜNAL $ref: /schemas/types.yaml#/definitions/uint32 141a22452afSArınç ÜNAL enum: [0, 1, 2, 3] 142a22452afSArınç ÜNAL 143a22452afSArınç ÜNAL mediatek,pull-down-adv: 144a22452afSArınç ÜNAL description: | 145a22452afSArınç ÜNAL Pull down settings for 2 pull resistors, R0 and R1. User can 146c911ad22SArınç ÜNAL configure those special pins. Valid arguments are described as 147c911ad22SArınç ÜNAL below: 148a22452afSArınç ÜNAL 0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled. 149a22452afSArınç ÜNAL 1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled. 150a22452afSArınç ÜNAL 2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled. 151a22452afSArınç ÜNAL 3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled. 152a22452afSArınç ÜNAL $ref: /schemas/types.yaml#/definitions/uint32 153a22452afSArınç ÜNAL enum: [0, 1, 2, 3] 154a22452afSArınç ÜNAL 155a22452afSArınç ÜNAL required: 156a22452afSArınç ÜNAL - pinmux 157a22452afSArınç ÜNAL 158a22452afSArınç ÜNALallOf: 1596a735ad5SArınç ÜNAL - $ref: pinctrl.yaml# 160a22452afSArınç ÜNAL 161a22452afSArınç ÜNALrequired: 162a22452afSArınç ÜNAL - compatible 163a22452afSArınç ÜNAL - reg 164a22452afSArınç ÜNAL - reg-names 165a22452afSArınç ÜNAL - interrupts 166a22452afSArınç ÜNAL - interrupt-controller 167a22452afSArınç ÜNAL - '#interrupt-cells' 168a22452afSArınç ÜNAL - gpio-controller 169a22452afSArınç ÜNAL - '#gpio-cells' 170a22452afSArınç ÜNAL - gpio-ranges 171a22452afSArınç ÜNAL 172a22452afSArınç ÜNALadditionalProperties: false 173a22452afSArınç ÜNAL 174a22452afSArınç ÜNALexamples: 175a22452afSArınç ÜNAL - | 176a22452afSArınç ÜNAL #include <dt-bindings/interrupt-controller/arm-gic.h> 177a22452afSArınç ÜNAL #include <dt-bindings/interrupt-controller/irq.h> 178a22452afSArınç ÜNAL #include <dt-bindings/pinctrl/mt6795-pinfunc.h> 179a22452afSArınç ÜNAL 180a22452afSArınç ÜNAL soc { 181a22452afSArınç ÜNAL #address-cells = <2>; 182a22452afSArınç ÜNAL #size-cells = <2>; 183a22452afSArınç ÜNAL 184a22452afSArınç ÜNAL pio: pinctrl@10005000 { 185a22452afSArınç ÜNAL compatible = "mediatek,mt6795-pinctrl"; 186a22452afSArınç ÜNAL reg = <0 0x10005000 0 0x1000>, <0 0x1000b000 0 0x1000>; 187a22452afSArınç ÜNAL reg-names = "base", "eint"; 188a22452afSArınç ÜNAL gpio-controller; 189a22452afSArınç ÜNAL #gpio-cells = <2>; 190a22452afSArınç ÜNAL gpio-ranges = <&pio 0 0 196>; 191a22452afSArınç ÜNAL interrupt-controller; 192a22452afSArınç ÜNAL interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 193a22452afSArınç ÜNAL #interrupt-cells = <2>; 194a22452afSArınç ÜNAL 195a22452afSArınç ÜNAL i2c0-pins { 196a22452afSArınç ÜNAL pins-sda-scl { 197a22452afSArınç ÜNAL pinmux = <PINMUX_GPIO45__FUNC_SDA0>, 198a22452afSArınç ÜNAL <PINMUX_GPIO46__FUNC_SCL0>; 199a22452afSArınç ÜNAL }; 200a22452afSArınç ÜNAL }; 201a22452afSArınç ÜNAL 202a22452afSArınç ÜNAL mmc0-pins { 203a22452afSArınç ÜNAL pins-cmd-dat { 204a22452afSArınç ÜNAL pinmux = <PINMUX_GPIO154__FUNC_MSDC0_DAT0>, 205a22452afSArınç ÜNAL <PINMUX_GPIO155__FUNC_MSDC0_DAT1>, 206a22452afSArınç ÜNAL <PINMUX_GPIO156__FUNC_MSDC0_DAT2>, 207a22452afSArınç ÜNAL <PINMUX_GPIO157__FUNC_MSDC0_DAT3>, 208a22452afSArınç ÜNAL <PINMUX_GPIO158__FUNC_MSDC0_DAT4>, 209a22452afSArınç ÜNAL <PINMUX_GPIO159__FUNC_MSDC0_DAT5>, 210a22452afSArınç ÜNAL <PINMUX_GPIO160__FUNC_MSDC0_DAT6>, 211a22452afSArınç ÜNAL <PINMUX_GPIO161__FUNC_MSDC0_DAT7>, 212a22452afSArınç ÜNAL <PINMUX_GPIO162__FUNC_MSDC0_CMD>; 213a22452afSArınç ÜNAL input-enable; 214a22452afSArınç ÜNAL bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 215a22452afSArınç ÜNAL }; 216a22452afSArınç ÜNAL 217a22452afSArınç ÜNAL pins-clk { 218a22452afSArınç ÜNAL pinmux = <PINMUX_GPIO163__FUNC_MSDC0_CLK>; 219a22452afSArınç ÜNAL bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 220a22452afSArınç ÜNAL }; 221a22452afSArınç ÜNAL 222a22452afSArınç ÜNAL pins-rst { 223a22452afSArınç ÜNAL pinmux = <PINMUX_GPIO165__FUNC_MSDC0_RSTB>; 224a22452afSArınç ÜNAL bias-pull-up = <MTK_PUPD_SET_R1R0_10>; 225a22452afSArınç ÜNAL }; 226a22452afSArınç ÜNAL }; 227a22452afSArınç ÜNAL }; 228a22452afSArınç ÜNAL }; 229