xref: /openbmc/u-boot/include/dm/uclass-id.h (revision 667ff89b241c32353d33e81e6cca10b894fa8b70)
183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
26494d708SSimon Glass /*
36494d708SSimon Glass  * Copyright (c) 2013 Google, Inc
46494d708SSimon Glass  *
56494d708SSimon Glass  * (C) Copyright 2012
66494d708SSimon Glass  * Pavel Herrmann <morpheus.ibis@gmail.com>
76494d708SSimon Glass  */
86494d708SSimon Glass 
96494d708SSimon Glass #ifndef _DM_UCLASS_ID_H
106494d708SSimon Glass #define _DM_UCLASS_ID_H
116494d708SSimon Glass 
126494d708SSimon Glass /* TODO(sjg@chromium.org): this could be compile-time generated */
136494d708SSimon Glass enum uclass_id {
146494d708SSimon Glass 	/* These are used internally by driver model */
156494d708SSimon Glass 	UCLASS_ROOT = 0,
166494d708SSimon Glass 	UCLASS_DEMO,
176494d708SSimon Glass 	UCLASS_TEST,
186494d708SSimon Glass 	UCLASS_TEST_FDT,
191ca7e206SSimon Glass 	UCLASS_TEST_BUS,
2098561572SSimon Glass 	UCLASS_TEST_PROBE,
21e8d52918SMario Six 	UCLASS_TEST_DUMMY,
22c60e1f25SSimon Glass 	UCLASS_SPI_EMUL,	/* sandbox SPI device emulator */
23c70c71d8SSimon Glass 	UCLASS_I2C_EMUL,	/* sandbox I2C device emulator */
24b7c25b11SSimon Glass 	UCLASS_I2C_EMUL_PARENT,	/* parent for I2C device emulators */
2536d0d3b4SSimon Glass 	UCLASS_PCI_EMUL,	/* sandbox PCI device emulator */
26019808f9SSimon Glass 	UCLASS_USB_EMUL,	/* sandbox USB bus device emulator */
279a8bcabdSMario Six 	UCLASS_AXI_EMUL,	/* sandbox AXI bus device emulator */
286494d708SSimon Glass 
293d7cf419SSimon Glass 	/* U-Boot uclasses start here - in alphabetical order */
305decbf53SPrzemyslaw Marczak 	UCLASS_ADC,		/* Analog-to-digital converter */
31a219639dSSimon Glass 	UCLASS_AHCI,		/* SATA disk controller */
32ce6d99a0SSimon Glass 	UCLASS_AUDIO_CODEC,	/* Audio codec with control and data path */
33759a99c2SPhilipp Tomsich 	UCLASS_AXI,		/* AXI bus */
3409d71aacSSimon Glass 	UCLASS_BLK,		/* Block device */
355381c285SMario Six 	UCLASS_BOARD,		/* Device information from hardware */
36ebb73de1SPhilipp Tomsich 	UCLASS_BOOTCOUNT,       /* Bootcount backing store */
37f26c8a8eSSimon Glass 	UCLASS_CLK,		/* Clock source, e.g. used by peripherals */
383d7cf419SSimon Glass 	UCLASS_CPU,		/* CPU, typically part of an SoC */
393d7cf419SSimon Glass 	UCLASS_CROS_EC,		/* Chrome OS EC */
402dcf1433SSimon Glass 	UCLASS_DISPLAY,		/* Display (e.g. DisplayPort, HDMI) */
41a0594cefSMugunthan V N 	UCLASS_DMA,		/* Direct Memory Access */
4205ef48a2SHeinrich Schuchardt 	UCLASS_EFI,		/* EFI managed devices */
433d7cf419SSimon Glass 	UCLASS_ETH,		/* Ethernet device */
44759a99c2SPhilipp Tomsich 	UCLASS_FIRMWARE,	/* Firmware */
4562030004STien Fong Chee 	UCLASS_FS_FIRMWARE_LOADER,		/* Generic loader */
460040b944SSimon Glass 	UCLASS_GPIO,		/* Bank of general-purpose I/O pins */
477f84fc67SBenjamin Gaignard 	UCLASS_HWSPINLOCK,	/* Hardware semaphores */
483d7cf419SSimon Glass 	UCLASS_I2C,		/* I2C bus */
493d7cf419SSimon Glass 	UCLASS_I2C_EEPROM,	/* I2C EEPROM device */
503d7cf419SSimon Glass 	UCLASS_I2C_GENERIC,	/* Generic I2C device */
513d1957f0SSimon Glass 	UCLASS_I2C_MUX,		/* I2C multiplexer */
52e96fa6c9SSimon Glass 	UCLASS_I2S,		/* I2S bus */
5368e6f221SBin Meng 	UCLASS_IDE,		/* IDE device */
54e76187a3SSimon Glass 	UCLASS_IRQ,		/* Interrupt controller */
5534ab37eeSSimon Glass 	UCLASS_KEYBOARD,	/* Keyboard input device */
565917112cSSimon Glass 	UCLASS_LED,		/* Light-emitting diode (LED) */
573d7cf419SSimon Glass 	UCLASS_LPC,		/* x86 'low pin count' interface */
586238935dSStephen Warren 	UCLASS_MAILBOX,		/* Mailbox controller */
593d7cf419SSimon Glass 	UCLASS_MASS_STORAGE,	/* Mass storage device */
60e6b48dfdSryan_chen 	UCLASS_MDIO,            /* Management Data Input/Output (MDIO) device */
614395e06eSThomas Chou 	UCLASS_MISC,		/* Miscellaneous device */
62e7ecf7cbSSimon Glass 	UCLASS_MMC,		/* SD / MMC card or chip */
633d7cf419SSimon Glass 	UCLASS_MOD_EXP,		/* RSA Mod Exp device */
64d8587993SThomas Chou 	UCLASS_MTD,		/* Memory Technology Device (MTD) device */
65*667ff89bSJean-Jacques Hiblot 	UCLASS_NOP,		/* No-op devices */
665544757cSSimon Glass 	UCLASS_NORTHBRIDGE,	/* Intel Northbridge / SDRAM controller */
67ffab6945SZhikang Zhang 	UCLASS_NVME,		/* NVM Express device */
68f563dc1dSSimon Glass 	UCLASS_PANEL,		/* Display panel, such as an LCD */
69363bf77aSSimon Glass 	UCLASS_PANEL_BACKLIGHT,	/* Backlight controller for panel */
703d7cf419SSimon Glass 	UCLASS_PCH,		/* x86 platform controller hub */
713d7cf419SSimon Glass 	UCLASS_PCI,		/* PCI bus */
723d7cf419SSimon Glass 	UCLASS_PCI_GENERIC,	/* Generic PCI bus device */
7372e5016fSJean-Jacques Hiblot 	UCLASS_PHY,		/* Physical Layer (PHY) device */
74d90a5a30SMasahiro Yamada 	UCLASS_PINCONFIG,	/* Pin configuration node device */
756f0e7a36SBin Meng 	UCLASS_PINCTRL,		/* Pinctrl (pin muxing/configuration) device */
764e389366SSimon Glass 	UCLASS_PMIC,		/* PMIC I/O device */
7761f5ddcbSStephen Warren 	UCLASS_POWER_DOMAIN,	/* (SoC) Power domains */
78759a99c2SPhilipp Tomsich 	UCLASS_PWM,		/* Pulse-width modulator */
795fd6badbSSimon Glass 	UCLASS_PWRSEQ,		/* Power sequence device */
806f0e7a36SBin Meng 	UCLASS_RAM,		/* RAM controller */
814e389366SSimon Glass 	UCLASS_REGULATOR,	/* Regulator device */
82ddf56bc7SNishanth Menon 	UCLASS_REMOTEPROC,	/* Remote Processor device */
8389c1e2daSStephen Warren 	UCLASS_RESET,		/* Reset controller device */
843d7cf419SSimon Glass 	UCLASS_RTC,		/* Real time clock device */
85e8a016b5SMichal Simek 	UCLASS_SCSI,		/* SCSI device */
8657d92753SSimon Glass 	UCLASS_SERIAL,		/* Serial UART */
8725cbb470SSimon Glass 	UCLASS_SIMPLE_BUS,	/* Bus with child devices */
887b384eccSRamon Fried 	UCLASS_SMEM,		/* Shared memory interface */
89d4901898SSimon Glass 	UCLASS_SOUND,		/* Playing simple sounds */
90d7af6a48SSimon Glass 	UCLASS_SPI,		/* SPI bus */
914c2dbefdSSimon Glass 	UCLASS_SPI_FLASH,	/* SPI flash */
924e389366SSimon Glass 	UCLASS_SPI_GENERIC,	/* Generic SPI flash target */
93759a99c2SPhilipp Tomsich 	UCLASS_SPMI,		/* System Power Management Interface bus */
9457251285SSimon Glass 	UCLASS_SYSCON,		/* System configuration device */
9511636258SStephen Warren 	UCLASS_SYSRESET,	/* System reset device */
969ff4a311SJens Wiklander 	UCLASS_TEE,		/* Trusted Execution Environment device */
97e3568d2eSYe.Li 	UCLASS_THERMAL,		/* Thermal sensor */
98c8a7ba9eSThomas Chou 	UCLASS_TIMER,		/* Timer device */
99f255d31fSSimon Glass 	UCLASS_TPM,		/* Trusted Platform Module TIS interface */
100de31213fSSimon Glass 	UCLASS_USB,		/* USB bus */
101449230f0SSimon Glass 	UCLASS_USB_DEV_GENERIC,	/* USB generic device */
1023d7cf419SSimon Glass 	UCLASS_USB_HUB,		/* USB hub */
10301311624SJean-Jacques Hiblot 	UCLASS_USB_GADGET_GENERIC,	/* USB generic device */
1041acafc73SSimon Glass 	UCLASS_VIDEO,		/* Video or LCD device */
105801ab9e9SSimon Glass 	UCLASS_VIDEO_BRIDGE,	/* Video bridge, e.g. DisplayPort to LVDS */
10683510766SSimon Glass 	UCLASS_VIDEO_CONSOLE,	/* Text console driver for video device */
10739a336f1SMario Six 	UCLASS_VIDEO_OSD,	/* On-screen display */
1088fb49b4cSBin Meng 	UCLASS_VIRTIO,		/* VirtIO transport device */
109d3e19cf9SMaxime Ripard 	UCLASS_W1,		/* Dallas 1-Wire bus */
110c924ee25SMaxime Ripard 	UCLASS_W1_EEPROM,	/* one-wire EEPROMs */
11172384ff2SChris Packham 	UCLASS_WDT,		/* Watchdog Timer driver */
1126494d708SSimon Glass 
1136494d708SSimon Glass 	UCLASS_COUNT,
1146494d708SSimon Glass 	UCLASS_INVALID = -1,
1156494d708SSimon Glass };
1166494d708SSimon Glass 
1176494d708SSimon Glass #endif
118