0001 # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/nvme/apple,nvme-ans.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Apple ANS NVM Express host controller
0008
0009 maintainers:
0010 - Sven Peter <sven@svenpeter.dev>
0011
0012 properties:
0013 compatible:
0014 items:
0015 - enum:
0016 - apple,t8103-nvme-ans2
0017 - apple,t6000-nvme-ans2
0018 - const: apple,nvme-ans2
0019
0020 reg:
0021 items:
0022 - description: NVMe and NVMMU registers
0023 - description: ANS2 co-processor control registers
0024
0025 reg-names:
0026 items:
0027 - const: nvme
0028 - const: ans
0029
0030 resets:
0031 maxItems: 1
0032
0033 power-domains:
0034 # two domains for t8103, three for t6000
0035 minItems: 2
0036 items:
0037 - description: power domain for the NVMe controller.
0038 - description: power domain for the first PCIe bus connecting the NVMe
0039 controller to the storage modules.
0040 - description: optional power domain for the second PCIe bus
0041 connecting the NVMe controller to the storage modules.
0042
0043 power-domain-names:
0044 minItems: 2
0045 items:
0046 - const: ans
0047 - const: apcie0
0048 - const: apcie1
0049
0050 mboxes:
0051 maxItems: 1
0052 description: Mailbox of the ANS2 co-processor
0053
0054 interrupts:
0055 maxItems: 1
0056
0057 apple,sart:
0058 $ref: /schemas/types.yaml#/definitions/phandle
0059 description: |
0060 Reference to the SART address filter.
0061
0062 The SART address filter is documented in iommu/apple,sart.yaml.
0063
0064 if:
0065 properties:
0066 compatible:
0067 contains:
0068 const: apple,t8103-nvme-ans2
0069 then:
0070 properties:
0071 power-domains:
0072 maxItems: 2
0073 power-domain-names:
0074 maxItems: 2
0075 else:
0076 properties:
0077 power-domains:
0078 minItems: 3
0079 power-domain-names:
0080 minItems: 3
0081
0082 required:
0083 - compatible
0084 - reg
0085 - reg-names
0086 - resets
0087 - power-domains
0088 - power-domain-names
0089 - mboxes
0090 - interrupts
0091 - apple,sart
0092
0093 additionalProperties: false
0094
0095 examples:
0096 - |
0097 #include <dt-bindings/interrupt-controller/apple-aic.h>
0098 #include <dt-bindings/interrupt-controller/irq.h>
0099
0100 nvme@7bcc0000 {
0101 compatible = "apple,t8103-nvme-ans2", "apple,nvme-ans2";
0102 reg = <0x7bcc0000 0x40000>, <0x77400000 0x4000>;
0103 reg-names = "nvme", "ans";
0104 interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>;
0105 mboxes = <&ans>;
0106 apple,sart = <&sart>;
0107 power-domains = <&ps_ans2>, <&ps_apcie_st>;
0108 power-domain-names = "ans", "apcie0";
0109 resets = <&ps_ans2>;
0110 };