1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*cb7aa33aSEmmanuel Vadot%YAML 1.2 3*cb7aa33aSEmmanuel Vadot--- 4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/starfive,jh7110-aon-pinctrl.yaml# 5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*cb7aa33aSEmmanuel Vadot 7*cb7aa33aSEmmanuel Vadottitle: StarFive JH7110 AON Pin Controller 8*cb7aa33aSEmmanuel Vadot 9*cb7aa33aSEmmanuel Vadotdescription: | 10*cb7aa33aSEmmanuel Vadot Bindings for the JH7110 RISC-V SoC from StarFive Technology Ltd. 11*cb7aa33aSEmmanuel Vadot 12*cb7aa33aSEmmanuel Vadot Out of the SoC's many pins only the ones named PAD_RGPIO0 to PAD_RGPIO3 13*cb7aa33aSEmmanuel Vadot can be multiplexed and have configurable bias, drive strength, 14*cb7aa33aSEmmanuel Vadot schmitt trigger etc. 15*cb7aa33aSEmmanuel Vadot Some peripherals such as PWM have their I/O go through the 4 "GPIOs". 16*cb7aa33aSEmmanuel Vadot 17*cb7aa33aSEmmanuel Vadotmaintainers: 18*cb7aa33aSEmmanuel Vadot - Jianlong Huang <jianlong.huang@starfivetech.com> 19*cb7aa33aSEmmanuel Vadot 20*cb7aa33aSEmmanuel Vadotproperties: 21*cb7aa33aSEmmanuel Vadot compatible: 22*cb7aa33aSEmmanuel Vadot const: starfive,jh7110-aon-pinctrl 23*cb7aa33aSEmmanuel Vadot 24*cb7aa33aSEmmanuel Vadot reg: 25*cb7aa33aSEmmanuel Vadot maxItems: 1 26*cb7aa33aSEmmanuel Vadot 27*cb7aa33aSEmmanuel Vadot resets: 28*cb7aa33aSEmmanuel Vadot maxItems: 1 29*cb7aa33aSEmmanuel Vadot 30*cb7aa33aSEmmanuel Vadot interrupts: 31*cb7aa33aSEmmanuel Vadot maxItems: 1 32*cb7aa33aSEmmanuel Vadot 33*cb7aa33aSEmmanuel Vadot interrupt-controller: true 34*cb7aa33aSEmmanuel Vadot 35*cb7aa33aSEmmanuel Vadot '#interrupt-cells': 36*cb7aa33aSEmmanuel Vadot const: 2 37*cb7aa33aSEmmanuel Vadot 38*cb7aa33aSEmmanuel Vadot gpio-controller: true 39*cb7aa33aSEmmanuel Vadot 40*cb7aa33aSEmmanuel Vadot '#gpio-cells': 41*cb7aa33aSEmmanuel Vadot const: 2 42*cb7aa33aSEmmanuel Vadot 43*cb7aa33aSEmmanuel VadotpatternProperties: 44*cb7aa33aSEmmanuel Vadot '-[0-9]+$': 45*cb7aa33aSEmmanuel Vadot type: object 46*cb7aa33aSEmmanuel Vadot additionalProperties: false 47*cb7aa33aSEmmanuel Vadot patternProperties: 48*cb7aa33aSEmmanuel Vadot '-pins$': 49*cb7aa33aSEmmanuel Vadot type: object 50*cb7aa33aSEmmanuel Vadot description: | 51*cb7aa33aSEmmanuel Vadot A pinctrl node should contain at least one subnode representing the 52*cb7aa33aSEmmanuel Vadot pinctrl groups available on the machine. Each subnode will list the 53*cb7aa33aSEmmanuel Vadot pins it needs, and how they should be configured, with regard to 54*cb7aa33aSEmmanuel Vadot muxer configuration, bias, input enable/disable, input schmitt 55*cb7aa33aSEmmanuel Vadot trigger enable/disable, slew-rate and drive strength. 56*cb7aa33aSEmmanuel Vadot allOf: 57*cb7aa33aSEmmanuel Vadot - $ref: /schemas/pinctrl/pincfg-node.yaml 58*cb7aa33aSEmmanuel Vadot - $ref: /schemas/pinctrl/pinmux-node.yaml 59*cb7aa33aSEmmanuel Vadot additionalProperties: false 60*cb7aa33aSEmmanuel Vadot 61*cb7aa33aSEmmanuel Vadot properties: 62*cb7aa33aSEmmanuel Vadot pinmux: 63*cb7aa33aSEmmanuel Vadot description: | 64*cb7aa33aSEmmanuel Vadot The list of GPIOs and their mux settings that properties in the 65*cb7aa33aSEmmanuel Vadot node apply to. This should be set using the GPIOMUX macro. 66*cb7aa33aSEmmanuel Vadot 67*cb7aa33aSEmmanuel Vadot bias-disable: true 68*cb7aa33aSEmmanuel Vadot 69*cb7aa33aSEmmanuel Vadot bias-pull-up: 70*cb7aa33aSEmmanuel Vadot type: boolean 71*cb7aa33aSEmmanuel Vadot 72*cb7aa33aSEmmanuel Vadot bias-pull-down: 73*cb7aa33aSEmmanuel Vadot type: boolean 74*cb7aa33aSEmmanuel Vadot 75*cb7aa33aSEmmanuel Vadot drive-strength: 76*cb7aa33aSEmmanuel Vadot enum: [ 2, 4, 8, 12 ] 77*cb7aa33aSEmmanuel Vadot 78*cb7aa33aSEmmanuel Vadot input-enable: true 79*cb7aa33aSEmmanuel Vadot 80*cb7aa33aSEmmanuel Vadot input-disable: true 81*cb7aa33aSEmmanuel Vadot 82*cb7aa33aSEmmanuel Vadot input-schmitt-enable: true 83*cb7aa33aSEmmanuel Vadot 84*cb7aa33aSEmmanuel Vadot input-schmitt-disable: true 85*cb7aa33aSEmmanuel Vadot 86*cb7aa33aSEmmanuel Vadot slew-rate: 87*cb7aa33aSEmmanuel Vadot maximum: 1 88*cb7aa33aSEmmanuel Vadot 89*cb7aa33aSEmmanuel Vadotrequired: 90*cb7aa33aSEmmanuel Vadot - compatible 91*cb7aa33aSEmmanuel Vadot - reg 92*cb7aa33aSEmmanuel Vadot - interrupts 93*cb7aa33aSEmmanuel Vadot - interrupt-controller 94*cb7aa33aSEmmanuel Vadot - '#interrupt-cells' 95*cb7aa33aSEmmanuel Vadot - gpio-controller 96*cb7aa33aSEmmanuel Vadot - '#gpio-cells' 97*cb7aa33aSEmmanuel Vadot 98*cb7aa33aSEmmanuel VadotadditionalProperties: false 99*cb7aa33aSEmmanuel Vadot 100*cb7aa33aSEmmanuel Vadotexamples: 101*cb7aa33aSEmmanuel Vadot - | 102*cb7aa33aSEmmanuel Vadot pinctrl@17020000 { 103*cb7aa33aSEmmanuel Vadot compatible = "starfive,jh7110-aon-pinctrl"; 104*cb7aa33aSEmmanuel Vadot reg = <0x17020000 0x10000>; 105*cb7aa33aSEmmanuel Vadot resets = <&aoncrg 2>; 106*cb7aa33aSEmmanuel Vadot interrupts = <85>; 107*cb7aa33aSEmmanuel Vadot interrupt-controller; 108*cb7aa33aSEmmanuel Vadot #interrupt-cells = <2>; 109*cb7aa33aSEmmanuel Vadot gpio-controller; 110*cb7aa33aSEmmanuel Vadot #gpio-cells = <2>; 111*cb7aa33aSEmmanuel Vadot 112*cb7aa33aSEmmanuel Vadot pwm-0 { 113*cb7aa33aSEmmanuel Vadot pwm-pins { 114*cb7aa33aSEmmanuel Vadot pinmux = <0xff030802>; 115*cb7aa33aSEmmanuel Vadot bias-disable; 116*cb7aa33aSEmmanuel Vadot drive-strength = <12>; 117*cb7aa33aSEmmanuel Vadot input-disable; 118*cb7aa33aSEmmanuel Vadot input-schmitt-disable; 119*cb7aa33aSEmmanuel Vadot slew-rate = <0>; 120*cb7aa33aSEmmanuel Vadot }; 121*cb7aa33aSEmmanuel Vadot }; 122*cb7aa33aSEmmanuel Vadot }; 123*cb7aa33aSEmmanuel Vadot 124*cb7aa33aSEmmanuel Vadot... 125