143 lines · yaml
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause2%YAML 1.23---4$id: http://devicetree.org/schemas/pinctrl/starfive,jh7110-sys-pinctrl.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: StarFive JH7110 SYS Pin Controller8 9description: |10 Bindings for the JH7110 RISC-V SoC from StarFive Technology Ltd.11 12 Out of the SoC's many pins only the ones named PAD_GPIO0 to PAD_GPIO6313 can be multiplexed and have configurable bias, drive strength,14 schmitt trigger etc.15 Some peripherals have their I/O go through the 64 "GPIOs". This also16 includes a number of other UARTs, I2Cs, SPIs, PWMs etc.17 All these peripherals are connected to all 64 GPIOs such that18 any GPIO can be set up to be controlled by any of the peripherals.19 20maintainers:21 - Jianlong Huang <jianlong.huang@starfivetech.com>22 23properties:24 compatible:25 const: starfive,jh7110-sys-pinctrl26 27 reg:28 maxItems: 129 30 clocks:31 maxItems: 132 33 resets:34 maxItems: 135 36 interrupts:37 maxItems: 138 39 interrupt-controller: true40 41 '#interrupt-cells':42 const: 243 44 gpio-controller: true45 46 '#gpio-cells':47 const: 248 49patternProperties:50 '-[0-9]+$':51 type: object52 additionalProperties: false53 patternProperties:54 '-pins$':55 type: object56 description: |57 A pinctrl node should contain at least one subnode representing the58 pinctrl groups available on the machine. Each subnode will list the59 pins it needs, and how they should be configured, with regard to60 muxer configuration, bias, input enable/disable, input schmitt61 trigger enable/disable, slew-rate and drive strength.62 allOf:63 - $ref: /schemas/pinctrl/pincfg-node.yaml64 - $ref: /schemas/pinctrl/pinmux-node.yaml65 additionalProperties: false66 67 properties:68 pinmux:69 description: |70 The list of GPIOs and their mux settings that properties in the71 node apply to. This should be set using the GPIOMUX or PINMUX72 macros.73 74 bias-disable: true75 76 bias-pull-up:77 type: boolean78 79 bias-pull-down:80 type: boolean81 82 drive-strength:83 enum: [ 2, 4, 8, 12 ]84 85 input-enable: true86 87 input-disable: true88 89 input-schmitt-enable: true90 91 input-schmitt-disable: true92 93 slew-rate:94 maximum: 195 96required:97 - compatible98 - reg99 - clocks100 - interrupts101 - interrupt-controller102 - '#interrupt-cells'103 - gpio-controller104 - '#gpio-cells'105 106additionalProperties: false107 108examples:109 - |110 pinctrl@13040000 {111 compatible = "starfive,jh7110-sys-pinctrl";112 reg = <0x13040000 0x10000>;113 clocks = <&syscrg 112>;114 resets = <&syscrg 2>;115 interrupts = <86>;116 interrupt-controller;117 #interrupt-cells = <2>;118 gpio-controller;119 #gpio-cells = <2>;120 121 uart0-0 {122 tx-pins {123 pinmux = <0xff140005>;124 bias-disable;125 drive-strength = <12>;126 input-disable;127 input-schmitt-disable;128 slew-rate = <0>;129 };130 131 rx-pins {132 pinmux = <0x0E000406>;133 bias-pull-up;134 drive-strength = <2>;135 input-enable;136 input-schmitt-enable;137 slew-rate = <0>;138 };139 };140 };141 142...143