The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/pinctrl/canaan,k210-fpioa.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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 Device Tree Bindings
    8 
    9 maintainers:
   10   - Damien Le Moal <damien.lemoal@wdc.com>
   11 
   12 description:
   13   The Canaan Kendryte K210 SoC Fully Programmable IO Array (FPIOA)
   14   controller allows assiging 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     };

Cache object: bf6d60bd01f01e0820eb495cfcb86aa7


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.