Documentation / devicetree / bindings / misc / pci1de4,1.yaml


Based on kernel version 6.17. Page generated on 2025-10-03 10:04 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/misc/pci1de4,1.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: RaspberryPi RP1 MFD PCI device

maintainers:
  - A. della Porta <andrea.porta@suse.com>

description:
  The RaspberryPi RP1 is a PCI multi function device containing
  peripherals ranging from Ethernet to USB controller, I2C, SPI
  and others.
  The peripherals are accessed by addressing the PCI BAR1 region.

allOf:
  - $ref: /schemas/pci/pci-ep-bus.yaml

properties:
  compatible:
    additionalItems: true
    maxItems: 3
    items:
      - const: pci1de4,1
 
  '#interrupt-cells':
    const: 2
    description: |
      Specifies respectively the interrupt number and flags as defined
      in include/dt-bindings/interrupt-controller/irq.h.
      Since all interrupts are active high, only IRQ_TYPE_LEVEL_HIGH
      and IRQ_TYPE_EDGE_RISING can be specified as type flags.
      The supported values for the interrupt number are:
        - IO BANK0: 0
        - IO BANK1: 1
        - IO BANK2: 2
        - AUDIO IN: 3
        - AUDIO OUT: 4
        - PWM0: 5
        - ETH: 6
        - I2C0: 7
        - I2C1: 8
        - I2C2: 9
        - I2C3: 10
        - I2C4: 11
        - I2C5: 12
        - I2C6: 13
        - I2S0: 14
        - I2S1: 15
        - I2S2: 16
        - SDIO0: 17
        - SDIO1: 18
        - SPI0: 19
        - SPI1: 20
        - SPI2: 21
        - SPI3: 22
        - SPI4: 23
        - SPI5: 24
        - UART0: 25
        - TIMER0: 26
        - TIMER1: 27
        - TIMER2: 28
        - TIMER3: 29
        - USB HOST0: 30
        - USB HOST0-0: 31
        - USB HOST0-1: 32
        - USB HOST0-2: 33
        - USB HOST0-3: 34
        - USB HOST1: 35
        - USB HOST1-0: 36
        - USB HOST1-1: 37
        - USB HOST1-2: 38
        - USB HOST1-3: 39
        - DMA: 40
        - PWM1: 41
        - UART1: 42
        - UART2: 43
        - UART3: 44
        - UART4: 45
        - UART5: 46
        - MIPI0: 47
        - MIPI1: 48
        - VIDEO OUT: 49
        - PIO0: 50
        - PIO1: 51
        - ADC FIFO: 52
        - PCIE OUT: 53
        - SPI6: 54
        - SPI7: 55
        - SPI8: 56
        - PROC MISC: 57
        - SYSCFG: 58
        - CLOCKS DEFAULT: 59
        - VBUSCTRL: 60

  interrupt-controller: true

unevaluatedProperties: false

required:
  - compatible
  - '#interrupt-cells'
  - interrupt-controller
  - pci-ep-bus@1

examples:
  - |
    pci {
        #address-cells = <3>;
        #size-cells = <2>;
 
        rp1@0,0 {
            compatible = "pci1de4,1";
            ranges = <0x01 0x00 0x00000000  0x82010000 0x00 0x00  0x00 0x400000>;
            #address-cells = <3>;
            #size-cells = <2>;
            interrupt-controller;
            #interrupt-cells = <2>;
 
            pci_ep_bus: pci-ep-bus@1 {
                compatible = "simple-bus";
                ranges = <0x00 0x40000000  0x01 0x00 0x00000000  0x00 0x00400000>;
                dma-ranges = <0x10 0x00000000  0x43000000 0x10 0x00000000  0x10 0x00000000>;
                #address-cells = <2>;
                #size-cells = <2>;
 
                rp1_clocks: clocks@40018000 {
                    compatible = "raspberrypi,rp1-clocks";
                    reg = <0x00 0x40018000 0x0 0x10038>;
                    #clock-cells = <1>;
                    clocks = <&clk_rp1_xosc>;
                };
            };
        };
    };