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