1# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/nvme/apple,nvme-ans.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Apple ANS NVM Express host controller 8 9maintainers: 10 - Sven Peter <sven@svenpeter.dev> 11 12properties: 13 compatible: 14 items: 15 - enum: 16 - apple,t8103-nvme-ans2 17 - apple,t8112-nvme-ans2 18 - apple,t6000-nvme-ans2 19 - const: apple,nvme-ans2 20 21 reg: 22 items: 23 - description: NVMe and NVMMU registers 24 - description: ANS2 co-processor control registers 25 26 reg-names: 27 items: 28 - const: nvme 29 - const: ans 30 31 resets: 32 maxItems: 1 33 34 power-domains: 35 # two domains for t8103, three for t6000 36 minItems: 2 37 items: 38 - description: power domain for the NVMe controller. 39 - description: power domain for the first PCIe bus connecting the NVMe 40 controller to the storage modules. 41 - description: optional power domain for the second PCIe bus 42 connecting the NVMe controller to the storage modules. 43 44 power-domain-names: 45 minItems: 2 46 items: 47 - const: ans 48 - const: apcie0 49 - const: apcie1 50 51 mboxes: 52 maxItems: 1 53 description: Mailbox of the ANS2 co-processor 54 55 interrupts: 56 maxItems: 1 57 58 apple,sart: 59 $ref: /schemas/types.yaml#/definitions/phandle 60 description: | 61 Reference to the SART address filter. 62 63 The SART address filter is documented in iommu/apple,sart.yaml. 64 65if: 66 properties: 67 compatible: 68 contains: 69 enum: 70 - apple,t8103-nvme-ans2 71 - apple,t8112-nvme-ans2 72then: 73 properties: 74 power-domains: 75 maxItems: 2 76 power-domain-names: 77 maxItems: 2 78else: 79 properties: 80 power-domains: 81 minItems: 3 82 power-domain-names: 83 minItems: 3 84 85required: 86 - compatible 87 - reg 88 - reg-names 89 - resets 90 - power-domains 91 - power-domain-names 92 - mboxes 93 - interrupts 94 - apple,sart 95 96additionalProperties: false 97 98examples: 99 - | 100 #include <dt-bindings/interrupt-controller/apple-aic.h> 101 #include <dt-bindings/interrupt-controller/irq.h> 102 103 nvme@7bcc0000 { 104 compatible = "apple,t8103-nvme-ans2", "apple,nvme-ans2"; 105 reg = <0x7bcc0000 0x40000>, <0x77400000 0x4000>; 106 reg-names = "nvme", "ans"; 107 interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>; 108 mboxes = <&ans>; 109 apple,sart = <&sart>; 110 power-domains = <&ps_ans2>, <&ps_apcie_st>; 111 power-domain-names = "ans", "apcie0"; 112 resets = <&ps_ans2>; 113 }; 114