Skip to content

Commit 647d696

Browse files
committed
Merge tag 'pci-v6.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
Pull pci updates from Bjorn Helgaas: "Enumeration: - Batch sizing of multiple BARs while memory decoding is disabled instead of disabling/enabling decoding for each BAR individually; this optimizes virtualized environments where toggling decoding enable is expensive (Alex Williamson) - Add host bridge .enable_device() and .disable_device() hooks for bridges that need to configure things like Requester ID to StreamID mapping when enabling devices (Frank Li) - Extend struct pci_ecam_ops with .enable_device() and .disable_device() hooks so drivers that use pci_host_common_probe() instead of their own .probe() have a way to set the .enable_device() callbacks (Marc Zyngier) - Drop 'No bus range found' message so we don't complain when DTs don't specify the default 'bus-range = <0x00 0xff>' (Bjorn Helgaas) - Rename the drivers/pci/of_property.c struct of_pci_range to of_pci_range_entry to avoid confusion with the global of_pci_range in include/linux/of_address.h (Bjorn Helgaas) Driver binding: - Update resource request API documentation to encourage callers to supply a driver name when requesting resources (Philipp Stanner) - Export pci_intx_unmanaged() and pcim_intx() (always managed) so callers of pci_intx() (which is sometimes managed) can explicitly choose the one they need (Philipp Stanner) - Convert drivers from pci_intx() to always-managed pcim_intx() or never-managed pci_intx_unmanaged(): amd_sfh, ata (ahci, ata_piix, pata_rdc, sata_sil24, sata_sis, sata_uli, sata_vsc), bnx2x, bna, ntb, qtnfmac, rtsx, tifm_7xx1, vfio, xen-pciback (Philipp Stanner) - Remove pci_intx_unmanaged() since pci_intx() is now always unmanaged and pcim_intx() is always managed (Philipp Stanner) Error handling: - Unexport pcie_read_tlp_log() to encourage drivers to use PCI core logging rather than building their own (Ilpo Järvinen) - Move TLP Log handling to its own file (Ilpo Järvinen) - Store number of supported End-End TLP Prefixes always so we can read the correct number of DWORDs from the TLP Prefix Log (Ilpo Järvinen) - Read TLP Prefixes in addition to the Header Log in pcie_read_tlp_log() (Ilpo Järvinen) - Add pcie_print_tlp_log() to consolidate printing of TLP Header and Prefix Log (Ilpo Järvinen) - Quirk the Intel Raptor Lake-P PIO log size to accommodate vendor BIOSes that don't configure it correctly (Takashi Iwai) ASPM: - Save parent L1 PM Substates config so when we restore it along with an endpoint's config, the parent info isn't junk (Jian-Hong Pan) Power management: - Avoid D3 for Root Ports on TUXEDO Sirius Gen1 with old BIOS because the system can't wake up from suspend (Werner Sembach) Endpoint framework: - Destroy the EPC device in devm_pci_epc_destroy(), which previously didn't call devres_release() (Zijun Hu) - Finish virtual EP removal in pci_epf_remove_vepf(), which previously caused a subsequent pci_epf_add_vepf() to fail with -EBUSY (Zijun Hu) - Write BAR_MASK before iATU registers in pci_epc_set_bar() so we don't depend on the BAR_MASK reset value being larger than the requested BAR size (Niklas Cassel) - Prevent changing BAR size/flags in pci_epc_set_bar() to prevent reads from bypassing the iATU if we reduced the BAR size (Niklas Cassel) - Verify address alignment when programming iATU so we don't attempt to write bits that are read-only because of the BAR size, which could lead to directing accesses to the wrong address (Niklas Cassel) - Implement artpec6 pci_epc_features so we can rely on all drivers supporting it so we can use it in EPC core code (Niklas Cassel) - Check for BARs of fixed size to prevent endpoint drivers from trying to change their size (Niklas Cassel) - Verify that requested BAR size is a power of two when endpoint driver sets the BAR (Niklas Cassel) Endpoint framework tests: - Clear pci-epf-test dma_chan_rx, not dma_chan_tx, after freeing dma_chan_rx (Mohamed Khalfella) - Correct the DMA MEMCPY test so it doesn't fail if the Endpoint supports both DMA_PRIVATE and DMA_MEMCPY (Manivannan Sadhasivam) - Add pci-epf-test and pci_endpoint_test support for capabilities (Niklas Cassel) - Add Endpoint test for consecutive BARs (Niklas Cassel) - Remove redundant comparison from Endpoint BAR test because a > 1MB BAR can always be exactly covered by iterating with a 1MB buffer (Hans Zhang) - Move and convert PCI Endpoint tests from tools/pci to Kselftests (Manivannan Sadhasivam) Apple PCIe controller driver: - Convert StreamID mapping configuration from a bus notifier to the .enable_device() and .disable_device() callbacks (Marc Zyngier) Freescale i.MX6 PCIe controller driver: - Add Requester ID to StreamID mapping configuration when enabling devices (Frank Li) - Use DWC core suspend/resume functions for imx6 (Frank Li) - Add suspend/resume support for i.MX8MQ, i.MX8Q, and i.MX95 (Richard Zhu) - Add DT compatible string 'fsl,imx8q-pcie-ep' and driver support for i.MX8Q series (i.MX8QM, i.MX8QXP, and i.MX8DXL) Endpoints (Frank Li) - Add DT binding for optional i.MX95 Refclk and driver support to enable it if the platform hasn't enabled it (Richard Zhu) - Configure PHY based on controller being in Root Complex or Endpoint mode (Frank Li) - Rely on dbi2 and iATU base addresses from DT via dw_pcie_get_resources() instead of hardcoding them (Richard Zhu) - Deassert apps_reset in imx_pcie_deassert_core_reset() since it is asserted in imx_pcie_assert_core_reset() (Richard Zhu) - Add missing reference clock enable or disable logic for IMX6SX, IMX7D, IMX8MM (Richard Zhu) - Remove redundant imx7d_pcie_init_phy() since imx7d_pcie_enable_ref_clk() does the same thing (Richard Zhu) Freescale Layerscape PCIe controller driver: - Simplify by using syscon_regmap_lookup_by_phandle_args() instead of syscon_regmap_lookup_by_phandle() followed by of_property_read_u32_array() (Krzysztof Kozlowski) Marvell MVEBU PCIe controller driver: - Add MODULE_DEVICE_TABLE() to enable module autoloading (Liao Chen) MediaTek PCIe Gen3 controller driver: - Use clk_bulk_prepare_enable() instead of separate clk_bulk_prepare() and clk_bulk_enable() (Lorenzo Bianconi) - Rearrange reset assert/deassert so they're both done in the *_power_up() callbacks (Lorenzo Bianconi) - Document that Airoha EN7581 requires PHY init and power-on before PHY reset deassert, unlike other MediaTek Gen3 controllers (Lorenzo Bianconi) - Move Airoha EN7581 post-reset delay from the en7581 clock .enable() method to mtk_pcie_en7581_power_up() (Lorenzo Bianconi) - Sleep instead of delay during Airoha EN7581 power-up, since this is a non-atomic context (Lorenzo Bianconi) - Skip PERST# assertion on Airoha EN7581 during probe and suspend/resume to avoid a hardware defect (Lorenzo Bianconi) - Enable async probe to reduce system startup time (Douglas Anderson) Microchip PolarFlare PCIe controller driver: - Set up the inbound address translation based on whether the platform allows coherent or non-coherent DMA (Daire McNamara) - Update DT binding such that platforms are DMA-coherent by default and must specify 'dma-noncoherent' if needed (Conor Dooley) Mobiveil PCIe controller driver: - Convert mobiveil-pcie.txt to YAML and update 'interrupt-names' and 'reg-names' (Frank Li) Qualcomm PCIe controller driver: - Add DT SM8550 and SM8650 optional 'global' interrupt for link events (Neil Armstrong) - Add DT 'compatible' strings for IPQ5424 PCIe controller (Manikanta Mylavarapu) - If 'global' IRQ is supported for detection of Link Up events, tell DWC core not to wait for link up (Krishna chaitanya chundru) Renesas R-Car PCIe controller driver: - Avoid passing stack buffer as resource name (King Dix) Rockchip PCIe controller driver: - Simplify clock and reset handling by using bulk interfaces (Anand Moon) - Pass typed rockchip_pcie (not void) pointer to rockchip_pcie_disable_clocks() (Anand Moon) - Return -ENOMEM, not success, when pci_epc_mem_alloc_addr() fails (Dan Carpenter) Rockchip DesignWare PCIe controller driver: - Use dll_link_up IRQ to detect Link Up and enumerate devices so users don't have to manually rescan (Niklas Cassel) - Tell DWC core not to wait for link up since the 'sys' interrupt is required and detects Link Up events (Niklas Cassel) Synopsys DesignWare PCIe controller driver: - Don't wait for link up in DWC core if driver can detect Link Up event (Krishna chaitanya chundru) - Update ICC and OPP votes after Link Up events (Krishna chaitanya chundru) - Always stop link in dw_pcie_suspend_noirq(), which is required at least for i.MX8QM to re-establish link on resume (Richard Zhu) - Drop racy and unnecessary LTSSM state check before sending PME_TURN_OFF message in dw_pcie_suspend_noirq() (Richard Zhu) - Add struct of_pci_range.parent_bus_addr for devices that need their immediate parent bus address, not the CPU address, e.g., to program an internal Address Translation Unit (iATU) (Frank Li) TI DRA7xx PCIe controller driver: - Simplify by using syscon_regmap_lookup_by_phandle_args() instead of syscon_regmap_lookup_by_phandle() followed by of_parse_phandle_with_fixed_args() or of_property_read_u32_index() (Krzysztof Kozlowski) Xilinx Versal CPM PCIe controller driver: - Add DT binding and driver support for Xilinx Versal CPM5 (Thippeswamy Havalige) MicroSemi Switchtec management driver: - Add Microchip PCI100X device IDs (Rakesh Babu Saladi) Miscellaneous: - Move reset related sysfs code from pci.c to pci-sysfs.c where other similar code lives (Ilpo Järvinen) - Simplify reset_method_store() memory management by using __free() instead of explicit kfree() cleanup (Ilpo Järvinen) - Constify struct bin_attribute for sysfs, VPD, P2PDMA, and the IBM ACPI hotplug driver (Thomas Weißschuh) - Remove redundant PCI_VSEC_HDR and PCI_VSEC_HDR_LEN_SHIFT (Dongdong Zhang) - Correct documentation of the 'config_acs=' kernel parameter (Akihiko Odaki)" * tag 'pci-v6.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (111 commits) PCI: Batch BAR sizing operations dt-bindings: PCI: microchip,pcie-host: Allow dma-noncoherent PCI: microchip: Set inbound address translation for coherent or non-coherent mode Documentation: Fix pci=config_acs= example PCI: Remove redundant PCI_VSEC_HDR and PCI_VSEC_HDR_LEN_SHIFT PCI: Don't include 'pm_wakeup.h' directly selftests: pci_endpoint: Migrate to Kselftest framework selftests: Move PCI Endpoint tests from tools/pci to Kselftests misc: pci_endpoint_test: Fix IOCTL return value dt-bindings: PCI: qcom: Document the IPQ5424 PCIe controller dt-bindings: PCI: qcom,pcie-sm8550: Document 'global' interrupt dt-bindings: PCI: mobiveil: Convert mobiveil-pcie.txt to YAML PCI: switchtec: Add Microchip PCI100X device IDs misc: pci_endpoint_test: Remove redundant 'remainder' test misc: pci_endpoint_test: Add consecutive BAR test misc: pci_endpoint_test: Add support for capabilities PCI: endpoint: pci-epf-test: Add support for capabilities PCI: endpoint: pci-epf-test: Fix check for DMA MEMCPY test PCI: endpoint: pci-epf-test: Set dma_chan_rx pointer to NULL on error PCI: dwc: Simplify config resource lookup ...
2 parents 184a099 + 10ff5bb commit 647d696

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+2249
-1671
lines changed

