1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/pinctrl/renesas,pfc.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: Renesas Pin Function Controller (GPIO and Pin Mux/Config) 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - Geert Uytterhoeven <geert+renesas@glider.be> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundescription: 13*4882a593Smuzhiyun The Pin Function Controller (PFC) is a Pin Mux/Config controller. 14*4882a593Smuzhiyun On SH/R-Mobile SoCs it also acts as a GPIO controller. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyunproperties: 17*4882a593Smuzhiyun compatible: 18*4882a593Smuzhiyun enum: 19*4882a593Smuzhiyun - renesas,pfc-emev2 # EMMA Mobile EV2 20*4882a593Smuzhiyun - renesas,pfc-r8a73a4 # R-Mobile APE6 21*4882a593Smuzhiyun - renesas,pfc-r8a7740 # R-Mobile A1 22*4882a593Smuzhiyun - renesas,pfc-r8a7742 # RZ/G1H 23*4882a593Smuzhiyun - renesas,pfc-r8a7743 # RZ/G1M 24*4882a593Smuzhiyun - renesas,pfc-r8a7744 # RZ/G1N 25*4882a593Smuzhiyun - renesas,pfc-r8a7745 # RZ/G1E 26*4882a593Smuzhiyun - renesas,pfc-r8a77470 # RZ/G1C 27*4882a593Smuzhiyun - renesas,pfc-r8a774a1 # RZ/G2M 28*4882a593Smuzhiyun - renesas,pfc-r8a774b1 # RZ/G2N 29*4882a593Smuzhiyun - renesas,pfc-r8a774c0 # RZ/G2E 30*4882a593Smuzhiyun - renesas,pfc-r8a774e1 # RZ/G2H 31*4882a593Smuzhiyun - renesas,pfc-r8a7778 # R-Car M1 32*4882a593Smuzhiyun - renesas,pfc-r8a7779 # R-Car H1 33*4882a593Smuzhiyun - renesas,pfc-r8a7790 # R-Car H2 34*4882a593Smuzhiyun - renesas,pfc-r8a7791 # R-Car M2-W 35*4882a593Smuzhiyun - renesas,pfc-r8a7792 # R-Car V2H 36*4882a593Smuzhiyun - renesas,pfc-r8a7793 # R-Car M2-N 37*4882a593Smuzhiyun - renesas,pfc-r8a7794 # R-Car E2 38*4882a593Smuzhiyun - renesas,pfc-r8a7795 # R-Car H3 39*4882a593Smuzhiyun - renesas,pfc-r8a7796 # R-Car M3-W 40*4882a593Smuzhiyun - renesas,pfc-r8a77961 # R-Car M3-W+ 41*4882a593Smuzhiyun - renesas,pfc-r8a77965 # R-Car M3-N 42*4882a593Smuzhiyun - renesas,pfc-r8a77970 # R-Car V3M 43*4882a593Smuzhiyun - renesas,pfc-r8a77980 # R-Car V3H 44*4882a593Smuzhiyun - renesas,pfc-r8a77990 # R-Car E3 45*4882a593Smuzhiyun - renesas,pfc-r8a77995 # R-Car D3 46*4882a593Smuzhiyun - renesas,pfc-sh73a0 # SH-Mobile AG5 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun reg: 49*4882a593Smuzhiyun minItems: 1 50*4882a593Smuzhiyun maxItems: 2 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun gpio-controller: true 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun '#gpio-cells': 55*4882a593Smuzhiyun const: 2 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun gpio-ranges: 58*4882a593Smuzhiyun minItems: 1 59*4882a593Smuzhiyun maxItems: 16 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun interrupts-extended: 62*4882a593Smuzhiyun minItems: 32 63*4882a593Smuzhiyun maxItems: 64 64*4882a593Smuzhiyun description: 65*4882a593Smuzhiyun Specify the interrupts associated with external IRQ pins on SoCs where 66*4882a593Smuzhiyun the PFC acts as a GPIO controller. It must contain one interrupt per 67*4882a593Smuzhiyun external IRQ, sorted by external IRQ number. 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun power-domains: 70*4882a593Smuzhiyun maxItems: 1 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunrequired: 73*4882a593Smuzhiyun - compatible 74*4882a593Smuzhiyun - reg 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunif: 77*4882a593Smuzhiyun properties: 78*4882a593Smuzhiyun compatible: 79*4882a593Smuzhiyun items: 80*4882a593Smuzhiyun enum: 81*4882a593Smuzhiyun - renesas,pfc-r8a73a4 82*4882a593Smuzhiyun - renesas,pfc-r8a7740 83*4882a593Smuzhiyun - renesas,pfc-sh73a0 84*4882a593Smuzhiyunthen: 85*4882a593Smuzhiyun required: 86*4882a593Smuzhiyun - interrupts-extended 87*4882a593Smuzhiyun - gpio-controller 88*4882a593Smuzhiyun - '#gpio-cells' 89*4882a593Smuzhiyun - gpio-ranges 90*4882a593Smuzhiyun - power-domains 91*4882a593Smuzhiyun 92*4882a593SmuzhiyunadditionalProperties: 93*4882a593Smuzhiyun anyOf: 94*4882a593Smuzhiyun - type: object 95*4882a593Smuzhiyun allOf: 96*4882a593Smuzhiyun - $ref: pincfg-node.yaml# 97*4882a593Smuzhiyun - $ref: pinmux-node.yaml# 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun description: 100*4882a593Smuzhiyun Pin controller client devices use pin configuration subnodes (children 101*4882a593Smuzhiyun and grandchildren) for desired pin configuration. 102*4882a593Smuzhiyun Client device subnodes use below standard properties. 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun properties: 105*4882a593Smuzhiyun phandle: true 106*4882a593Smuzhiyun function: true 107*4882a593Smuzhiyun groups: true 108*4882a593Smuzhiyun pins: true 109*4882a593Smuzhiyun bias-disable: true 110*4882a593Smuzhiyun bias-pull-down: true 111*4882a593Smuzhiyun bias-pull-up: true 112*4882a593Smuzhiyun drive-strength: 113*4882a593Smuzhiyun enum: [ 3, 6, 9, 12, 15, 18, 21, 24 ] # Superset of supported values 114*4882a593Smuzhiyun power-source: 115*4882a593Smuzhiyun enum: [ 1800, 3300 ] 116*4882a593Smuzhiyun gpio-hog: true 117*4882a593Smuzhiyun gpios: true 118*4882a593Smuzhiyun input: true 119*4882a593Smuzhiyun output-high: true 120*4882a593Smuzhiyun output-low: true 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun additionalProperties: false 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun - type: object 125*4882a593Smuzhiyun properties: 126*4882a593Smuzhiyun phandle: true 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun additionalProperties: 129*4882a593Smuzhiyun $ref: "#/additionalProperties/anyOf/0" 130*4882a593Smuzhiyun 131*4882a593Smuzhiyunexamples: 132*4882a593Smuzhiyun - | 133*4882a593Smuzhiyun pfc: pinctrl@e6050000 { 134*4882a593Smuzhiyun compatible = "renesas,pfc-r8a7740"; 135*4882a593Smuzhiyun reg = <0xe6050000 0x8000>, 136*4882a593Smuzhiyun <0xe605800c 0x20>; 137*4882a593Smuzhiyun gpio-controller; 138*4882a593Smuzhiyun #gpio-cells = <2>; 139*4882a593Smuzhiyun gpio-ranges = <&pfc 0 0 212>; 140*4882a593Smuzhiyun interrupts-extended = 141*4882a593Smuzhiyun <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>, 142*4882a593Smuzhiyun <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>, 143*4882a593Smuzhiyun <&irqpin1 0 0>, <&irqpin1 1 0>, <&irqpin1 2 0>, <&irqpin1 3 0>, 144*4882a593Smuzhiyun <&irqpin1 4 0>, <&irqpin1 5 0>, <&irqpin1 6 0>, <&irqpin1 7 0>, 145*4882a593Smuzhiyun <&irqpin2 0 0>, <&irqpin2 1 0>, <&irqpin2 2 0>, <&irqpin2 3 0>, 146*4882a593Smuzhiyun <&irqpin2 4 0>, <&irqpin2 5 0>, <&irqpin2 6 0>, <&irqpin2 7 0>, 147*4882a593Smuzhiyun <&irqpin3 0 0>, <&irqpin3 1 0>, <&irqpin3 2 0>, <&irqpin3 3 0>, 148*4882a593Smuzhiyun <&irqpin3 4 0>, <&irqpin3 5 0>, <&irqpin3 6 0>, <&irqpin3 7 0>; 149*4882a593Smuzhiyun power-domains = <&pd_c5>; 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun lcd0-mux-hog { 152*4882a593Smuzhiyun /* DBGMD/LCDC0/FSIA MUX */ 153*4882a593Smuzhiyun gpio-hog; 154*4882a593Smuzhiyun gpios = <176 0>; 155*4882a593Smuzhiyun output-high; 156*4882a593Smuzhiyun }; 157*4882a593Smuzhiyun }; 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun - | 160*4882a593Smuzhiyun pinctrl@e6060000 { 161*4882a593Smuzhiyun compatible = "renesas,pfc-r8a7795"; 162*4882a593Smuzhiyun reg = <0xe6060000 0x50c>; 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun avb_pins: avb { 165*4882a593Smuzhiyun mux { 166*4882a593Smuzhiyun groups = "avb_link", "avb_mdio", "avb_mii"; 167*4882a593Smuzhiyun function = "avb"; 168*4882a593Smuzhiyun }; 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun pins_mdio { 171*4882a593Smuzhiyun groups = "avb_mdio"; 172*4882a593Smuzhiyun drive-strength = <24>; 173*4882a593Smuzhiyun }; 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun pins_mii_tx { 176*4882a593Smuzhiyun pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", 177*4882a593Smuzhiyun "PIN_AVB_TD0", "PIN_AVB_TD1", "PIN_AVB_TD2", 178*4882a593Smuzhiyun "PIN_AVB_TD3"; 179*4882a593Smuzhiyun drive-strength = <12>; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun }; 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun keys_pins: keys { 184*4882a593Smuzhiyun pins = "GP_5_17", "GP_5_20", "GP_5_22", "GP_2_1"; 185*4882a593Smuzhiyun bias-pull-up; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun sdhi0_pins: sd0 { 189*4882a593Smuzhiyun groups = "sdhi0_data4", "sdhi0_ctrl"; 190*4882a593Smuzhiyun function = "sdhi0"; 191*4882a593Smuzhiyun power-source = <3300>; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun }; 194