drivers/misc/lan966x_pci.dtso

Source file repositories/reference/linux-study-clean/drivers/misc/lan966x_pci.dtso

File Facts

System
Linux kernel
Corpus path
drivers/misc/lan966x_pci.dtso
Extension
.dtso
Size
4082 bytes
Lines
178
Domain
Driver Families
Bucket
drivers/misc
Inferred role
Driver Families: drivers/misc
Status
atlas-only

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2022 Microchip UNG
 */

#include <dt-bindings/clock/microchip,lan966x.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/mfd/atmel-flexcom.h>
#include <dt-bindings/phy/phy-lan966x-serdes.h>

/dts-v1/;
/plugin/;

/ {
	fragment@0 {
		target-path = "";

		/*
		 * These properties allow to avoid a dtc warnings.
		 * The real interrupt controller is the PCI device itself. It
		 * is the node on which the device tree overlay will be applied.
		 * This node has those properties.
		 */
		#interrupt-cells = <1>;
		interrupt-controller;

		__overlay__ {
			#address-cells = <3>;
			#size-cells = <2>;

			cpu_clk: clock-600000000 {
				compatible = "fixed-clock";
				#clock-cells = <0>;
				clock-frequency = <600000000>;  /* CPU clock = 600MHz */
			};

			ddr_clk: clock-30000000 {
				compatible = "fixed-clock";
				#clock-cells = <0>;
				clock-frequency = <30000000>;  /* Fabric clock = 30MHz */
			};

			sys_clk: clock-15625000 {
				compatible = "fixed-clock";
				#clock-cells = <0>;
				clock-frequency = <15625000>;  /* System clock = 15.625MHz */
			};

			pci-ep-bus@0 {
				compatible = "simple-bus";
				#address-cells = <1>;
				#size-cells = <1>;

				/*
				 * map @0xe2000000 (32MB) to BAR0 (CPU)
				 * map @0xe0000000 (16MB) to BAR1 (AMBA)
				 */
				ranges = <0xe2000000 0x00 0x00 0x00 0x2000000
				          0xe0000000 0x01 0x00 0x00 0x1000000>;

				oic: oic@e00c0120 {
					compatible = "microchip,lan966x-oic";
					#interrupt-cells = <2>;
					interrupt-controller;
					interrupts = <0>; /* PCI INTx assigned interrupt */
					reg = <0xe00c0120 0x190>;
				};

				cpu_ctrl: syscon@e00c0000 {

Annotation

Implementation Notes