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

sparx5_pcb134.dts

PCB134 (eMMC)

ARMv8

sparx5_pcb134_emmc.dts

PCB135 (NAND)

ARMv8

sparx5_pcb135.dts

PCB135 (eMMC)

ARMv8

sparx5_pcb135_emmc.dts

LAN969x

EV89P81A

ARMv8

lan969x_ev89p81a.dts

EV23X71A

ARMv8

lan969x_ev23x71a.dts

LAN966x

PCB8290

ARMv7

lan966x-pcb8290.dts

PCB8291

ARMv7

lan966x-pcb8291.dts

PCB8309

ARMv7

lan966x-pcb8309.dts

PCB8385 (LAN9645x EVB)

ARMv7

lan966x-pcb8385-lan9645x-evb.dts

Common Include Files

Sparx5 SoC

ARMv8

sparx5.dtsi

Sparx5 NAND

ARMv8

sparx5_nand.dtsi

LAN969x SoC

ARMv8

lan969x.dtsi

LAN966x SoC

ARMv7

lan966x.dtsi

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

microchip,sparx5-dpll

Reset Controllers

microchip,sparx5-switch-reset

Communication (UART/SPI/I2C)

microchip,sparx5-spi
atmel,at91sam9260-usart

Storage (eMMC)

microchip,dw-sparx5-sdhci

Network (Switch/MDIO/SerDes)

microchip,sparx5-switch
mscc,ocelot-miim
microchip,sparx5-serdes

GPIO and Pin Control

microchip,sparx5-pinctrl
microchip,sparx5-sgpio
microchip,sparx5-sgpio-bank

Hardware Monitoring

microchip,sparx5-temp

System Control/Debug

microchip,sparx5-cpu-syscon
microchip,sparx5-symreg

2.2. LAN969x

Mid-range industrial Ethernet switch SoC (ARMv8 64-bit, up to 30 ports, TSN features).

Peripheral Category Compatible Strings

Clock Controllers

microchip,lan9691-gck

Reset Controllers

microchip,lan969x-switch-reset

Communication (UART/SPI/I2C)

microchip,sam9x60-i2c
atmel,at91sam9260-usart
atmel,at91rm9200-spi
atmel,sama5d2-flexcom

Storage (eMMC)

microchip,lan969x-sdhci

Network (Switch/MDIO/SerDes)

microchip,lan9691-switch
mscc,ocelot-miim
microchip,lan9691-serdes

GPIO and Pin Control

microchip,lan9691-pinctrl
microchip,sparx5-sgpio
microchip,sparx5-sgpio-bank

USB Controllers

microchip,lan966x-dwc3

Security/Crypto/OTP

atmel,at91sam9g45-trng
atmel,at91sam9g46-aes
atmel,at91sam9g46-sha
microchip,lan969x-otp

DMA Controllers

microchip,sama7g5-dma

Hardware Monitoring

microchip,sparx5-temp

System Control/Debug

microchip,sparx5-cpu-syscon
microchip,uio_lan969x_irqmux
microchip,sparx5-symreg

2.4. LAN9645x

External 9-port managed switch chip accessible via SPI (DSA architecture).

Peripheral Category Compatible Strings

Communication (I2C)

mchp,lan9645x-i2c

Network (Switch/SerDes)

microchip,lan9645x-switch
microchip,lan9645x-serdes

GPIO and Pin Control

microchip,lan9645x-pinctrl
microchip,lan9645x-sgpio

Interrupt/MFD Controllers

microchip,lan9645x-oic
microchip,lan9645x-spi

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

microchip,sparx5-pcb134 / microchip,sparx5-pcb135

Sparx5 board variants (PCB134, PCB135)

microchip,sparx5

Sparx5 SoC platform

microchip,lan9691

LAN9691 (LAN969x) SoC platform

microchip,lan9668-pcb8290 / microchip,lan9662-pcb8291 / microchip,lan9662-pcb8309

LAN966x board variants

microchip,lan9668-pcb8385

LAN9668 PCB8385 with LAN9645x EVB

