| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/ata/nvidia,tegra-ahci.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Tegra AHCI SATA Controller |
| |
| maintainers: |
| - Thierry Reding <thierry.reding@gmail.com> |
| - Jonathan Hunter <jonathanh@nvidia.com> |
| |
| properties: |
| compatible: |
| enum: |
| - nvidia,tegra124-ahci |
| - nvidia,tegra132-ahci |
| - nvidia,tegra210-ahci |
| - nvidia,tegra186-ahci |
| |
| reg: |
| minItems: 2 |
| items: |
| - description: AHCI registers |
| - description: SATA configuration and IPFS registers |
| - description: SATA AUX registers |
| |
| interrupts: |
| maxItems: 1 |
| |
| clock-names: |
| items: |
| - const: sata |
| - const: sata-oob |
| |
| clocks: |
| maxItems: 2 |
| |
| reset-names: |
| minItems: 2 |
| items: |
| - const: sata |
| - const: sata-cold |
| - const: sata-oob |
| |
| resets: |
| minItems: 2 |
| maxItems: 3 |
| |
| iommus: |
| maxItems: 1 |
| |
| interconnect-names: |
| items: |
| - const: dma-mem |
| - const: write |
| |
| interconnects: |
| maxItems: 2 |
| |
| power-domains: |
| items: |
| - description: SAX power-domain |
| |
| phy-names: |
| items: |
| - const: sata-0 |
| |
| phys: |
| maxItems: 1 |
| |
| hvdd-supply: |
| description: SATA HVDD regulator supply. |
| |
| vddio-supply: |
| description: SATA VDDIO regulator supply. |
| |
| avdd-supply: |
| description: SATA AVDD regulator supply. |
| |
| target-5v-supply: |
| description: SATA 5V power regulator supply. |
| |
| target-12v-supply: |
| description: SATA 12V power regulator supply. |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| - clock-names |
| - clocks |
| - reset-names |
| - resets |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - nvidia,tegra124-ahci |
| - nvidia,tegra132-ahci |
| then: |
| properties: |
| reg: |
| maxItems: 2 |
| reset-names: |
| minItems: 3 |
| resets: |
| minItems: 3 |
| required: |
| - phys |
| - phy-names |
| - hvdd-supply |
| - vddio-supply |
| - avdd-supply |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - nvidia,tegra210-ahci |
| then: |
| properties: |
| reg: |
| minItems: 3 |
| reset-names: |
| minItems: 3 |
| resets: |
| minItems: 3 |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - nvidia,tegra186-ahci |
| then: |
| properties: |
| reg: |
| minItems: 3 |
| reset-names: |
| maxItems: 2 |
| resets: |
| maxItems: 2 |
| required: |
| - iommus |
| - interconnect-names |
| - interconnects |
| - power-domains |
| |
| additionalProperties: true |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/tegra210-car.h> |
| #include <dt-bindings/reset/tegra210-car.h> |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| |
| sata@70020000 { |
| compatible = "nvidia,tegra210-ahci"; |
| reg = <0x70027000 0x00002000>, /* AHCI */ |
| <0x70020000 0x00007000>, /* SATA */ |
| <0x70001100 0x00010000>; /* SATA AUX */ |
| interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&tegra_car TEGRA210_CLK_SATA>, |
| <&tegra_car TEGRA210_CLK_SATA_OOB>; |
| clock-names = "sata", "sata-oob"; |
| resets = <&tegra_car 124>, |
| <&tegra_car 129>, |
| <&tegra_car 123>; |
| reset-names = "sata", "sata-cold", "sata-oob"; |
| }; |