Documentation/PCI/endpoint/pci-test-howto.rst

Lines changed: 72 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ device, the following commands can be used::
8181

8282
# echo 0x104c > functions/pci_epf_test/func1/vendorid
8383
# echo 0xb500 > functions/pci_epf_test/func1/deviceid
84-
# echo 16 > functions/pci_epf_test/func1/msi_interrupts
85-
# echo 8 > functions/pci_epf_test/func1/msix_interrupts
84+
# echo 32 > functions/pci_epf_test/func1/msi_interrupts
85+
# echo 2048 > functions/pci_epf_test/func1/msix_interrupts
8686

8787

8888
Binding pci-epf-test Device to EP Controller
@@ -123,113 +123,83 @@ above::
123123
Using Endpoint Test function Device
124124
-----------------------------------
125125

126-
pcitest.sh added in tools/pci/ can be used to run all the default PCI endpoint
127-
tests. To compile this tool the following commands should be used::
126+
Kselftest added in tools/testing/selftests/pci_endpoint can be used to run all
127+
the default PCI endpoint tests. To build the Kselftest for PCI endpoint
128+
subsystem, the following commands should be used::
128129

129130
# cd <kernel-dir>
130-
# make -C tools/pci
131+
# make -C tools/testing/selftests/pci_endpoint
131132