microchip,lan9668 / microchip,lan9662 / microchip,lan966

LAN966x SoC platform identifiers

3.2. Clock and Reset

Compatible String Driver Kconfig Description

microchip,sparx5-dpll

sparx5-clk

CONFIG_COMMON_CLK_LAN966X

Sparx5 DPLL clock controller

microchip,lan9691-gck
microchip,lan966x-gck

lan966x-clk

CONFIG_COMMON_CLK_LAN966X

Clock gate controller for LAN969x/LAN966x

microchip,sparx5-switch-reset
microchip,lan969x-switch-reset
microchip,lan966x-switch-reset

sparx5-reset

CONFIG_RESET_MCHP_SPARX5

Ethernet switch reset controller

microchip,lan966x-phy-reset-external

lan966x-phy-reset-external

CONFIG_RESET_MCHP_LAN966X_PHY

External PHY reset controller (LAN966x only)

3.3. Communication Interfaces

Compatible String Driver Kconfig Description

UART / Serial

atmel,at91sam9260-usart

at91-usart

CONFIG_MFD_AT91_USART

AT91 USART serial controller (MFD).
See LAN966x USART, LAN969x USART.

SPI

microchip,sparx5-spi

dw-spi-mmio

CONFIG_SPI_DW_MMIO

DesignWare SPI controller (Sparx5)

atmel,at91rm9200-spi

atmel_spi

CONFIG_SPI_ATMEL

Atmel AT91/AT32 SPI controller.
See LAN966x SPI, LAN969x SPI.

microchip,lan966x-qspi

atmel_qspi

CONFIG_SPI_ATMEL_QUADSPI

Quad SPI controller (LAN966x).
See LAN966x QSPI, LAN969x QSPI.

I2C / TWI

microchip,sam9x60-i2c

i2c-at91

CONFIG_I2C_AT91

I2C/TWI controller for AT91/SAM SoCs.
See LAN966x I2C, LAN969x I2C.

mchp,lan9645x-i2c

lan9645x-i2c

CONFIG_I2C_DESIGNWARE_PLATFORM

I2C controller for LAN9645x (via SPI MFD)

Flexcom

atmel,sama5d2-flexcom

atmel-flexcom

CONFIG_MFD_ATMEL_FLEXCOM

Flexible serial controller (USART/SPI/TWI).
See LAN966x Flexcom, LAN969x Flexcom.

3.4. Storage

Compatible String Driver Kconfig Description

atmel,24c01

at24

CONFIG_EEPROM_AT24

I2C EEPROM (AT24 series)

microchip,dw-sparx5-sdhci

sdhci-sparx5

CONFIG_MMC_SDHCI_OF_SPARX5

SD/eMMC host controller (Sparx5)

microchip,lan969x-sdhci
microchip,lan966x-sdhci

sdhci-at91

CONFIG_MMC_SDHCI_OF_AT91

SD/eMMC host controller (LAN969x/LAN966x).
See LAN966x SDMMC, LAN969x SDMMC.

3.5. USB

Compatible String Driver Kconfig Description

microchip,lan966x-dwc3

dwc3-of-simple

CONFIG_USB_DWC3

USB 2.0/3.0 host controller (LAN966x/LAN969x).
See LAN969x USB.

microchip,lan9662-udc
atmel,sama5d3-udc

atmel-usba-udc

CONFIG_USB_ATMEL_USBA

USB device controller (gadget mode).
See LAN966x UDPHS.

3.6. GPIO and Pin Control

Compatible String Driver Kconfig Description

microchip,sparx5-pinctrl
microchip,lan9691-pinctrl
microchip,lan966x-pinctrl
microchip,lan9645x-pinctrl

pinctrl-ocelot

CONFIG_PINCTRL_OCELOT

Pin muxing and GPIO controller (Ocelot family).
See LAN966x GPIO, LAN969x GPIO.

microchip,sparx5-sgpio
microchip,lan9645x-sgpio
microchip,sparx5-sgpio-bank

microchip-sgpio

CONFIG_PINCTRL_MICROCHIP_SGPIO

