Peripherals overview
The Microchip Sparx5, LAN969x, and LAN966x SoC families provide a comprehensive set of peripherals for networking, storage, and system control. This document provides an overview of the device tree compatible strings for Microchip-specific drivers used across different board variants and the corresponding Linux kernel drivers.
The compatible strings define the binding between device tree hardware descriptions and kernel drivers. Each peripheral listed below includes its compatible string, the driver name, and a description of its functionality.
| This document covers only Microchip and Atmel (Microchip subsidiary) specific drivers. Generic ARM components and third-party IP blocks are not included. |
1. Device Tree File Locations
The device tree source files are located in the Linux kernel source tree under arch/arm*/boot/dts/microchip/.
| Board / SoC | Arch | Device Tree Source |
|---|---|---|
Sparx5 |
||
PCB134 (NAND) |
ARMv8 |
|
PCB134 (eMMC) |
ARMv8 |
|
PCB135 (NAND) |
ARMv8 |
|
PCB135 (eMMC) |
ARMv8 |
|
LAN969x |
||
EV89P81A |
ARMv8 |
|
EV23X71A |
ARMv8 |
|
LAN966x |
||
PCB8290 |
ARMv7 |
|
PCB8291 |
ARMv7 |
|
PCB8309 |
ARMv7 |
|
PCB8385 (LAN9645x EVB) |
ARMv7 |
|
Common Include Files |
||
Sparx5 SoC |
ARMv8 |
|
Sparx5 NAND |
ARMv8 |
|
LAN969x SoC |
ARMv8 |
|
LAN966x SoC |
ARMv7 |
|
2. Driver Use
The following sections show which drivers are used by each SoC family.
2.1. Sparx5
High-performance enterprise/carrier-grade Ethernet switch SoC (ARMv8 64-bit, up to 64 ports).
| Peripheral Category | Compatible Strings |
|---|---|
Clock Controllers |
|
Reset Controllers |
|
Communication (UART/SPI/I2C) |
|
Storage (eMMC) |
|
Network (Switch/MDIO/SerDes) |
|
GPIO and Pin Control |
|
Hardware Monitoring |
|
System Control/Debug |
2.2. LAN969x
Mid-range industrial Ethernet switch SoC (ARMv8 64-bit, up to 30 ports, TSN features).
| Peripheral Category | Compatible Strings |
|---|---|
Clock Controllers |
|
Reset Controllers |
|
Communication (UART/SPI/I2C) |
|
Storage (eMMC) |
|
Network (Switch/MDIO/SerDes) |
|
GPIO and Pin Control |
|
USB Controllers |
|
Security/Crypto/OTP |
|
DMA Controllers |
|
Hardware Monitoring |
|
System Control/Debug |
|
2.3. LAN966x
Entry-level industrial Ethernet switch SoC (ARMv7 32-bit, up to 8 ports, cost-optimized).
| Peripheral Category | Compatible Strings |
|---|---|
Clock Controllers |
|
Reset Controllers |
|
Communication (UART/SPI/I2C) |
|
Storage (EEPROM/eMMC) |
|
Network (Switch/MDIO/SerDes) |
|
GPIO and Pin Control |
|
USB Controllers |
|
Security/Crypto/OTP |
|
DMA Controllers |
|
Hardware Monitoring |
|
System Control/Debug |
|
3. Driver Reference
This section provides a quick-lookup table for every Microchip-specific device tree compatible string. Each entry links to the kernel source and lists the Kconfig symbol needed to enable it.
3.1. Board and SoC Identifiers
These compatible strings identify boards and SoC platforms in the root node of each device tree.
| Compatible String | Description |
|---|---|
|
Sparx5 board variants (PCB134, PCB135) |
|
Sparx5 SoC platform |
|
LAN9691 (LAN969x) SoC platform |
|
LAN966x board variants |
|
LAN9668 PCB8385 with LAN9645x EVB |
|
LAN966x SoC platform identifiers |
3.2. Clock and Reset
| Compatible String | Driver | Kconfig | Description |
|---|---|---|---|
|
|
Sparx5 DPLL clock controller |
|
|
|
Clock gate controller for LAN969x/LAN966x |
|
|
|
Ethernet switch reset controller |
|
|
|
External PHY reset controller (LAN966x only) |
3.3. Communication Interfaces
| Compatible String | Driver | Kconfig | Description |
|---|---|---|---|
UART / Serial |
|||
|
|
AT91 USART serial controller (MFD). |
|
SPI |
|||
|
|
DesignWare SPI controller (Sparx5) |
|
|
|
Atmel AT91/AT32 SPI controller. |
|
|
|
Quad SPI controller (LAN966x). |
|
I2C / TWI |
|||
|
|
I2C/TWI controller for AT91/SAM SoCs. |
|
|
|
I2C controller for LAN9645x (via SPI MFD) |
|
Flexcom |
|||
|
|
Flexible serial controller (USART/SPI/TWI). |
|
3.4. Storage
| Compatible String | Driver | Kconfig | Description |
|---|---|---|---|
|
|
I2C EEPROM (AT24 series) |
|
|
|
SD/eMMC host controller (Sparx5) |
|
|
|
SD/eMMC host controller (LAN969x/LAN966x). |
3.5. USB
| Compatible String | Driver | Kconfig | Description |
|---|---|---|---|
|
|
USB 2.0/3.0 host controller (LAN966x/LAN969x). |
|
|
|
USB device controller (gadget mode). |
3.6. GPIO and Pin Control
| Compatible String | Driver | Kconfig | Description |
|---|---|---|---|
|
|
Pin muxing and GPIO controller (Ocelot family). |
|
|
|
Serial GPIO controller (multiplexed GPIO over serial interface). |
3.7. Networking
| Compatible String | Driver | Kconfig | Description |
|---|---|---|---|
Ethernet Switch |
|||
|
|
Switchdev Ethernet driver (Sparx5/LAN969x) |
|
|
|
Switchdev Ethernet driver (LAN966x) |
|
|
|
DSA Ethernet switch driver (LAN9645x) |
|
MDIO / MII Management |
|||
|
|
MDIO bus controller for PHY management |
|
SerDes PHY |
|||
|
|
High-speed SerDes PHY (Sparx5/LAN969x). Auto-selected by |
|
|
|
SerDes PHY (LAN966x) |
|
|
|
SerDes PHY (LAN9645x) |
|
3.8. Security and Cryptography
| Compatible String | Driver | Kconfig | Description |
|---|---|---|---|
|
|
Hardware True Random Number Generator |
|
|
|
AES hardware crypto accelerator. |
|
|
|
SHA hardware crypto accelerator (SHA-1/224/256/384/512). |
|
|
|
One-Time Programmable (OTP) memory. |
3.9. DMA and Hardware Monitoring
| Compatible String | Driver | Kconfig | Description |
|---|---|---|---|
|
|
Extended DMA (XDMAC) controller |
|
|
|
On-die temperature sensor (Sparx5/LAN969x) |
|
|
|
Hardware monitoring - temperature/fan (LAN966x) |
3.10. System Control, Interrupts, and Debug
| Compatible String | Driver | Kconfig | Description |
|---|---|---|---|
System Control |
|||
|
syscon (generic) |
|
CPU system control registers (regmap) |
Interrupt Controllers |
|||
|
|
Outbound Interrupt Controller (LAN9645x) |
|
Multi-Function Devices |
|||
|
|
SPI-based MFD providing bus access to LAN9645x |
|
Debug and Development |
|||
|
|
Symbol register debugfs interface (debug only) |
|
|
|
UIO interrupt multiplexer for userspace I/O |
|
4. References
-
Linux Device Tree Specification: https://devicetree-specification.readthedocs.io/
-
Linux Kernel Documentation:
Documentation/devicetree/bindings/ -
Microchip Linux Kernel Source: https://github.com/microchip-ung/linux
-
Microchip Ethernet Switch Solutions: https://www.microchip.com/en-us/products/ethernet-switches