#
f563dc1d |
| 21-Jan-2016 |
Simon Glass <sjg@chromium.org> |
dm: panel: Add a panel uclass
LCD panels can usefully be modelled as their own uclass. They can be probed (which powers them up ready for use). If they have a backlight, this can be enabled.
Signed
dm: panel: Add a panel uclass
LCD panels can usefully be modelled as their own uclass. They can be probed (which powers them up ready for use). If they have a backlight, this can be enabled.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
#
363bf77a |
| 21-Jan-2016 |
Simon Glass <sjg@chromium.org> |
dm: backlight: Add a backlight uclass
LCD panels normally have a backlight which can be controlled to illuminate the LCD contents. Add a uclass to support this. Initially it only has a method to ena
dm: backlight: Add a backlight uclass
LCD panels normally have a backlight which can be controlled to illuminate the LCD contents. Add a uclass to support this. Initially it only has a method to enable the backlight.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
#
fc760cb8 |
| 21-Jan-2016 |
Simon Glass <sjg@chromium.org> |
dm: pwm: Add a PWM uclass
Add a uclass that supports Pulse Width Modulation (PWM) devices. It provides methods to enable/disable and configure the device.
Signed-off-by: Simon Glass <sjg@chromium.o
dm: pwm: Add a PWM uclass
Add a uclass that supports Pulse Width Modulation (PWM) devices. It provides methods to enable/disable and configure the device.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
#
5fd6badb |
| 21-Jan-2016 |
Simon Glass <sjg@chromium.org> |
dm: Add a power sequencing uclass
Some devices need special sequences to be used when starting up. Add a uclass for this. Drivers can be added to provide specific features as needed.
Signed-off-by:
dm: Add a power sequencing uclass
Some devices need special sequences to be used when starting up. Add a uclass for this. Drivers can be added to provide specific features as needed.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
#
6905f4d3 |
| 21-Jan-2016 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-dm
|
#
83510766 |
| 18-Jan-2016 |
Simon Glass <sjg@chromium.org> |
dm: video: Add a uclass for the text console
The existing LCD/video interface suffers from conflating the bitmap display with text output on that display. As a result the implementation is more comp
dm: video: Add a uclass for the text console
The existing LCD/video interface suffers from conflating the bitmap display with text output on that display. As a result the implementation is more complex than it needs to me.
We can support multiple text console drivers. Create a separate uclass to support this, with its own API.
Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Anatolij Gustschin <agust@denx.de>
show more ...
|
#
1acafc73 |
| 18-Jan-2016 |
Simon Glass <sjg@chromium.org> |
dm: video: Add a video uclass
U-Boot has separate code for LCDs and 'video' devices. Both now use a very similar API thanks to earlier work by Nikita Kiryanov. With the driver- model conversion we s
dm: video: Add a video uclass
U-Boot has separate code for LCDs and 'video' devices. Both now use a very similar API thanks to earlier work by Nikita Kiryanov. With the driver- model conversion we should unify these into a single uclass.
Unfortunately there are different features supported by each. This implementation provides for a common set of features which should serve most purposes. The intent is to support:
- bitmap devices with 8, 16 and 32 bits per pixel - text console wih white on black or vice versa - rotated text console - bitmap display (BMP format)
More can be added as additional boards are ported over to use driver model for video.
The name 'video' is chosen for the uclass since it is more generic than LCD. Another option would be 'display' but that would introduce a third concept to U-Boot which seems like the wrong approach.
The existing LCD and video init functions are not needed now, so this uclass makes no attempt to implement them.
Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Anatolij Gustschin <agust@denx.de>
show more ...
|
Revision tags: v2016.01-rc1, v2015.10, v2015.10-rc5, v2015.10-rc4 |
|
#
34ab37ee |
| 08-Sep-2015 |
Simon Glass <sjg@chromium.org> |
dm: usb: Add support for USB keyboards with driver model
Switch USB keyboards over to use driver model instead of scanning with the horrible usb_get_dev_index() function. This involves creating a ne
dm: usb: Add support for USB keyboards with driver model
Switch USB keyboards over to use driver model instead of scanning with the horrible usb_get_dev_index() function. This involves creating a new uclass for keyboards, although so far there is no API.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
#
5f5620ab |
| 12-Nov-2015 |
Stefano Babic <sbabic@denx.de> |
Merge git://git.denx.de/u-boot
|
#
d8587993 |
| 07-Nov-2015 |
Thomas Chou <thomas@wytron.com.tw> |
dm: implement a MTD uclass
Implement a Memory Technology Device (MTD) uclass. It should include most flash drivers in the future. Though no uclass ops are defined yet, the MTD ops could be used.
Th
dm: implement a MTD uclass
Implement a Memory Technology Device (MTD) uclass. It should include most flash drivers in the future. Though no uclass ops are defined yet, the MTD ops could be used.
The NAND flash driver is based on MTD. The CFI flash and SPI flash support MTD, too. It should make sense to convert them to MTD uclass.
Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
show more ...
|
#
60b25259 |
| 05-Nov-2015 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-samsung
|
#
5decbf53 |
| 27-Oct-2015 |
Przemyslaw Marczak <p.marczak@samsung.com> |
dm: adc: add simple ADC uclass implementation
This commit adds: - new uclass id: UCLASS_ADC - new uclass driver: drivers/adc/adc-uclass.c
The new uclass's API allows for ADC operation on: * single-
dm: adc: add simple ADC uclass implementation
This commit adds: - new uclass id: UCLASS_ADC - new uclass driver: drivers/adc/adc-uclass.c
The new uclass's API allows for ADC operation on: * single-channel with channel selection by a number * multti-channel with channel selection by bit mask
ADC uclass's functions: * single-channel: - adc_start_channel() - start channel conversion - adc_channel_data() - get conversion data - adc_channel_single_shot() - start/get conversion data * multi-channel: - adc_start_channels() - start selected channels conversion - adc_channels_data() - get conversion data - adc_channels_single_shot() - start/get conversion data for channels selected by bit mask * general: - adc_stop() - stop the conversion - adc_vdd_value() - positive reference Voltage value with polarity [uV] - adc_vss_value() - negative reference Voltage value with polarity [uV] - adc_data_mask() - conversion data bit mask
The device tree can provide below constraints/properties: - vdd-polarity-negative: if true: Vdd = vdd-microvolts * (-1) - vss-polarity-negative: if true: Vss = vss-microvolts * (-1) - vdd-supply: phandle to Vdd regulator's node - vss-supply: phandle to Vss regulator's node And optional, checked only if the above corresponding, doesn't exist: - vdd-microvolts: positive reference Voltage [uV] - vss-microvolts: negative reference Voltage [uV]
Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
show more ...
|
#
e573bdb3 |
| 30-Oct-2015 |
Stefano Babic <sbabic@denx.de> |
Merge branch 'master' of git://git.denx.de/u-boot
|
#
a69fdc77 |
| 23-Oct-2015 |
Stefano Babic <sbabic@denx.de> |
Merge branch 'master' of git://git.denx.de/u-boot
|
#
4395e06e |
| 07-Oct-2015 |
Thomas Chou <thomas@wytron.com.tw> |
dm: implement a Miscellaneous uclass
Implement a Miscellaneous uclass with generic read or write operations. This class is used only for those do not fit other more general classes.
Signed-off-by:
dm: implement a Miscellaneous uclass
Implement a Miscellaneous uclass with generic read or write operations. This class is used only for those do not fit other more general classes.
Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
#
c8a7ba9e |
| 09-Oct-2015 |
Thomas Chou <thomas@wytron.com.tw> |
dm: implement a Timer uclass
Implement a Timer uclass to work with lib/time.c.
Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Acked-by: Simon Glass <sjg@chromium.org>
|
#
ddf56bc7 |
| 17-Sep-2015 |
Nishanth Menon <nm@ti.com> |
drivers: Introduce a simplified remoteproc framework
Many System on Chip(SoC) solutions are complex with multiple processors on the same die dedicated to either general purpose of specialized functi
drivers: Introduce a simplified remoteproc framework
Many System on Chip(SoC) solutions are complex with multiple processors on the same die dedicated to either general purpose of specialized functions. Many examples do exist in today's SoCs from various vendors. Typical examples are micro controllers such as an ARM M3/M0 doing a offload of specific function such as event integration or power management or controlling camera etc.
Traditionally, the responsibility of loading up such a processor with a firmware and communication has been with a High Level Operating System(HLOS) such as Linux. However, there exists classes of products where Linux would need to expect services from such a processor or the delay of Linux and operating system being able to load up such a firmware is unacceptable.
To address these needs, we need some minimal capability to load such a system and ensure it is started prior to an Operating System(Linux or any other) is started up.
NOTE: This is NOT meant to be a solve-all solution, instead, it tries to address certain class of SoCs and products that need such a solution.
A very simple model is introduced here as part of the initial support that supports microcontrollers with internal memory (no MMU, no execution from external memory, or specific image format needs). This basic framework can then (hopefully) be extensible to other complex SoC processor support as need be.
Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Nishanth Menon <nm@ti.com> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
Revision tags: v2015.10-rc3 |
|
#
80cd58b9 |
| 31-Aug-2015 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-dm
|
#
d90a5a30 |
| 26-Aug-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
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
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>
show more ...
|
#
f255d31f |
| 22-Aug-2015 |
Simon Glass <sjg@chromium.org> |
dm: tpm: Add a uclass for Trusted Platform Modules
Add a new uclass for TPMs which uses almost the same TIS (TPM Interface Specification) as is currently implemented. Since init() is handled by the
dm: tpm: Add a uclass for Trusted Platform Modules
Add a new uclass for TPMs which uses almost the same TIS (TPM Interface Specification) as is currently implemented. Since init() is handled by the normal driver model probe() method, we don't need to implement that. Also rename the transfer method to xfer() which is a less clumbsy name.
Once all drivers and users are converted to driver model we can remove the old code.
Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Christophe Ricard<christophe-h.ricard@st.com> Reviewed-by: Heiko Schocher <hs@denx.de>
show more ...
|
Revision tags: v2015.10-rc2 |
|
#
ae27120c |
| 06-Aug-2015 |
Tom Rini <trini@konsulko.com> |
Merge git://git.denx.de/u-boot-dm
|
Revision tags: v2015.10-rc1, v2015.07 |
|
#
801ab9e9 |
| 02-Jul-2015 |
Simon Glass <sjg@chromium.org> |
dm: video: Add support for video bridges
A video bridge typically converts video from one format to another, e.g. DisplayPort to LVDS. Add driver model support for these with a simple interface to c
dm: video: Add support for video bridges
A video bridge typically converts video from one format to another, e.g. DisplayPort to LVDS. Add driver model support for these with a simple interface to control activation and backlight. The uclass supports GPIO control of power and reset lines.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
#
3d1957f0 |
| 03-Aug-2015 |
Simon Glass <sjg@chromium.org> |
dm: i2c: Add support for multiplexed I2C buses
Add a new I2C_MUX uclass. Devices in this class can multiplex between several I2C buses, selecting them one at a time for use by the system. The multip
dm: i2c: Add support for multiplexed I2C buses
Add a new I2C_MUX uclass. Devices in this class can multiplex between several I2C buses, selecting them one at a time for use by the system. The multiplexing mechanism is left to the driver to decide - it may be controlled by GPIOs, for example.
The uclass supports only two methods: select() and deselect().
The current mux state is expected to be stored in the mux itself since it is the only thing that knows how to make things work. The mux can record the current state and then avoid switching unless it is necessary. So select() can be skipped if the mux is already in the correct state. Also deselect() can be made a nop if required.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
Revision tags: v2015.07-rc3 |
|
#
f26c8a8e |
| 23-Jun-2015 |
Simon Glass <sjg@chromium.org> |
dm: Add a clock uclass
Clocks are an important feature of platforms and have become increasing complex with time. Most modern SoCs have multiple PLLs and dozens of clock dividers which distribute cl
dm: Add a clock uclass
Clocks are an important feature of platforms and have become increasing complex with time. Most modern SoCs have multiple PLLs and dozens of clock dividers which distribute clocks to on-chip peripherals.
Some SoC implementations have a clock API which is private to that SoC family, e.g. Tegra and Exynos. This is useful but it would be better to have a common API that can be understood and used throughout U-Boot.
Add a simple clock API as a starting point. It supports querying and setting the rate of a clock. Each clock is a device. To reduce memory and processing overhead the concept of peripheral clocks is provided. These do not need to be explicit devices - it is possible to write a driver that can adjust the I2C clock (for example) without an explicit I2C clock device. This can dramatically reduce the number of devices (and associated overhead) in a complex SoC.
Clocks are referenced by a number, and it is expected that SoCs will define that numbering themselves via an enum.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
#
f9917454 |
| 23-Jun-2015 |
Simon Glass <sjg@chromium.org> |
dm: Add a system reset uclass
It is common for system reset to be available at multiple levels in modern hardware. For example, an SoC may provide a reset option, and a board may provide its own res
dm: Add a system reset uclass
It is common for system reset to be available at multiple levels in modern hardware. For example, an SoC may provide a reset option, and a board may provide its own reset for reasons of security or thoroughness. It is useful to be able to model this hardware without hard-coding the behaviour in the SoC or board. Also there is a distinction sometimes between resetting just the CPU (leaving GPIO state alone) and resetting all the PMICs, just cutting power.
To achieve this, add a simple system reset uclass. It allows multiple devices to provide reset functionality and provides a way to walk through them, requesting a particular reset type until is it provided.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|