Serial GPIO controller (multiplexed GPIO over serial interface).
See LAN969x SGPIO.

3.7. Networking

Compatible String Driver Kconfig Description

Ethernet Switch

microchip,sparx5-switch
microchip,lan9691-switch

sparx5-switch

CONFIG_SPARX5_SWITCH

Switchdev Ethernet driver (Sparx5/LAN969x)

microchip,lan966x-switch

lan966x-switch

CONFIG_LAN966X_SWITCH

Switchdev Ethernet driver (LAN966x)

microchip,lan9645x-switch

lan9645x-switch

CONFIG_NET_DSA_MICROCHIP_LAN9645X

DSA Ethernet switch driver (LAN9645x)

MDIO / MII Management

mscc,ocelot-miim
microchip,lan966x-miim
microchip,lan9668-miim

mscc-miim

CONFIG_MDIO_MSCC_MIIM

MDIO bus controller for PHY management

SerDes PHY

microchip,sparx5-serdes
microchip,lan9691-serdes

sparx5-serdes

CONFIG_PHY_SPARX5_SERDES

High-speed SerDes PHY (Sparx5/LAN969x). Auto-selected by CONFIG_SPARX5_SWITCH.

microchip,lan966x-serdes

lan966x-serdes

CONFIG_PHY_LAN966X_SERDES

SerDes PHY (LAN966x)

microchip,lan9645x-serdes

lan9645x-serdes

CONFIG_PHY_LAN9645X_SERDES

SerDes PHY (LAN9645x)

3.8. Security and Cryptography

Compatible String Driver Kconfig Description

atmel,at91sam9g45-trng

atmel-rng

CONFIG_HW_RANDOM_ATMEL

Hardware True Random Number Generator

atmel,at91sam9g46-aes

atmel-aes

CONFIG_CRYPTO_DEV_ATMEL_AES

AES hardware crypto accelerator.
See LAN966x Crypto HW Accelerators.

atmel,at91sam9g46-sha

atmel-sha

CONFIG_CRYPTO_DEV_ATMEL_SHA

SHA hardware crypto accelerator (SHA-1/224/256/384/512).
See LAN966x Crypto HW Accelerators.

microchip,lan969x-otp
microchip,lan9668-otpc
microchip,lan9662-otpc

lan9662-otp

CONFIG_NVMEM_LAN9662_OTPC

One-Time Programmable (OTP) memory.
See LAN966x OTP, LAN969x OTP.

3.9. DMA and Hardware Monitoring

Compatible String Driver Kconfig Description

microchip,sama7g5-dma

at_xdmac

CONFIG_AT_XDMAC

Extended DMA (XDMAC) controller

microchip,sparx5-temp

sparx5-temp

CONFIG_SENSORS_SPARX5

On-die temperature sensor (Sparx5/LAN969x)

microchip,lan9668-hwmon

lan966x-hwmon

CONFIG_SENSORS_LAN966X

Hardware monitoring - temperature/fan (LAN966x)

3.10. System Control, Interrupts, and Debug

Compatible String Driver Kconfig Description

System Control

microchip,sparx5-cpu-syscon
microchip,lan966x-cpu-syscon

syscon (generic)

CONFIG_MFD_SYSCON

CPU system control registers (regmap)

Interrupt Controllers

microchip,lan9645x-oic

lan9645x-oic

CONFIG_LAN9645X_OIC

Outbound Interrupt Controller (LAN9645x)

Multi-Function Devices

microchip,lan9645x-spi

lan9645x-spi

CONFIG_MFD_MICROCHIP_LAN9645X_SPI

SPI-based MFD providing bus access to LAN9645x

Debug and Development

microchip,sparx5-symreg

sparx5-symreg

CONFIG_SPARX5_SYMREG

Symbol register debugfs interface (debug only)

microchip,uio_lan969x_irqmux
microchip,uio_lan966x_irqmux

uio_sparx5_irqmux

CONFIG_UIO_SPARX5_IRQMUX

UIO interrupt multiplexer for userspace I/O

4. References