132133
or if you desire to compile and install in your system::
133134

134135
# cd <kernel-dir>
135-
# make -C tools/pci install
136+
# make -C tools/testing/selftests/pci_endpoint INSTALL_PATH=/usr/bin install
136137

137-
The tool and script will be located in <rootfs>/usr/bin/
138+
The test will be located in <rootfs>/usr/bin/
138139

139-
140-
pcitest.sh Output
141-
~~~~~~~~~~~~~~~~~
140+
Kselftest Output
141+
~~~~~~~~~~~~~~~~
142142
::
143143

144-
# pcitest.sh
145-
BAR tests
146-
147-
BAR0: OKAY
148-
BAR1: OKAY
149-
BAR2: OKAY
150-
BAR3: OKAY
151-
BAR4: NOT OKAY
152-
BAR5: NOT OKAY
153-
154-
Interrupt tests
155-
156-
SET IRQ TYPE TO LEGACY: OKAY
157-
LEGACY IRQ: NOT OKAY
158-
SET IRQ TYPE TO MSI: OKAY
159-
MSI1: OKAY
160-
MSI2: OKAY
161-
MSI3: OKAY
162-
MSI4: OKAY
163-
MSI5: OKAY
164-
MSI6: OKAY
165-
MSI7: OKAY
166-
MSI8: OKAY
167-
MSI9: OKAY
168-
MSI10: OKAY
169-
MSI11: OKAY
170-
MSI12: OKAY
171-
MSI13: OKAY
172-
MSI14: OKAY
173-
MSI15: OKAY
174-
MSI16: OKAY
175-
MSI17: NOT OKAY
176-
MSI18: NOT OKAY
177-
MSI19: NOT OKAY
178-
MSI20: NOT OKAY
179-
MSI21: NOT OKAY
180-
MSI22: NOT OKAY
181-
MSI23: NOT OKAY
182-
MSI24: NOT OKAY
183-
MSI25: NOT OKAY
184-
MSI26: NOT OKAY
185-
MSI27: NOT OKAY
186-
MSI28: NOT OKAY
187-
MSI29: NOT OKAY
188-
MSI30: NOT OKAY
189-
MSI31: NOT OKAY
190-
MSI32: NOT OKAY
191-
SET IRQ TYPE TO MSI-X: OKAY
192-
MSI-X1: OKAY
193-
MSI-X2: OKAY
194-
MSI-X3: OKAY
195-
MSI-X4: OKAY
196-
MSI-X5: OKAY
197-
MSI-X6: OKAY
198-
MSI-X7: OKAY
199-
MSI-X8: OKAY
200-
MSI-X9: NOT OKAY
201-
MSI-X10: NOT OKAY
202-
MSI-X11: NOT OKAY
203-
MSI-X12: NOT OKAY
204-
MSI-X13: NOT OKAY
205-
MSI-X14: NOT OKAY
206-
MSI-X15: NOT OKAY
207-
MSI-X16: NOT OKAY
208-
[...]
209-
MSI-X2047: NOT OKAY
210-
MSI-X2048: NOT OKAY
211-
212-
Read Tests
213-
214-
SET IRQ TYPE TO MSI: OKAY
215-
READ ( 1 bytes): OKAY
216-
READ ( 1024 bytes): OKAY
217-
READ ( 1025 bytes): OKAY
218-
READ (1024000 bytes): OKAY
219-
READ (1024001 bytes): OKAY
220-
221-
Write Tests
222-
223-
WRITE ( 1 bytes): OKAY
224-
WRITE ( 1024 bytes): OKAY
225-
WRITE ( 1025 bytes): OKAY
226-
WRITE (1024000 bytes): OKAY
227-
WRITE (1024001 bytes): OKAY
228-
229-
Copy Tests
230-
231-
COPY ( 1 bytes): OKAY
232-
COPY ( 1024 bytes): OKAY
233-
COPY ( 1025 bytes): OKAY
234-
COPY (1024000 bytes): OKAY
235-
COPY (1024001 bytes): OKAY
144+
# pci_endpoint_test
145+
TAP version 13
146+
1..16
147+
# Starting 16 tests from 9 test cases.
148+
# RUN pci_ep_bar.BAR0.BAR_TEST ...
149+
# OK pci_ep_bar.BAR0.BAR_TEST
150+
ok 1 pci_ep_bar.BAR0.BAR_TEST
151+
# RUN pci_ep_bar.BAR1.BAR_TEST ...
152+
# OK pci_ep_bar.BAR1.BAR_TEST
153+
ok 2 pci_ep_bar.BAR1.BAR_TEST
154+
# RUN pci_ep_bar.BAR2.BAR_TEST ...
155+
# OK pci_ep_bar.BAR2.BAR_TEST
156+
ok 3 pci_ep_bar.BAR2.BAR_TEST
157+
# RUN pci_ep_bar.BAR3.BAR_TEST ...
158+
# OK pci_ep_bar.BAR3.BAR_TEST
159+
ok 4 pci_ep_bar.BAR3.BAR_TEST
160+
# RUN pci_ep_bar.BAR4.BAR_TEST ...
161+
# OK pci_ep_bar.BAR4.BAR_TEST
162+
ok 5 pci_ep_bar.BAR4.BAR_TEST
163+
# RUN pci_ep_bar.BAR5.BAR_TEST ...
164+
# OK pci_ep_bar.BAR5.BAR_TEST
165+
ok 6 pci_ep_bar.BAR5.BAR_TEST
166+
# RUN pci_ep_basic.CONSECUTIVE_BAR_TEST ...
167+
# OK pci_ep_basic.CONSECUTIVE_BAR_TEST
168+
ok 7 pci_ep_basic.CONSECUTIVE_BAR_TEST
169+
# RUN pci_ep_basic.LEGACY_IRQ_TEST ...
170+
# OK pci_ep_basic.LEGACY_IRQ_TEST
171+
ok 8 pci_ep_basic.LEGACY_IRQ_TEST
172+
# RUN pci_ep_basic.MSI_TEST ...
173+
# OK pci_ep_basic.MSI_TEST
174+
ok 9 pci_ep_basic.MSI_TEST
175+
# RUN pci_ep_basic.MSIX_TEST ...
176+
# OK pci_ep_basic.MSIX_TEST
177+
ok 10 pci_ep_basic.MSIX_TEST
178+
# RUN pci_ep_data_transfer.memcpy.READ_TEST ...
179+
# OK pci_ep_data_transfer.memcpy.READ_TEST
180+
ok 11 pci_ep_data_transfer.memcpy.READ_TEST
181+
# RUN pci_ep_data_transfer.memcpy.WRITE_TEST ...
182+
# OK pci_ep_data_transfer.memcpy.WRITE_TEST
183+
ok 12 pci_ep_data_transfer.memcpy.WRITE_TEST
184+
# RUN pci_ep_data_transfer.memcpy.COPY_TEST ...
185+
# OK pci_ep_data_transfer.memcpy.COPY_TEST
186+
ok 13 pci_ep_data_transfer.memcpy.COPY_TEST
187+
# RUN pci_ep_data_transfer.dma.READ_TEST ...
188+
# OK pci_ep_data_transfer.dma.READ_TEST
189+
ok 14 pci_ep_data_transfer.dma.READ_TEST
190+
# RUN pci_ep_data_transfer.dma.WRITE_TEST ...
191+
# OK pci_ep_data_transfer.dma.WRITE_TEST
192+
ok 15 pci_ep_data_transfer.dma.WRITE_TEST
193+
# RUN pci_ep_data_transfer.dma.COPY_TEST ...
194+
# OK pci_ep_data_transfer.dma.COPY_TEST
195+
ok 16 pci_ep_data_transfer.dma.COPY_TEST
196+
# PASSED: 16 / 16 tests passed.
197+
# Totals: pass:16 fail:0 xfail:0 xpass:0 skip:0 error:0
198+
199+
200+
Testcase 16 (pci_ep_data_transfer.dma.COPY_TEST) will fail for most of the DMA
201+
capable endpoint controllers due to the absence of the MEMCPY over DMA. For such
202+
controllers, it is advisable to skip this testcase using this
203+
command::
204+
205+
# pci_endpoint_test -f pci_ep_bar -f pci_ep_basic -v memcpy -T COPY_TEST -v dma

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4830,7 +4830,7 @@
48304830
'1' – force enabled
48314831
'x' – unchanged
48324832
For example,
4833-
pci=config_acs=10x
4833+
pci=config_acs=10x@pci:0:0
48344834
would configure all devices that support
48354835
ACS to enable P2P Request Redirect, disable
48364836
Translation Blocking, and leave Source

Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ description:
1717
properties:
1818
clocks:
1919
minItems: 3
20-
maxItems: 4
20+
maxItems: 5
2121

