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

nvidia,tegra20-usb-phy.yaml (8974B)


      1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/phy/nvidia,tegra20-usb-phy.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: NVIDIA Tegra USB PHY
      8
      9maintainers:
     10  - Dmitry Osipenko <digetx@gmail.com>
     11  - Jon Hunter <jonathanh@nvidia.com>
     12  - Thierry Reding <thierry.reding@gmail.com>
     13
     14properties:
     15  compatible:
     16    oneOf:
     17      - items:
     18          - enum:
     19              - nvidia,tegra124-usb-phy
     20              - nvidia,tegra114-usb-phy
     21          - enum:
     22              - nvidia,tegra30-usb-phy
     23      - items:
     24          - enum:
     25              - nvidia,tegra30-usb-phy
     26              - nvidia,tegra20-usb-phy
     27
     28  reg:
     29    minItems: 1
     30    maxItems: 2
     31    description: |
     32      PHY0 and PHY2 share power and ground, PHY0 contains shared registers.
     33      PHY0 and PHY2 must specify two register sets, where the first set is
     34      PHY own registers and the second set is the PHY0 registers.
     35
     36  clocks:
     37    anyOf:
     38      - items:
     39          - description: Registers clock
     40          - description: Main PHY clock
     41
     42      - items:
     43          - description: Registers clock
     44          - description: Main PHY clock
     45          - description: ULPI PHY clock
     46
     47      - items:
     48          - description: Registers clock
     49          - description: Main PHY clock
     50          - description: UTMI pads control registers clock
     51
     52      - items:
     53          - description: Registers clock
     54          - description: Main PHY clock
     55          - description: UTMI timeout clock
     56          - description: UTMI pads control registers clock
     57
     58  clock-names:
     59    oneOf:
     60      - items:
     61          - const: reg
     62          - const: pll_u
     63
     64      - items:
     65          - const: reg
     66          - const: pll_u
     67          - const: ulpi-link
     68
     69      - items:
     70          - const: reg
     71          - const: pll_u
     72          - const: utmi-pads
     73
     74      - items:
     75          - const: reg
     76          - const: pll_u
     77          - const: timer
     78          - const: utmi-pads
     79
     80  interrupts:
     81    maxItems: 1
     82
     83  resets:
     84    oneOf:
     85      - maxItems: 1
     86        description: PHY reset
     87
     88      - items:
     89          - description: PHY reset
     90          - description: UTMI pads reset
     91
     92  reset-names:
     93    oneOf:
     94      - const: usb
     95
     96      - items:
     97          - const: usb
     98          - const: utmi-pads
     99
    100  "#phy-cells":
    101    const: 0
    102
    103  phy_type:
    104    $ref: /schemas/types.yaml#/definitions/string
    105    enum: [utmi, ulpi, hsic]
    106
    107  dr_mode:
    108    $ref: /schemas/types.yaml#/definitions/string
    109    enum: [host, peripheral, otg]
    110    default: host
    111
    112  vbus-supply:
    113    description: Regulator controlling USB VBUS.
    114
    115  nvidia,has-legacy-mode:
    116    description: |
    117      Indicates whether this controller can operate in legacy mode
    118      (as APX 2500 / 2600). In legacy mode some registers are accessed
    119      through the APB_MISC base address instead of the USB controller.
    120    type: boolean
    121
    122  nvidia,is-wired:
    123    description: |
    124      Indicates whether we can do certain kind of power optimizations for
    125      the devices that are always connected. e.g. modem.
    126    type: boolean
    127
    128  nvidia,has-utmi-pad-registers:
    129    description: |
    130      Indicates whether this controller contains the UTMI pad control
    131      registers common to all USB controllers.
    132    type: boolean
    133
    134  nvidia,hssync-start-delay:
    135    $ref: /schemas/types.yaml#/definitions/uint32
    136    minimum: 0
    137    maximum: 31
    138    description: |
    139      Number of 480 MHz clock cycles to wait before start of sync launches
    140      RxActive.
    141
    142  nvidia,elastic-limit:
    143    $ref: /schemas/types.yaml#/definitions/uint32
    144    minimum: 0
    145    maximum: 31
    146    description: Variable FIFO Depth of elastic input store.
    147
    148  nvidia,idle-wait-delay:
    149    $ref: /schemas/types.yaml#/definitions/uint32
    150    minimum: 0
    151    maximum: 31
    152    description: |
    153      Number of 480 MHz clock cycles of idle to wait before declare IDLE.
    154
    155  nvidia,term-range-adj:
    156    $ref: /schemas/types.yaml#/definitions/uint32
    157    minimum: 0
    158    maximum: 15
    159    description: Range adjustment on terminations.
    160
    161  nvidia,xcvr-setup:
    162    $ref: /schemas/types.yaml#/definitions/uint32
    163    minimum: 0
    164    maximum: 127
    165    description: Input of XCVR cell, HS driver output control.
    166
    167  nvidia,xcvr-setup-use-fuses:
    168    description: Indicates that the value is read from the on-chip fuses.
    169    type: boolean
    170
    171  nvidia,xcvr-lsfslew:
    172    $ref: /schemas/types.yaml#/definitions/uint32
    173    minimum: 0
    174    maximum: 3
    175    description: LS falling slew rate control.
    176
    177  nvidia,xcvr-lsrslew:
    178    $ref: /schemas/types.yaml#/definitions/uint32
    179    minimum: 0
    180    maximum: 3
    181    description: LS rising slew rate control.
    182
    183  nvidia,xcvr-hsslew:
    184    $ref: /schemas/types.yaml#/definitions/uint32
    185    minimum: 0
    186    maximum: 511
    187    description: HS slew rate control.
    188
    189  nvidia,hssquelch-level:
    190    $ref: /schemas/types.yaml#/definitions/uint32
    191    minimum: 0
    192    maximum: 3
    193    description: HS squelch detector level.
    194
    195  nvidia,hsdiscon-level:
    196    $ref: /schemas/types.yaml#/definitions/uint32
    197    minimum: 0
    198    maximum: 7
    199    description: HS disconnect detector level.
    200
    201  nvidia,phy-reset-gpio:
    202    maxItems: 1
    203    description: GPIO used to reset the PHY.
    204
    205  nvidia,pmc:
    206    $ref: /schemas/types.yaml#/definitions/phandle-array
    207    items:
    208      - items:
    209          - description: Phandle to Power Management controller.
    210          - description: USB controller ID.
    211    description:
    212      Phandle to Power Management controller.
    213
    214required:
    215  - compatible
    216  - reg
    217  - clocks
    218  - clock-names
    219  - resets
    220  - reset-names
    221  - "#phy-cells"
    222  - phy_type
    223
    224additionalProperties: false
    225
    226allOf:
    227  - if:
    228      properties:
    229        phy_type:
    230          const: utmi
    231
    232    then:
    233      properties:
    234        reg:
    235          minItems: 2
    236          maxItems: 2
    237
    238        resets:
    239          maxItems: 2
    240
    241        reset-names:
    242          maxItems: 2
    243
    244      required:
    245        - nvidia,hssync-start-delay
    246        - nvidia,elastic-limit
    247        - nvidia,idle-wait-delay
    248        - nvidia,term-range-adj
    249        - nvidia,xcvr-lsfslew
    250        - nvidia,xcvr-lsrslew
    251
    252      anyOf:
    253        - required: ["nvidia,xcvr-setup"]
    254        - required: ["nvidia,xcvr-setup-use-fuses"]
    255
    256      if:
    257        properties:
    258          compatible:
    259            contains:
    260              const: nvidia,tegra30-usb-phy
    261
    262      then:
    263        properties:
    264          clocks:
    265            maxItems: 3
    266
    267          clock-names:
    268            items:
    269              - const: reg
    270              - const: pll_u
    271              - const: utmi-pads
    272
    273        required:
    274          - nvidia,xcvr-hsslew
    275          - nvidia,hssquelch-level
    276          - nvidia,hsdiscon-level
    277
    278      else:
    279        properties:
    280          clocks:
    281            maxItems: 4
    282
    283          clock-names:
    284            items:
    285              - const: reg
    286              - const: pll_u
    287              - const: timer
    288              - const: utmi-pads
    289
    290  - if:
    291      properties:
    292        phy_type:
    293          const: ulpi
    294
    295    then:
    296      properties:
    297        reg:
    298          minItems: 1
    299          maxItems: 1
    300
    301        clocks:
    302          minItems: 2
    303          maxItems: 3
    304
    305        clock-names:
    306          minItems: 2
    307          maxItems: 3
    308
    309          oneOf:
    310            - items:
    311                - const: reg
    312                - const: pll_u
    313
    314            - items:
    315                - const: reg
    316                - const: pll_u
    317                - const: ulpi-link
    318
    319        resets:
    320          minItems: 1
    321          maxItems: 2
    322
    323        reset-names:
    324          minItems: 1
    325          maxItems: 2
    326
    327examples:
    328  - |
    329    #include <dt-bindings/clock/tegra124-car.h>
    330
    331    usb-phy@7d008000 {
    332        compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
    333        reg = <0x7d008000 0x4000>,
    334              <0x7d000000 0x4000>;
    335        interrupts = <0 97 4>;
    336        phy_type = "utmi";
    337        clocks = <&tegra_car TEGRA124_CLK_USB3>,
    338                 <&tegra_car TEGRA124_CLK_PLL_U>,
    339                 <&tegra_car TEGRA124_CLK_USBD>;
    340        clock-names = "reg", "pll_u", "utmi-pads";
    341        resets = <&tegra_car 59>, <&tegra_car 22>;
    342        reset-names = "usb", "utmi-pads";
    343        #phy-cells = <0>;
    344        nvidia,hssync-start-delay = <0>;
    345        nvidia,idle-wait-delay = <17>;
    346        nvidia,elastic-limit = <16>;
    347        nvidia,term-range-adj = <6>;
    348        nvidia,xcvr-setup = <9>;
    349        nvidia,xcvr-lsfslew = <0>;
    350        nvidia,xcvr-lsrslew = <3>;
    351        nvidia,hssquelch-level = <2>;
    352        nvidia,hsdiscon-level = <5>;
    353        nvidia,xcvr-hsslew = <12>;
    354        nvidia,pmc = <&tegra_pmc 2>;
    355    };
    356
    357  - |
    358    #include <dt-bindings/clock/tegra20-car.h>
    359
    360    usb-phy@c5004000 {
    361        compatible = "nvidia,tegra20-usb-phy";
    362        reg = <0xc5004000 0x4000>;
    363        interrupts = <0 21 4>;
    364        phy_type = "ulpi";
    365        clocks = <&tegra_car TEGRA20_CLK_USB2>,
    366                 <&tegra_car TEGRA20_CLK_PLL_U>,
    367                 <&tegra_car TEGRA20_CLK_CDEV2>;
    368        clock-names = "reg", "pll_u", "ulpi-link";
    369        resets = <&tegra_car 58>, <&tegra_car 22>;
    370        reset-names = "usb", "utmi-pads";
    371        #phy-cells = <0>;
    372        nvidia,pmc = <&tegra_pmc 1>;
    373    };