Back to home page

OSCL-LXR

 
 

    


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     };