~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/pinctrl/canaan,k210-fpioa.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Canaan Kendryte K210 FPIOA
  8 
  9 maintainers:
 10   - Damien Le Moal <dlemoal@kernel.org>
 11 
 12 description:
 13   The Canaan Kendryte K210 SoC Fully Programmable IO Array (FPIOA)
 14   controller allows assigning any of 256 possible functions to any of
 15   48 IO pins of the SoC. Pin function configuration is performed on
 16   a per-pin basis.
 17 
 18 properties:
 19   compatible:
 20     const: canaan,k210-fpioa
 21 
 22   reg:
 23     maxItems: 1
 24     description:
 25       Address and length of the register set for the FPIOA controller.
 26 
 27   clocks:
 28     items:
 29       - description: Controller reference clock source
 30       - description: APB interface clock source
 31 
 32   clock-names:
 33     items:
 34       - const: ref
 35       - const: pclk
 36 
 37   resets:
 38     maxItems: 1
 39 
 40   canaan,k210-sysctl-power:
 41     $ref: /schemas/types.yaml#/definitions/phandle-array
 42     items:
 43       - items:
 44           - description: phandle of the K210 system controller node
 45           - description: offset of its power domain control register
 46     description: |
 47       phandle of the K210 system controller node and offset of its
 48       power domain control register.
 49 
 50 patternProperties:
 51   '-pinmux$':
 52     type: object
 53     $ref: /schemas/pinctrl/pinmux-node.yaml
 54     description:
 55       FPIOA client devices use sub-nodes to define the desired pin
 56       configuration. Client device sub-nodes use the pinux property
 57       below.
 58 
 59     properties:
 60       pinmux:
 61         description:
 62           List of IO pins alternate functions. The values for each IO
 63           pin is a combination of an IO pin number (0 to 47) with the
 64           desired function for the IO pin. Functions are defined as
 65           macros in include/dt-bindings/pinctrl/k210-fpioa.h.
 66           The K210_FPIOA(IO pin, function) macro is provided to
 67           facilitate the combination of IO pin numbers and functions.
 68 
 69     required:
 70       - pinmux
 71 
 72     additionalProperties: false
 73 
 74   '-pins$':
 75     type: object
 76     $ref: /schemas/pinctrl/pincfg-node.yaml
 77     description:
 78       FPIOA client devices use sub-nodes to define the desired
 79       configuration of pins. Client device sub-nodes use the
 80       properties below.
 81 
 82     properties:
 83       pins:
 84         description:
 85           List of IO pins affected by the properties specified in this
 86           subnode. IO pins are identified using the pin names "IO_xx".
 87           Pin configuration nodes can also define the power domain to
 88           be used for the SoC pin groups A0 (IO pins 0-5),
 89           A1 (IO pins 6-11), A2 (IO pins 12-17), B0 (IO pins 18-23),
 90           B1 (IO pins 24-29), B2 (IO pins 30-35), B3 (IO pins 30-35),
 91           C0 (IO pins 36-41) and C1 (IO pins 42-47) using the
 92           power-source property.
 93         items:
 94           anyOf:
 95             - pattern: "^(IO_([0-9]*))|(A[0-2])|(B[3-5])|(C[6-7])$"
 96             - enum: [ IO_0, IO_1, IO_2, IO_3, IO_4, IO_5, IO_6, IO_7,
 97                       IO_8, IO_9, IO_10, IO_11, IO_12, IO_13, IO_14,
 98                       IO_15, IO_16, IO_17, IO_18, IO_19, IO_20, IO_21,
 99                       IO_22, IO_23, IO_24, IO_25, IO_26, IO_27, IO_28,
100                       IO_29, IO_30, IO_31, IO_32, IO_33, IO_34, IO_35,
101                       IO_36, IO_37, IO_38, IO_39, IO_40, IO_41, IO_42,
102                       IO_43, IO_44, IO_45, IO_46, IO_47,
103                       A0, A1, A2, B3, B4, B5, C6, C7 ]
104       bias-disable: true
105 
106       bias-pull-down: true
107 
108       bias-pull-up: true
109 
110       drive-strength: true
111 
112       drive-strength-microamp: true
113 
114       input-enable: true
115 
116       input-disable: true
117 
118       input-schmitt-enable: true
119 
120       input-schmitt-disable: true
121 
122       input-polarity-invert:
123         type: boolean
124         description:
125           Enable or disable pin input polarity inversion.
126 
127       output-enable: true
128 
129       output-disable: true
130 
131       output-high: true
132 
133       output-low: true
134 
135       output-polarity-invert:
136         type: boolean
137         description:
138           Enable or disable pin output polarity inversion.
139 
140       slew-rate: true
141 
142       power-source: true
143 
144     additionalProperties: false
145 
146 allOf:
147   - $ref: pinctrl.yaml#
148 
149 required:
150   - compatible
151   - reg
152   - clocks
153   - canaan,k210-sysctl-power
154 
155 additionalProperties: false
156 
157 examples:
158   - |
159     #include <dt-bindings/pinctrl/k210-fpioa.h>
160     #include <dt-bindings/clock/k210-clk.h>
161     #include <dt-bindings/reset/k210-rst.h>
162 
163     fpioa: pinmux@502b0000 {
164       compatible = "canaan,k210-fpioa";
165       reg = <0x502b0000 0x100>;
166       clocks = <&sysclk K210_CLK_FPIOA>,
167                <&sysclk K210_CLK_APB0>;
168       clock-names = "ref", "pclk";
169       resets = <&sysrst K210_RST_FPIOA>;
170       canaan,k210-sysctl-power = <&sysctl 108>;
171       pinctrl-0 = <&jtag_pinctrl>;
172       pinctrl-names = "default";
173 
174       jtag_pinctrl: jtag-pinmux {
175         pinmux = <K210_FPIOA(0, K210_PCF_JTAG_TCLK)>,
176                  <K210_FPIOA(1, K210_PCF_JTAG_TDI)>,
177                  <K210_FPIOA(2, K210_PCF_JTAG_TMS)>,
178                  <K210_FPIOA(3, K210_PCF_JTAG_TDO)>;
179       };
180     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php