xref: /freebsd/sys/contrib/device-tree/Bindings/ata/nvidia,tegra-ahci.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
22eb4d8dcSEmmanuel Vadot%YAML 1.2
32eb4d8dcSEmmanuel Vadot---
42eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/ata/nvidia,tegra-ahci.yaml#
52eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
62eb4d8dcSEmmanuel Vadot
72eb4d8dcSEmmanuel Vadottitle: Tegra AHCI SATA Controller
82eb4d8dcSEmmanuel Vadot
92eb4d8dcSEmmanuel Vadotmaintainers:
102eb4d8dcSEmmanuel Vadot  - Thierry Reding <thierry.reding@gmail.com>
112eb4d8dcSEmmanuel Vadot  - Jonathan Hunter <jonathanh@nvidia.com>
122eb4d8dcSEmmanuel Vadot
132eb4d8dcSEmmanuel Vadotproperties:
142eb4d8dcSEmmanuel Vadot  compatible:
152eb4d8dcSEmmanuel Vadot    enum:
162eb4d8dcSEmmanuel Vadot      - nvidia,tegra124-ahci
172eb4d8dcSEmmanuel Vadot      - nvidia,tegra132-ahci
182eb4d8dcSEmmanuel Vadot      - nvidia,tegra210-ahci
192eb4d8dcSEmmanuel Vadot      - nvidia,tegra186-ahci
202eb4d8dcSEmmanuel Vadot
212eb4d8dcSEmmanuel Vadot  reg:
222eb4d8dcSEmmanuel Vadot    minItems: 2
232eb4d8dcSEmmanuel Vadot    items:
242eb4d8dcSEmmanuel Vadot      - description: AHCI registers
252eb4d8dcSEmmanuel Vadot      - description: SATA configuration and IPFS registers
262eb4d8dcSEmmanuel Vadot      - description: SATA AUX registers
272eb4d8dcSEmmanuel Vadot
282eb4d8dcSEmmanuel Vadot  interrupts:
292eb4d8dcSEmmanuel Vadot    maxItems: 1
302eb4d8dcSEmmanuel Vadot
312eb4d8dcSEmmanuel Vadot  clock-names:
322eb4d8dcSEmmanuel Vadot    items:
332eb4d8dcSEmmanuel Vadot      - const: sata
342eb4d8dcSEmmanuel Vadot      - const: sata-oob
352eb4d8dcSEmmanuel Vadot
362eb4d8dcSEmmanuel Vadot  clocks:
372eb4d8dcSEmmanuel Vadot    maxItems: 2
382eb4d8dcSEmmanuel Vadot
392eb4d8dcSEmmanuel Vadot  reset-names:
402eb4d8dcSEmmanuel Vadot    minItems: 2
412eb4d8dcSEmmanuel Vadot    items:
422eb4d8dcSEmmanuel Vadot      - const: sata
432eb4d8dcSEmmanuel Vadot      - const: sata-cold
442eb4d8dcSEmmanuel Vadot      - const: sata-oob
452eb4d8dcSEmmanuel Vadot
462eb4d8dcSEmmanuel Vadot  resets:
472eb4d8dcSEmmanuel Vadot    minItems: 2
482eb4d8dcSEmmanuel Vadot    maxItems: 3
492eb4d8dcSEmmanuel Vadot
502eb4d8dcSEmmanuel Vadot  iommus:
512eb4d8dcSEmmanuel Vadot    maxItems: 1
522eb4d8dcSEmmanuel Vadot
532eb4d8dcSEmmanuel Vadot  interconnect-names:
542eb4d8dcSEmmanuel Vadot    items:
552eb4d8dcSEmmanuel Vadot      - const: dma-mem
562eb4d8dcSEmmanuel Vadot      - const: write
572eb4d8dcSEmmanuel Vadot
582eb4d8dcSEmmanuel Vadot  interconnects:
592eb4d8dcSEmmanuel Vadot    maxItems: 2
602eb4d8dcSEmmanuel Vadot
612eb4d8dcSEmmanuel Vadot  power-domains:
622eb4d8dcSEmmanuel Vadot    items:
632eb4d8dcSEmmanuel Vadot      - description: SAX power-domain
642eb4d8dcSEmmanuel Vadot
652eb4d8dcSEmmanuel Vadot  phy-names:
662eb4d8dcSEmmanuel Vadot    items:
672eb4d8dcSEmmanuel Vadot      - const: sata-0
682eb4d8dcSEmmanuel Vadot
692eb4d8dcSEmmanuel Vadot  phys:
702eb4d8dcSEmmanuel Vadot    maxItems: 1
712eb4d8dcSEmmanuel Vadot
722eb4d8dcSEmmanuel Vadot  hvdd-supply:
732eb4d8dcSEmmanuel Vadot    description: SATA HVDD regulator supply.
742eb4d8dcSEmmanuel Vadot
752eb4d8dcSEmmanuel Vadot  vddio-supply:
762eb4d8dcSEmmanuel Vadot    description: SATA VDDIO regulator supply.
772eb4d8dcSEmmanuel Vadot
782eb4d8dcSEmmanuel Vadot  avdd-supply:
792eb4d8dcSEmmanuel Vadot    description: SATA AVDD regulator supply.
802eb4d8dcSEmmanuel Vadot
812eb4d8dcSEmmanuel Vadot  target-5v-supply:
822eb4d8dcSEmmanuel Vadot    description: SATA 5V power regulator supply.
832eb4d8dcSEmmanuel Vadot
842eb4d8dcSEmmanuel Vadot  target-12v-supply:
852eb4d8dcSEmmanuel Vadot    description: SATA 12V power regulator supply.
862eb4d8dcSEmmanuel Vadot
872eb4d8dcSEmmanuel Vadotrequired:
882eb4d8dcSEmmanuel Vadot  - compatible
892eb4d8dcSEmmanuel Vadot  - reg
902eb4d8dcSEmmanuel Vadot  - interrupts
912eb4d8dcSEmmanuel Vadot  - clock-names
922eb4d8dcSEmmanuel Vadot  - clocks
932eb4d8dcSEmmanuel Vadot  - reset-names
942eb4d8dcSEmmanuel Vadot  - resets
952eb4d8dcSEmmanuel Vadot
962eb4d8dcSEmmanuel VadotallOf:
972eb4d8dcSEmmanuel Vadot  - if:
982eb4d8dcSEmmanuel Vadot      properties:
992eb4d8dcSEmmanuel Vadot        compatible:
1002eb4d8dcSEmmanuel Vadot          contains:
1012eb4d8dcSEmmanuel Vadot            enum:
1022eb4d8dcSEmmanuel Vadot              - nvidia,tegra124-ahci
1032eb4d8dcSEmmanuel Vadot              - nvidia,tegra132-ahci
1042eb4d8dcSEmmanuel Vadot    then:
1052eb4d8dcSEmmanuel Vadot      properties:
1062eb4d8dcSEmmanuel Vadot        reg:
1072eb4d8dcSEmmanuel Vadot          maxItems: 2
1082eb4d8dcSEmmanuel Vadot        reset-names:
1092eb4d8dcSEmmanuel Vadot          minItems: 3
1102eb4d8dcSEmmanuel Vadot        resets:
1112eb4d8dcSEmmanuel Vadot          minItems: 3
1122eb4d8dcSEmmanuel Vadot      required:
1132eb4d8dcSEmmanuel Vadot        - phys
1142eb4d8dcSEmmanuel Vadot        - phy-names
1152eb4d8dcSEmmanuel Vadot        - hvdd-supply
1162eb4d8dcSEmmanuel Vadot        - vddio-supply
1172eb4d8dcSEmmanuel Vadot        - avdd-supply
1182eb4d8dcSEmmanuel Vadot
1192eb4d8dcSEmmanuel Vadot  - if:
1202eb4d8dcSEmmanuel Vadot      properties:
1212eb4d8dcSEmmanuel Vadot        compatible:
1222eb4d8dcSEmmanuel Vadot          contains:
1232eb4d8dcSEmmanuel Vadot            enum:
1242eb4d8dcSEmmanuel Vadot              - nvidia,tegra210-ahci
1252eb4d8dcSEmmanuel Vadot    then:
1262eb4d8dcSEmmanuel Vadot      properties:
1272eb4d8dcSEmmanuel Vadot        reg:
1282eb4d8dcSEmmanuel Vadot          minItems: 3
1292eb4d8dcSEmmanuel Vadot        reset-names:
1302eb4d8dcSEmmanuel Vadot          minItems: 3
1312eb4d8dcSEmmanuel Vadot        resets:
1322eb4d8dcSEmmanuel Vadot          minItems: 3
1332eb4d8dcSEmmanuel Vadot
1342eb4d8dcSEmmanuel Vadot  - if:
1352eb4d8dcSEmmanuel Vadot      properties:
1362eb4d8dcSEmmanuel Vadot        compatible:
1372eb4d8dcSEmmanuel Vadot          contains:
1382eb4d8dcSEmmanuel Vadot            enum:
1392eb4d8dcSEmmanuel Vadot              - nvidia,tegra186-ahci
1402eb4d8dcSEmmanuel Vadot    then:
1412eb4d8dcSEmmanuel Vadot      properties:
1422eb4d8dcSEmmanuel Vadot        reg:
1432eb4d8dcSEmmanuel Vadot          minItems: 3
1442eb4d8dcSEmmanuel Vadot        reset-names:
1452eb4d8dcSEmmanuel Vadot          maxItems: 2
1462eb4d8dcSEmmanuel Vadot        resets:
1472eb4d8dcSEmmanuel Vadot          maxItems: 2
1482eb4d8dcSEmmanuel Vadot      required:
1492eb4d8dcSEmmanuel Vadot        - iommus
1502eb4d8dcSEmmanuel Vadot        - interconnect-names
1512eb4d8dcSEmmanuel Vadot        - interconnects
1522eb4d8dcSEmmanuel Vadot        - power-domains
1532eb4d8dcSEmmanuel Vadot
154*84943d6fSEmmanuel VadotadditionalProperties: false
1552eb4d8dcSEmmanuel Vadot
1562eb4d8dcSEmmanuel Vadotexamples:
1572eb4d8dcSEmmanuel Vadot  - |
1582eb4d8dcSEmmanuel Vadot    #include <dt-bindings/clock/tegra210-car.h>
1592eb4d8dcSEmmanuel Vadot    #include <dt-bindings/reset/tegra210-car.h>
1602eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
1612eb4d8dcSEmmanuel Vadot
1622eb4d8dcSEmmanuel Vadot    sata@70020000 {
1632eb4d8dcSEmmanuel Vadot            compatible = "nvidia,tegra210-ahci";
1642eb4d8dcSEmmanuel Vadot            reg = <0x70027000 0x00002000>, /* AHCI */
1652eb4d8dcSEmmanuel Vadot                  <0x70020000 0x00007000>, /* SATA */
1662eb4d8dcSEmmanuel Vadot                  <0x70001100 0x00010000>; /* SATA AUX */
1672eb4d8dcSEmmanuel Vadot            interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
1682eb4d8dcSEmmanuel Vadot            clocks = <&tegra_car TEGRA210_CLK_SATA>,
1692eb4d8dcSEmmanuel Vadot                     <&tegra_car TEGRA210_CLK_SATA_OOB>;
1702eb4d8dcSEmmanuel Vadot            clock-names = "sata", "sata-oob";
1712eb4d8dcSEmmanuel Vadot            resets = <&tegra_car 124>,
1722eb4d8dcSEmmanuel Vadot                     <&tegra_car 129>,
1732eb4d8dcSEmmanuel Vadot                     <&tegra_car 123>;
1742eb4d8dcSEmmanuel Vadot            reset-names = "sata", "sata-cold", "sata-oob";
1752eb4d8dcSEmmanuel Vadot    };
176