18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/renesas,pfc.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Renesas Pin Function Controller (GPIO and Pin Mux/Config) 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Geert Uytterhoeven <geert+renesas@glider.be> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: 138c2ecf20Sopenharmony_ci The Pin Function Controller (PFC) is a Pin Mux/Config controller. 148c2ecf20Sopenharmony_ci On SH/R-Mobile SoCs it also acts as a GPIO controller. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciproperties: 178c2ecf20Sopenharmony_ci compatible: 188c2ecf20Sopenharmony_ci enum: 198c2ecf20Sopenharmony_ci - renesas,pfc-emev2 # EMMA Mobile EV2 208c2ecf20Sopenharmony_ci - renesas,pfc-r8a73a4 # R-Mobile APE6 218c2ecf20Sopenharmony_ci - renesas,pfc-r8a7740 # R-Mobile A1 228c2ecf20Sopenharmony_ci - renesas,pfc-r8a7742 # RZ/G1H 238c2ecf20Sopenharmony_ci - renesas,pfc-r8a7743 # RZ/G1M 248c2ecf20Sopenharmony_ci - renesas,pfc-r8a7744 # RZ/G1N 258c2ecf20Sopenharmony_ci - renesas,pfc-r8a7745 # RZ/G1E 268c2ecf20Sopenharmony_ci - renesas,pfc-r8a77470 # RZ/G1C 278c2ecf20Sopenharmony_ci - renesas,pfc-r8a774a1 # RZ/G2M 288c2ecf20Sopenharmony_ci - renesas,pfc-r8a774b1 # RZ/G2N 298c2ecf20Sopenharmony_ci - renesas,pfc-r8a774c0 # RZ/G2E 308c2ecf20Sopenharmony_ci - renesas,pfc-r8a774e1 # RZ/G2H 318c2ecf20Sopenharmony_ci - renesas,pfc-r8a7778 # R-Car M1 328c2ecf20Sopenharmony_ci - renesas,pfc-r8a7779 # R-Car H1 338c2ecf20Sopenharmony_ci - renesas,pfc-r8a7790 # R-Car H2 348c2ecf20Sopenharmony_ci - renesas,pfc-r8a7791 # R-Car M2-W 358c2ecf20Sopenharmony_ci - renesas,pfc-r8a7792 # R-Car V2H 368c2ecf20Sopenharmony_ci - renesas,pfc-r8a7793 # R-Car M2-N 378c2ecf20Sopenharmony_ci - renesas,pfc-r8a7794 # R-Car E2 388c2ecf20Sopenharmony_ci - renesas,pfc-r8a7795 # R-Car H3 398c2ecf20Sopenharmony_ci - renesas,pfc-r8a7796 # R-Car M3-W 408c2ecf20Sopenharmony_ci - renesas,pfc-r8a77961 # R-Car M3-W+ 418c2ecf20Sopenharmony_ci - renesas,pfc-r8a77965 # R-Car M3-N 428c2ecf20Sopenharmony_ci - renesas,pfc-r8a77970 # R-Car V3M 438c2ecf20Sopenharmony_ci - renesas,pfc-r8a77980 # R-Car V3H 448c2ecf20Sopenharmony_ci - renesas,pfc-r8a77990 # R-Car E3 458c2ecf20Sopenharmony_ci - renesas,pfc-r8a77995 # R-Car D3 468c2ecf20Sopenharmony_ci - renesas,pfc-sh73a0 # SH-Mobile AG5 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci reg: 498c2ecf20Sopenharmony_ci minItems: 1 508c2ecf20Sopenharmony_ci maxItems: 2 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci gpio-controller: true 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci '#gpio-cells': 558c2ecf20Sopenharmony_ci const: 2 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci gpio-ranges: 588c2ecf20Sopenharmony_ci minItems: 1 598c2ecf20Sopenharmony_ci maxItems: 16 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci interrupts-extended: 628c2ecf20Sopenharmony_ci minItems: 32 638c2ecf20Sopenharmony_ci maxItems: 64 648c2ecf20Sopenharmony_ci description: 658c2ecf20Sopenharmony_ci Specify the interrupts associated with external IRQ pins on SoCs where 668c2ecf20Sopenharmony_ci the PFC acts as a GPIO controller. It must contain one interrupt per 678c2ecf20Sopenharmony_ci external IRQ, sorted by external IRQ number. 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci power-domains: 708c2ecf20Sopenharmony_ci maxItems: 1 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_cirequired: 738c2ecf20Sopenharmony_ci - compatible 748c2ecf20Sopenharmony_ci - reg 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciif: 778c2ecf20Sopenharmony_ci properties: 788c2ecf20Sopenharmony_ci compatible: 798c2ecf20Sopenharmony_ci items: 808c2ecf20Sopenharmony_ci enum: 818c2ecf20Sopenharmony_ci - renesas,pfc-r8a73a4 828c2ecf20Sopenharmony_ci - renesas,pfc-r8a7740 838c2ecf20Sopenharmony_ci - renesas,pfc-sh73a0 848c2ecf20Sopenharmony_cithen: 858c2ecf20Sopenharmony_ci required: 868c2ecf20Sopenharmony_ci - interrupts-extended 878c2ecf20Sopenharmony_ci - gpio-controller 888c2ecf20Sopenharmony_ci - '#gpio-cells' 898c2ecf20Sopenharmony_ci - gpio-ranges 908c2ecf20Sopenharmony_ci - power-domains 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ciadditionalProperties: 938c2ecf20Sopenharmony_ci anyOf: 948c2ecf20Sopenharmony_ci - type: object 958c2ecf20Sopenharmony_ci allOf: 968c2ecf20Sopenharmony_ci - $ref: pincfg-node.yaml# 978c2ecf20Sopenharmony_ci - $ref: pinmux-node.yaml# 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci description: 1008c2ecf20Sopenharmony_ci Pin controller client devices use pin configuration subnodes (children 1018c2ecf20Sopenharmony_ci and grandchildren) for desired pin configuration. 1028c2ecf20Sopenharmony_ci Client device subnodes use below standard properties. 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci properties: 1058c2ecf20Sopenharmony_ci phandle: true 1068c2ecf20Sopenharmony_ci function: true 1078c2ecf20Sopenharmony_ci groups: true 1088c2ecf20Sopenharmony_ci pins: true 1098c2ecf20Sopenharmony_ci bias-disable: true 1108c2ecf20Sopenharmony_ci bias-pull-down: true 1118c2ecf20Sopenharmony_ci bias-pull-up: true 1128c2ecf20Sopenharmony_ci drive-strength: 1138c2ecf20Sopenharmony_ci enum: [ 3, 6, 9, 12, 15, 18, 21, 24 ] # Superset of supported values 1148c2ecf20Sopenharmony_ci power-source: 1158c2ecf20Sopenharmony_ci enum: [ 1800, 3300 ] 1168c2ecf20Sopenharmony_ci gpio-hog: true 1178c2ecf20Sopenharmony_ci gpios: true 1188c2ecf20Sopenharmony_ci input: true 1198c2ecf20Sopenharmony_ci output-high: true 1208c2ecf20Sopenharmony_ci output-low: true 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci additionalProperties: false 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_ci - type: object 1258c2ecf20Sopenharmony_ci properties: 1268c2ecf20Sopenharmony_ci phandle: true 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci additionalProperties: 1298c2ecf20Sopenharmony_ci $ref: "#/additionalProperties/anyOf/0" 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ciexamples: 1328c2ecf20Sopenharmony_ci - | 1338c2ecf20Sopenharmony_ci pfc: pinctrl@e6050000 { 1348c2ecf20Sopenharmony_ci compatible = "renesas,pfc-r8a7740"; 1358c2ecf20Sopenharmony_ci reg = <0xe6050000 0x8000>, 1368c2ecf20Sopenharmony_ci <0xe605800c 0x20>; 1378c2ecf20Sopenharmony_ci gpio-controller; 1388c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1398c2ecf20Sopenharmony_ci gpio-ranges = <&pfc 0 0 212>; 1408c2ecf20Sopenharmony_ci interrupts-extended = 1418c2ecf20Sopenharmony_ci <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>, 1428c2ecf20Sopenharmony_ci <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>, 1438c2ecf20Sopenharmony_ci <&irqpin1 0 0>, <&irqpin1 1 0>, <&irqpin1 2 0>, <&irqpin1 3 0>, 1448c2ecf20Sopenharmony_ci <&irqpin1 4 0>, <&irqpin1 5 0>, <&irqpin1 6 0>, <&irqpin1 7 0>, 1458c2ecf20Sopenharmony_ci <&irqpin2 0 0>, <&irqpin2 1 0>, <&irqpin2 2 0>, <&irqpin2 3 0>, 1468c2ecf20Sopenharmony_ci <&irqpin2 4 0>, <&irqpin2 5 0>, <&irqpin2 6 0>, <&irqpin2 7 0>, 1478c2ecf20Sopenharmony_ci <&irqpin3 0 0>, <&irqpin3 1 0>, <&irqpin3 2 0>, <&irqpin3 3 0>, 1488c2ecf20Sopenharmony_ci <&irqpin3 4 0>, <&irqpin3 5 0>, <&irqpin3 6 0>, <&irqpin3 7 0>; 1498c2ecf20Sopenharmony_ci power-domains = <&pd_c5>; 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci lcd0-mux-hog { 1528c2ecf20Sopenharmony_ci /* DBGMD/LCDC0/FSIA MUX */ 1538c2ecf20Sopenharmony_ci gpio-hog; 1548c2ecf20Sopenharmony_ci gpios = <176 0>; 1558c2ecf20Sopenharmony_ci output-high; 1568c2ecf20Sopenharmony_ci }; 1578c2ecf20Sopenharmony_ci }; 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci - | 1608c2ecf20Sopenharmony_ci pinctrl@e6060000 { 1618c2ecf20Sopenharmony_ci compatible = "renesas,pfc-r8a7795"; 1628c2ecf20Sopenharmony_ci reg = <0xe6060000 0x50c>; 1638c2ecf20Sopenharmony_ci 1648c2ecf20Sopenharmony_ci avb_pins: avb { 1658c2ecf20Sopenharmony_ci mux { 1668c2ecf20Sopenharmony_ci groups = "avb_link", "avb_mdio", "avb_mii"; 1678c2ecf20Sopenharmony_ci function = "avb"; 1688c2ecf20Sopenharmony_ci }; 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci pins_mdio { 1718c2ecf20Sopenharmony_ci groups = "avb_mdio"; 1728c2ecf20Sopenharmony_ci drive-strength = <24>; 1738c2ecf20Sopenharmony_ci }; 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci pins_mii_tx { 1768c2ecf20Sopenharmony_ci pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", 1778c2ecf20Sopenharmony_ci "PIN_AVB_TD0", "PIN_AVB_TD1", "PIN_AVB_TD2", 1788c2ecf20Sopenharmony_ci "PIN_AVB_TD3"; 1798c2ecf20Sopenharmony_ci drive-strength = <12>; 1808c2ecf20Sopenharmony_ci }; 1818c2ecf20Sopenharmony_ci }; 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ci keys_pins: keys { 1848c2ecf20Sopenharmony_ci pins = "GP_5_17", "GP_5_20", "GP_5_22", "GP_2_1"; 1858c2ecf20Sopenharmony_ci bias-pull-up; 1868c2ecf20Sopenharmony_ci }; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci sdhi0_pins: sd0 { 1898c2ecf20Sopenharmony_ci groups = "sdhi0_data4", "sdhi0_ctrl"; 1908c2ecf20Sopenharmony_ci function = "sdhi0"; 1918c2ecf20Sopenharmony_ci power-source = <3300>; 1928c2ecf20Sopenharmony_ci }; 1938c2ecf20Sopenharmony_ci }; 194