Prepare v2023.10
[platform/kernel/u-boot.git] / include / dm / uclass-id.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (c) 2013 Google, Inc
4  *
5  * (C) Copyright 2012
6  * Pavel Herrmann <morpheus.ibis@gmail.com>
7  *
8  * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
9  *
10  * Authors:
11  *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
12  */
13
14 #ifndef _DM_UCLASS_ID_H
15 #define _DM_UCLASS_ID_H
16
17 /* TODO(sjg@chromium.org): this could be compile-time generated */
18 enum uclass_id {
19         /* These are used internally by driver model */
20         UCLASS_ROOT = 0,
21         UCLASS_DEMO,
22         UCLASS_TEST,
23         UCLASS_TEST_FDT,
24         UCLASS_TEST_FDT_MANUAL,
25         UCLASS_TEST_BUS,
26         UCLASS_TEST_PROBE,
27         UCLASS_TEST_DUMMY,
28         UCLASS_TEST_DEVRES,
29         UCLASS_TEST_ACPI,
30         UCLASS_SPI_EMUL,        /* sandbox SPI device emulator */
31         UCLASS_I2C_EMUL,        /* sandbox I2C device emulator */
32         UCLASS_I2C_EMUL_PARENT, /* parent for I2C device emulators */
33         UCLASS_PCI_EMUL,        /* sandbox PCI device emulator */
34         UCLASS_PCI_EMUL_PARENT, /* parent for PCI device emulators */
35         UCLASS_USB_EMUL,        /* sandbox USB bus device emulator */
36         UCLASS_AXI_EMUL,        /* sandbox AXI bus device emulator */
37
38         /* U-Boot uclasses start here - in alphabetical order */
39         UCLASS_ACPI_PMC,        /* (x86) Power-management controller (PMC) */
40         UCLASS_ADC,             /* Analog-to-digital converter */
41         UCLASS_AHCI,            /* SATA disk controller */
42         UCLASS_AUDIO_CODEC,     /* Audio codec with control and data path */
43         UCLASS_AXI,             /* AXI bus */
44         UCLASS_BLK,             /* Block device */
45         UCLASS_BLKMAP,          /* Composable virtual block device */
46         UCLASS_BOOTCOUNT,       /* Bootcount backing store */
47         UCLASS_BOOTDEV,         /* Boot device for locating an OS to boot */
48         UCLASS_BOOTMETH,        /* Bootmethod for booting an OS */
49         UCLASS_BOOTSTD,         /* Standard boot driver */
50         UCLASS_BUTTON,          /* Button */
51         UCLASS_CACHE,           /* Cache controller */
52         UCLASS_CLK,             /* Clock source, e.g. used by peripherals */
53         UCLASS_CPU,             /* CPU, typically part of an SoC */
54         UCLASS_CROS_EC,         /* Chrome OS EC */
55         UCLASS_DISPLAY,         /* Display (e.g. DisplayPort, HDMI) */
56         UCLASS_DMA,             /* Direct Memory Access */
57         UCLASS_DSA,             /* Distributed (Ethernet) Switch Architecture */
58         UCLASS_DSI_HOST,        /* Display Serial Interface host */
59         UCLASS_ECDSA,           /* Elliptic curve cryptographic device */
60         UCLASS_EFI_LOADER,      /* Devices created by UEFI applications */
61         UCLASS_EFI_MEDIA,       /* Devices provided by UEFI firmware */
62         UCLASS_ETH,             /* Ethernet device */
63         UCLASS_ETH_PHY,         /* Ethernet PHY device */
64         UCLASS_EXTCON,          /* External Connector Class */
65         UCLASS_FFA,             /* Arm Firmware Framework for Armv8-A */
66         UCLASS_FFA_EMUL,                /* sandbox FF-A device emulator */
67         UCLASS_FIRMWARE,        /* Firmware */
68         UCLASS_FPGA,            /* FPGA device */
69         UCLASS_FUZZING_ENGINE,  /* Fuzzing engine */
70         UCLASS_FS_FIRMWARE_LOADER,              /* Generic loader */
71         UCLASS_FWU_MDATA,       /* FWU Metadata Access */
72         UCLASS_GPIO,            /* Bank of general-purpose I/O pins */
73         UCLASS_HASH,            /* Hash device */
74         UCLASS_HWSPINLOCK,      /* Hardware semaphores */
75         UCLASS_HOST,            /* Sandbox host device */
76         UCLASS_I2C,             /* I2C bus */
77         UCLASS_I2C_EEPROM,      /* I2C EEPROM device */
78         UCLASS_I2C_GENERIC,     /* Generic I2C device */
79         UCLASS_I2C_MUX,         /* I2C multiplexer */
80         UCLASS_I2S,             /* I2S bus */
81         UCLASS_IDE,             /* IDE device */
82         UCLASS_IOMMU,           /* IOMMU */
83         UCLASS_IRQ,             /* Interrupt controller */
84         UCLASS_KEYBOARD,        /* Keyboard input device */
85         UCLASS_LED,             /* Light-emitting diode (LED) */
86         UCLASS_LPC,             /* x86 'low pin count' interface */
87         UCLASS_MAILBOX,         /* Mailbox controller */
88         UCLASS_MASS_STORAGE,    /* Mass storage device */
89         UCLASS_MDIO,            /* MDIO bus */
90         UCLASS_MDIO_MUX,        /* MDIO MUX/switch */
91         UCLASS_MEMORY,          /* Memory Controller device */
92         UCLASS_MISC,            /* Miscellaneous device */
93         UCLASS_MMC,             /* SD / MMC card or chip */
94         UCLASS_MOD_EXP,         /* RSA Mod Exp device */
95         UCLASS_MTD,             /* Memory Technology Device (MTD) device */
96         UCLASS_MUX,             /* Multiplexer device */
97         UCLASS_NOP,             /* No-op devices */
98         UCLASS_NORTHBRIDGE,     /* Intel Northbridge / SDRAM controller */
99         UCLASS_NVME,            /* NVM Express device */
100         UCLASS_NVMXIP,          /* NVM XIP devices */
101         UCLASS_P2SB,            /* (x86) Primary-to-Sideband Bus */
102         UCLASS_PANEL,           /* Display panel, such as an LCD */
103         UCLASS_PANEL_BACKLIGHT, /* Backlight controller for panel */
104         UCLASS_PARTITION,       /* Logical disk partition device */
105         UCLASS_PCH,             /* x86 platform controller hub */
106         UCLASS_PCI,             /* PCI bus */
107         UCLASS_PCI_EP,          /* PCI endpoint device */
108         UCLASS_PCI_GENERIC,     /* Generic PCI bus device */
109         UCLASS_PHY,             /* Physical Layer (PHY) device */
110         UCLASS_PINCONFIG,       /* Pin configuration node device */
111         UCLASS_PINCTRL,         /* Pinctrl (pin muxing/configuration) device */
112         UCLASS_PMIC,            /* PMIC I/O device */
113         UCLASS_POWER_DOMAIN,    /* (SoC) Power domains */
114         UCLASS_PVBLOCK,         /* Xen virtual block device */
115         UCLASS_PWM,             /* Pulse-width modulator */
116         UCLASS_PWRSEQ,          /* Power sequence device */
117         UCLASS_QFW,             /* QEMU firmware config device */
118         UCLASS_RAM,             /* RAM controller */
119         UCLASS_REBOOT_MODE,     /* Reboot mode */
120         UCLASS_REGULATOR,       /* Regulator device */
121         UCLASS_REMOTEPROC,      /* Remote Processor device */
122         UCLASS_RESET,           /* Reset controller device */
123         UCLASS_RNG,             /* Random Number Generator */
124         UCLASS_RTC,             /* Real time clock device */
125         UCLASS_SCMI_AGENT,      /* Interface with an SCMI server */
126         UCLASS_SCSI,            /* SCSI device */
127         UCLASS_SERIAL,          /* Serial UART */
128         UCLASS_SIMPLE_BUS,      /* Bus with child devices */
129         UCLASS_SMEM,            /* Shared memory interface */
130         UCLASS_SOC,             /* SOC Device */
131         UCLASS_SOUND,           /* Playing simple sounds */
132         UCLASS_SPI,             /* SPI bus */
133         UCLASS_SPI_FLASH,       /* SPI flash */
134         UCLASS_SPI_GENERIC,     /* Generic SPI flash target */
135         UCLASS_SPMI,            /* System Power Management Interface bus */
136         UCLASS_SYSCON,          /* System configuration device */
137         UCLASS_SYSINFO,         /* Device information from hardware */
138         UCLASS_SYSRESET,        /* System reset device */
139         UCLASS_TEE,             /* Trusted Execution Environment device */
140         UCLASS_THERMAL,         /* Thermal sensor */
141         UCLASS_TIMER,           /* Timer device */
142         UCLASS_TPM,             /* Trusted Platform Module TIS interface */
143         UCLASS_UFS,             /* Universal Flash Storage */
144         UCLASS_USB,             /* USB bus */
145         UCLASS_USB_DEV_GENERIC, /* USB generic device */
146         UCLASS_USB_HUB,         /* USB hub */
147         UCLASS_USB_GADGET_GENERIC,      /* USB generic device */
148         UCLASS_VIDEO,           /* Video or LCD device */
149         UCLASS_VIDEO_BRIDGE,    /* Video bridge, e.g. DisplayPort to LVDS */
150         UCLASS_VIDEO_CONSOLE,   /* Text console driver for video device */
151         UCLASS_VIDEO_OSD,       /* On-screen display */
152         UCLASS_VIRTIO,          /* VirtIO transport device */
153         UCLASS_W1,              /* Dallas 1-Wire bus */
154         UCLASS_W1_EEPROM,       /* one-wire EEPROMs */
155         UCLASS_WDT,             /* Watchdog Timer driver */
156
157         UCLASS_COUNT,
158         UCLASS_INVALID = -1,
159 };
160
161 #endif