2222
clock-names:
2323
minItems: 3
24-
maxItems: 4
24+
maxItems: 5
2525

2626
num-lanes:
2727
const: 1

Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ properties:
2222
- fsl,imx8mm-pcie-ep
2323
- fsl,imx8mq-pcie-ep
2424
- fsl,imx8mp-pcie-ep
25+
- fsl,imx8q-pcie-ep
2526
- fsl,imx95-pcie-ep
2627

2728
clocks:
@@ -74,6 +75,20 @@ allOf:
7475
- const: dbi2
7576
- const: atu
7677

78+
- if:
79+
properties:
80+
compatible:
81+
enum:
82+
- fsl,imx8q-pcie-ep
83+
then:
84+
properties:
85+
reg:
86+
maxItems: 2
87+
reg-names:
88+
items:
89+
- const: dbi
90+
- const: addr_space
91+
7792
- if:
7893
properties:
7994
compatible:
@@ -103,13 +118,21 @@ allOf:
103118
properties:
104119
clocks:
105120
minItems: 4
121+
maxItems: 4
106122
clock-names:
107123
items:
108124
- const: pcie
109125
- const: pcie_bus
110126
- const: pcie_phy
111127
- const: pcie_aux
112-
else:
128+
129+
- if:
130+
properties:
131+
compatible:
132+
enum:
133+
- fsl,imx8mm-pcie-ep
134+
- fsl,imx8mp-pcie-ep
135+
then:
113136
properties:
114137
clocks:
115138
maxItems: 3
@@ -119,6 +142,20 @@ allOf:
119142
- const: pcie_bus
120143
- const: pcie_aux
121144

