1
0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2026-01-11 17:10:13 +00:00
Andrea della Porta c6d0cdf7e5 dt-bindings: misc: pci1de4,1: add required reg property for endpoint
The PCI subsystem links an endpoint Device Tree node to its corresponding
pci_dev structure only if the Bus/Device/Function (BDF) encoded in the
'reg' property matches the actual hardware topology.

Add the 'reg' property and mark it as required to ensure proper binding
between the device_node and the pci_dev.

Update the example to reflect this requirement.

Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/b58bfcd957b2270fcf932d463f2db534b2ae1a6d.1766077285.git.andrea.porta@suse.com
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
2025-12-19 12:42:07 -08:00

144 lines
3.5 KiB
YAML

# 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
reg:
maxItems: 1
description: The PCI Bus-Device-Function address.
'#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
- reg
- '#interrupt-cells'
- interrupt-controller
- pci-ep-bus@1
examples:
- |
pci {
#address-cells = <3>;
#size-cells = <2>;
dev@0,0 {
compatible = "pci1de4,1";
reg = <0x10000 0x0 0x0 0x0 0x0>;
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>;
};
};
};
};