xref: /linux/Documentation/devicetree/bindings/misc/pci1de4,1.yaml (revision d30c1683aaecb93d2ab95685dc4300a33d3cea7a)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/misc/pci1de4,1.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: RaspberryPi RP1 MFD PCI device
8
9maintainers:
10  - A. della Porta <andrea.porta@suse.com>
11
12description:
13  The RaspberryPi RP1 is a PCI multi function device containing
14  peripherals ranging from Ethernet to USB controller, I2C, SPI
15  and others.
16  The peripherals are accessed by addressing the PCI BAR1 region.
17
18allOf:
19  - $ref: /schemas/pci/pci-ep-bus.yaml
20
21properties:
22  compatible:
23    additionalItems: true
24    maxItems: 3
25    items:
26      - const: pci1de4,1
27
28  reg:
29    maxItems: 1
30    description: The PCI Bus-Device-Function address.
31
32  '#interrupt-cells':
33    const: 2
34    description: |
35      Specifies respectively the interrupt number and flags as defined
36      in include/dt-bindings/interrupt-controller/irq.h.
37      Since all interrupts are active high, only IRQ_TYPE_LEVEL_HIGH
38      and IRQ_TYPE_EDGE_RISING can be specified as type flags.
39      The supported values for the interrupt number are:
40        - IO BANK0: 0
41        - IO BANK1: 1
42        - IO BANK2: 2
43        - AUDIO IN: 3
44        - AUDIO OUT: 4
45        - PWM0: 5
46        - ETH: 6
47        - I2C0: 7
48        - I2C1: 8
49        - I2C2: 9
50        - I2C3: 10
51        - I2C4: 11
52        - I2C5: 12
53        - I2C6: 13
54        - I2S0: 14
55        - I2S1: 15
56        - I2S2: 16
57        - SDIO0: 17
58        - SDIO1: 18
59        - SPI0: 19
60        - SPI1: 20
61        - SPI2: 21
62        - SPI3: 22
63        - SPI4: 23
64        - SPI5: 24
65        - UART0: 25
66        - TIMER0: 26
67        - TIMER1: 27
68        - TIMER2: 28
69        - TIMER3: 29
70        - USB HOST0: 30
71        - USB HOST0-0: 31
72        - USB HOST0-1: 32
73        - USB HOST0-2: 33
74        - USB HOST0-3: 34
75        - USB HOST1: 35
76        - USB HOST1-0: 36
77        - USB HOST1-1: 37
78        - USB HOST1-2: 38
79        - USB HOST1-3: 39
80        - DMA: 40
81        - PWM1: 41
82        - UART1: 42
83        - UART2: 43
84        - UART3: 44
85        - UART4: 45
86        - UART5: 46
87        - MIPI0: 47
88        - MIPI1: 48
89        - VIDEO OUT: 49
90        - PIO0: 50
91        - PIO1: 51
92        - ADC FIFO: 52
93        - PCIE OUT: 53
94        - SPI6: 54
95        - SPI7: 55
96        - SPI8: 56
97        - PROC MISC: 57
98        - SYSCFG: 58
99        - CLOCKS DEFAULT: 59
100        - VBUSCTRL: 60
101
102  interrupt-controller: true
103
104unevaluatedProperties: false
105
106required:
107  - compatible
108  - reg
109  - '#interrupt-cells'
110  - interrupt-controller
111  - pci-ep-bus@1
112
113examples:
114  - |
115    pci {
116        #address-cells = <3>;
117        #size-cells = <2>;
118
119        dev@0,0 {
120            compatible = "pci1de4,1";
121            reg = <0x10000 0x0 0x0 0x0 0x0>;
122            ranges = <0x01 0x00 0x00000000  0x82010000 0x00 0x00  0x00 0x400000>;
123            #address-cells = <3>;
124            #size-cells = <2>;
125            interrupt-controller;
126            #interrupt-cells = <2>;
127
128            pci_ep_bus: pci-ep-bus@1 {
129                compatible = "simple-bus";
130                ranges = <0x00 0x40000000  0x01 0x00 0x00000000  0x00 0x00400000>;
131                dma-ranges = <0x10 0x00000000  0x43000000 0x10 0x00000000  0x10 0x00000000>;
132                #address-cells = <2>;
133                #size-cells = <2>;
134
135                rp1_clocks: clocks@40018000 {
136                    compatible = "raspberrypi,rp1-clocks";
137                    reg = <0x00 0x40018000 0x0 0x10038>;
138                    #clock-cells = <1>;
139                    clocks = <&clk_rp1_xosc>;
140                };
141            };
142        };
143    };
144