145+
- if:
146+
properties:
147+
compatible:
148+
enum:
149+
- fsl,imxq-pcie-ep
150+
then:
151+
properties:
152+
clocks:
153+
maxItems: 3
154+
clock-names:
155+
items:
156+
- const: dbi
157+
- const: mstr
158+
- const: slv
122159

123160
unevaluatedProperties: false
124161

Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,11 @@ properties:
4040
- description: PCIe PHY clock.
4141
- description: Additional required clock entry for imx6sx-pcie,
4242
imx6sx-pcie-ep, imx8mq-pcie, imx8mq-pcie-ep.
43+
- description: PCIe reference clock.
4344

4445
clock-names:
4546
minItems: 3
46-
maxItems: 4
47+
maxItems: 5
4748

4849
interrupts:
4950
items:
@@ -127,7 +128,7 @@ allOf:
127128
then:
128129
properties:
129130
clocks:
130-
minItems: 4
131+
maxItems: 4
131132
clock-names:
132133
items:
133134
- const: pcie
@@ -140,11 +141,10 @@ allOf:
140141
compatible:
141142
enum:
142143
- fsl,imx8mq-pcie
143-
- fsl,imx95-pcie
144144
then:
145145
properties:
146146
clocks:
147-
minItems: 4
147+
maxItems: 4
148148
clock-names:
149149
items:
150150
- const: pcie
@@ -200,6 +200,23 @@ allOf:
200200
- const: mstr
201201
- const: slv
202202

203+
- if:
204+
properties:
205+
compatible:
206+
enum:
207+
- fsl,imx95-pcie
208+
then:
209+
properties:
210+
clocks:
211+
maxItems: 5
212+
clock-names:
213+
items:
214+
- const: pcie
215+
- const: pcie_bus
216+
- const: pcie_phy
217+
- const: pcie_aux
218+
- const: ref
219+
203220
unevaluatedProperties: false
204221

205222
examples:

0 commit comments

Comments
 (0)