2014-02-26 22:59:18 +00:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2013 Google, Inc
|
|
|
|
*
|
|
|
|
* (C) Copyright 2012
|
|
|
|
* Pavel Herrmann <morpheus.ibis@gmail.com>
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _DM_UCLASS_ID_H
|
|
|
|
#define _DM_UCLASS_ID_H
|
|
|
|
|
|
|
|
/* TODO(sjg@chromium.org): this could be compile-time generated */
|
|
|
|
enum uclass_id {
|
|
|
|
/* These are used internally by driver model */
|
|
|
|
UCLASS_ROOT = 0,
|
|
|
|
UCLASS_DEMO,
|
|
|
|
UCLASS_TEST,
|
|
|
|
UCLASS_TEST_FDT,
|
2014-07-23 12:55:18 +00:00
|
|
|
UCLASS_TEST_BUS,
|
2014-10-14 05:41:53 +00:00
|
|
|
UCLASS_SPI_EMUL, /* sandbox SPI device emulator */
|
2014-12-10 15:55:49 +00:00
|
|
|
UCLASS_I2C_EMUL, /* sandbox I2C device emulator */
|
2015-03-05 19:25:28 +00:00
|
|
|
UCLASS_PCI_EMUL, /* sandbox PCI device emulator */
|
2015-03-25 18:22:37 +00:00
|
|
|
UCLASS_USB_EMUL, /* sandbox USB bus device emulator */
|
2015-04-15 03:03:19 +00:00
|
|
|
UCLASS_SIMPLE_BUS, /* bus with child devices */
|
2014-02-26 22:59:18 +00:00
|
|
|
|
2015-04-15 03:03:19 +00:00
|
|
|
/* U-Boot uclasses start here - in alphabetical order */
|
2015-10-27 12:08:00 +00:00
|
|
|
UCLASS_ADC, /* Analog-to-digital converter */
|
2015-06-23 21:39:15 +00:00
|
|
|
UCLASS_CLK, /* Clock source, e.g. used by peripherals */
|
2015-04-15 03:03:19 +00:00
|
|
|
UCLASS_CPU, /* CPU, typically part of an SoC */
|
|
|
|
UCLASS_CROS_EC, /* Chrome OS EC */
|
2015-04-15 03:03:38 +00:00
|
|
|
UCLASS_DISPLAY_PORT, /* Display port video */
|
2015-06-23 21:39:04 +00:00
|
|
|
UCLASS_RAM, /* RAM controller */
|
2015-04-15 03:03:19 +00:00
|
|
|
UCLASS_ETH, /* Ethernet device */
|
2014-07-23 12:55:17 +00:00
|
|
|
UCLASS_GPIO, /* Bank of general-purpose I/O pins */
|
2014-12-10 15:55:47 +00:00
|
|
|
UCLASS_I2C, /* I2C bus */
|
2014-12-10 15:55:54 +00:00
|
|
|
UCLASS_I2C_EEPROM, /* I2C EEPROM device */
|
2015-04-15 03:03:19 +00:00
|
|
|
UCLASS_I2C_GENERIC, /* Generic I2C device */
|
2015-08-03 14:19:21 +00:00
|
|
|
UCLASS_I2C_MUX, /* I2C multiplexer */
|
2015-09-08 17:15:11 +00:00
|
|
|
UCLASS_KEYBOARD, /* Keyboard input device */
|
2015-06-23 21:38:45 +00:00
|
|
|
UCLASS_LED, /* Light-emitting diode (LED) */
|
2015-04-15 03:03:19 +00:00
|
|
|
UCLASS_LPC, /* x86 'low pin count' interface */
|
|
|
|
UCLASS_MASS_STORAGE, /* Mass storage device */
|
2015-10-07 12:20:51 +00:00
|
|
|
UCLASS_MISC, /* Miscellaneous device */
|
2015-06-23 21:38:48 +00:00
|
|
|
UCLASS_MMC, /* SD / MMC card or chip */
|
2015-01-23 10:31:52 +00:00
|
|
|
UCLASS_MOD_EXP, /* RSA Mod Exp device */
|
2015-11-07 06:20:31 +00:00
|
|
|
UCLASS_MTD, /* Memory Technology Device (MTD) device */
|
2015-04-15 03:03:19 +00:00
|
|
|
UCLASS_PCH, /* x86 platform controller hub */
|
2015-03-05 19:25:25 +00:00
|
|
|
UCLASS_PCI, /* PCI bus */
|
|
|
|
UCLASS_PCI_GENERIC, /* Generic PCI bus device */
|
pinctrl: add pin control uclass support
This creates a new framework for handling of pin control devices,
i.e. devices that control different aspects of package pins.
This uclass handles pinmuxing and pin configuration; pinmuxing
controls switching among silicon blocks that share certain physical
pins, pin configuration handles electronic properties such as pin-
biasing, load capacitance etc.
This framework can support the same device tree bindings, but if you
do not need full interface support, you can disable some features to
reduce memory foot print. Typically around 1.5KB is necessary to
include full-featured uclass support on ARM board (CONFIG_PINCTRL +
CONFIG_PINCTRL_FULL + CONFIG_PINCTRL_GENERIC + CONFIG_PINCTRL_PINMUX),
for example.
We are often limited on code size for SPL. Besides, we still have
many boards that do not support device tree configuration. The full
pinctrl, which requires OF_CONTROL, does not make sense for those
boards. So, this framework also has a Do-It-Yourself (let's say
simple pinctrl) interface. With CONFIG_PINCTRL_FULL disabled, the
uclass itself provides no systematic mechanism for identifying the
peripheral device, applying pinctrl settings, etc. They must be
done in each low-level driver. In return, you can save much memory
footprint and it might be useful especially for SPL.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Simon Glass <sjg@chromium.org>
2015-08-27 03:44:29 +00:00
|
|
|
UCLASS_PINCTRL, /* Pinctrl (pin muxing/configuration) device */
|
|
|
|
UCLASS_PINCONFIG, /* Pin configuration node device */
|
2015-05-22 21:42:14 +00:00
|
|
|
UCLASS_PMIC, /* PMIC I/O device */
|
2016-01-22 02:44:54 +00:00
|
|
|
UCLASS_PWM, /* Pulse-width modulator */
|
2016-01-22 02:43:31 +00:00
|
|
|
UCLASS_PWRSEQ, /* Power sequence device */
|
2015-05-22 21:42:14 +00:00
|
|
|
UCLASS_REGULATOR, /* Regulator device */
|
2015-06-23 21:39:13 +00:00
|
|
|
UCLASS_RESET, /* Reset device */
|
2015-09-17 20:42:39 +00:00
|
|
|
UCLASS_REMOTEPROC, /* Remote Processor device */
|
2015-04-15 03:03:19 +00:00
|
|
|
UCLASS_RTC, /* Real time clock device */
|
|
|
|
UCLASS_SERIAL, /* Serial UART */
|
|
|
|
UCLASS_SPI, /* SPI bus */
|
|
|
|
UCLASS_SPI_FLASH, /* SPI flash */
|
2015-05-22 21:42:14 +00:00
|
|
|
UCLASS_SPI_GENERIC, /* Generic SPI flash target */
|
2015-06-23 21:38:43 +00:00
|
|
|
UCLASS_SYSCON, /* System configuration device */
|
2015-04-15 03:03:19 +00:00
|
|
|
UCLASS_THERMAL, /* Thermal sensor */
|
2015-10-09 05:46:34 +00:00
|
|
|
UCLASS_TIMER, /* Timer device */
|
2015-08-23 00:31:31 +00:00
|
|
|
UCLASS_TPM, /* Trusted Platform Module TIS interface */
|
2015-03-25 18:21:59 +00:00
|
|
|
UCLASS_USB, /* USB bus */
|
2015-03-25 18:22:31 +00:00
|
|
|
UCLASS_USB_DEV_GENERIC, /* USB generic device */
|
2015-04-15 03:03:19 +00:00
|
|
|
UCLASS_USB_HUB, /* USB hub */
|
2016-01-19 02:52:15 +00:00
|
|
|
UCLASS_VIDEO, /* Video or LCD device */
|
2015-07-03 00:16:08 +00:00
|
|
|
UCLASS_VIDEO_BRIDGE, /* Video bridge, e.g. DisplayPort to LVDS */
|
2016-01-19 02:52:17 +00:00
|
|
|
UCLASS_VIDEO_CONSOLE, /* Text console driver for video device */
|
2014-02-26 22:59:18 +00:00
|
|
|
|
|
|
|
UCLASS_COUNT,
|
|
|
|
UCLASS_INVALID = -1,
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|