cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

canaan,k210-fpioa.yaml (5155B)


      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
      7title: Canaan Kendryte K210 FPIOA Device Tree Bindings
      8
      9maintainers:
     10  - Damien Le Moal <damien.lemoal@wdc.com>
     11
     12description:
     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
     18properties:
     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
     50patternProperties:
     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
    146allOf:
    147  - $ref: "pinctrl.yaml#"
    148
    149required:
    150  - compatible
    151  - reg
    152  - clocks
    153  - canaan,k210-sysctl-power
    154
    155additionalProperties: false
    156
    157examples:
    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    };