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