Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/pci/intel,ixp4xx-pci.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Intel IXP4xx PCI controller
0008 
0009 maintainers:
0010   - Linus Walleij <linus.walleij@linaro.org>
0011 
0012 description: PCI host controller found in the Intel IXP4xx SoC series.
0013 
0014 allOf:
0015   - $ref: /schemas/pci/pci-bus.yaml#
0016 
0017 properties:
0018   compatible:
0019     items:
0020       - enum:
0021           - intel,ixp42x-pci
0022           - intel,ixp43x-pci
0023     description: The two supported variants are ixp42x and ixp43x,
0024       though more variants may exist.
0025 
0026   reg:
0027     items:
0028       - description: IXP4xx-specific registers
0029 
0030   interrupts:
0031     items:
0032       - description: Main PCI interrupt
0033       - description: PCI DMA interrupt 1
0034       - description: PCI DMA interrupt 2
0035 
0036   ranges:
0037     maxItems: 2
0038     description: Typically one memory range of 64MB and one IO
0039       space range of 64KB.
0040 
0041   dma-ranges:
0042     maxItems: 1
0043     description: The DMA range tells the PCI host which addresses
0044       the RAM is at. It can map only 64MB so if the RAM is bigger
0045       than 64MB the DMA access has to be restricted to these
0046       addresses.
0047 
0048   "#interrupt-cells": true
0049 
0050   interrupt-map: true
0051 
0052   interrupt-map-mask:
0053     items:
0054       - const: 0xf800
0055       - const: 0
0056       - const: 0
0057       - const: 7
0058 
0059 required:
0060   - compatible
0061   - reg
0062   - dma-ranges
0063   - "#interrupt-cells"
0064   - interrupt-map
0065   - interrupt-map-mask
0066 
0067 unevaluatedProperties: false
0068 
0069 examples:
0070   - |
0071     pci@c0000000 {
0072       compatible = "intel,ixp43x-pci";
0073       reg = <0xc0000000 0x1000>;
0074       #address-cells = <3>;
0075       #size-cells = <2>;
0076       device_type = "pci";
0077       bus-range = <0x00 0xff>;
0078 
0079       ranges =
0080         <0x02000000 0 0x48000000 0x48000000 0 0x04000000>,
0081         <0x01000000 0 0x00000000 0x4c000000 0 0x00010000>;
0082       dma-ranges =
0083         <0x02000000 0 0x00000000 0x00000000 0 0x04000000>;
0084 
0085       #interrupt-cells = <1>;
0086       interrupt-map-mask = <0xf800 0 0 7>;
0087       interrupt-map =
0088         <0x0800 0 0 1 &gpio0 11 3>, /* INT A on slot 1 is irq 11 */
0089         <0x0800 0 0 2 &gpio0 10 3>, /* INT B on slot 1 is irq 10 */
0090         <0x0800 0 0 3 &gpio0 9  3>, /* INT C on slot 1 is irq 9 */
0091         <0x0800 0 0 4 &gpio0 8  3>, /* INT D on slot 1 is irq 8 */
0092         <0x1000 0 0 1 &gpio0 10 3>, /* INT A on slot 2 is irq 10 */
0093         <0x1000 0 0 2 &gpio0 9  3>, /* INT B on slot 2 is irq 9 */
0094         <0x1000 0 0 3 &gpio0 8  3>, /* INT C on slot 2 is irq 8 */
0095         <0x1000 0 0 4 &gpio0 11 3>, /* INT D on slot 2 is irq 11 */
0096         <0x1800 0 0 1 &gpio0 9  3>, /* INT A on slot 3 is irq 9 */
0097         <0x1800 0 0 2 &gpio0 8  3>, /* INT B on slot 3 is irq 8 */
0098         <0x1800 0 0 3 &gpio0 11 3>, /* INT C on slot 3 is irq 11 */
0099         <0x1800 0 0 4 &gpio0 10 3>; /* INT D on slot 3 is irq 10 */
0100     };