summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2015-07-21dm: remove redundant CONFIG_DM from driver/core/MakefileMasahiro Yamada
As you see in driver/Makefile, Kbuild descends into the driver/core/ directory only when CONFIG_DM is enabled. Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Simon Glass <[email protected]>
2015-07-21dm: do not set DM_FLAG_ACTIVATED twiceMasahiro Yamada
Currently, DM_FLAG_ACTIVATED is set twice; before calling uclass_pre_probe_device() and again before calling drv->probe(). It looks like Simon's intention is the first one. The DM_FLAG_ACTIVATED was moved twice, by commit 02eeb1bbb174 (dm: core: Mark device as active before calling its probe() method), and then by commit 206d4d2b4b30 (dm: core: Mark device as active before calling uclass probe() methods). The first marking was added by the last move. Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Simon Glass <[email protected]>
2015-07-21dm: change dm_warn() message into debug() in uclass_add()Masahiro Yamada
The command "dm uclass" tries to display all the UClasses, but some of them might be disabled by Kconfig. The function do_dm_dump_uclass() iterates over all the UClass IDs and calls uclass_get() for each of them. Then, it displays annoying message "Cannot find uclass for id ..." every time it fails to get the UClass. As a result, we get much noisier log for the "dm uclass" command. => dm uclass uclass 0: root - * root_driver @ bfb54028, seq 0, (req -1) Cannot find uclass for id 1: please add the UCLASS_DRIVER() ... Cannot find uclass for id 2: please add the UCLASS_DRIVER() ... Cannot find uclass for id 3: please add the UCLASS_DRIVER() ... Cannot find uclass for id 4: please add the UCLASS_DRIVER() ... Cannot find uclass for id 5: please add the UCLASS_DRIVER() ... Cannot find uclass for id 6: please add the UCLASS_DRIVER() ... This commit suppresses these warnings. Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Simon Glass <[email protected]>
2015-07-21dm: core: Add device checking to syscon_get_regmap()Simon Glass
This function can only handle a syscon device. It is possible that someone will make a mistake, so add a check for this. Also we should return -ENODEV when a device cannot be found, so update the syscon_get_regmap_by_driver_data() to follow this convention. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: test: Add a test for the system controller uclassSimon Glass
Add a test to confirm that we can access system controllers and find their driver data. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: test: Add a test for the LED uclassSimon Glass
Add a test to confirm that we can adjust LEDs using the led_gpio driver. Signed-off-by: Simon Glass <[email protected]>
2015-07-21led: Return -ENODEV if the LED device cannot be foundSimon Glass
We normally use -ENODEV for a missing device, rather than -ENOENT. The latter is reserved for when we have a device but cannot find something within it. Also avoid looking at the root LED device since it is only a container. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: test: Add a test for the mmc uclassSimon Glass
Add a test to confirm that we can probe this device. Since there is no MMC stack support in sandbox at present, this is as far as the test goes. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: test: Add a test for the ram uclassSimon Glass
Add a test to confirm that we can probe this device and get information on the available RAM. Signed-off-by: Simon Glass <[email protected]>
2015-07-21sandbox: Use the reset driver to handle resetSimon Glass
Move sandbox over to use the reset uclass for reset, instead of a direct call to do_reset(). This allows us to add tests. Signed-off-by: Simon Glass <[email protected]>
2015-07-21sandbox: Add a warm and cold reset driverSimon Glass
Add drivers for sandbox. One can only perform a warm reset (which does nothing). The other can perform a cold reset or a power reset (the latter will quit U-Boot). These can be used for testing the reset uclass. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: reset: Allow reset_walk() to returnSimon Glass
Add a new reset_walk_halt() function to cause a reset and then halt on failure. The reset_walk() function returns an error code. This is needed for testing since otherwise U-Boot will halt in the middle of a test. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: test: Add tests for the clk uclassSimon Glass
Add tests of each API call using a sandbox clock device. Signed-off-by: Simon Glass <[email protected]>
2015-07-21power: pmic: Use trailing_strtol() instead of a local functionSimon Glass
Use the common function to obtain the number from the end of the string, instead of a local function. Also tweak the position of a debug() statement. Signed-off-by: Simon Glass <[email protected]> Tested-by: Przemyslaw Marczak <[email protected]> Acked-by: Przemyslaw Marczak <[email protected]>
2015-07-21dm: Add a clock uclassSimon Glass
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 <[email protected]>
2015-07-21dm: Add a system reset uclassSimon Glass
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 <[email protected]>
2015-07-21ns16550: Improve debug UART so it can work with 32-bit accessSimon Glass
Since Rockchip requires 32-bit serial access, add this to the driver. Refactor a little to make this easier. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: spi: Make local functions staticSimon Glass
Several functions in this file should be marked as static. Update them. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: Add support for RAM driversSimon Glass
Add support for a driver which sets up DRAM and can return information about the amount of RAM available. This is a first step towards moving RAM init to driver model. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: pmic: Add functions to adjust PMIC registersSimon Glass
It is a common requirement to update some PMIC registers. Provide some simple convenience functions to do this. Signed-off-by: Simon Glass <[email protected]> Tested-by: Przemyslaw Marczak <[email protected]> Acked-by: Przemyslaw Marczak <[email protected]>
2015-07-21dm: power: Use debug() for errors in regulator uclassSimon Glass
To reduce unnecessary code size in an uncommon code path, use debug() where possible(). The driver returns an error which indicates failure. Signed-off-by: Simon Glass <[email protected]> Tested-by: Przemyslaw Marczak <[email protected]> Acked-by: Przemyslaw Marczak <[email protected]>
2015-07-21dm: power: Add a function to set up all regulatorsSimon Glass
The device tree provides information about which regulators should be on at boot, or always on. Use this to set them up automatically. Signed-off-by: Simon Glass <[email protected]> Tested-by: Przemyslaw Marczak <[email protected]> Acked-by: Przemyslaw Marczak <[email protected]>
2015-07-21dm: pmic: Split output from functionSimon Glass
The regulator_autoset() function mixes printf() output and PMIC adjustment code. It provides a boolean to control the output. It is better to avoid missing logic and output, and this permits a smaller SPL code size. So split the output into a separate function. Also rename the function to have a by_name() suffix, since we would like to be able to pass a device when we know it, and thus avoid the name search. Signed-off-by: Simon Glass <[email protected]> Tested-by: Przemyslaw Marczak <[email protected]> Acked-by: Przemyslaw Marczak <[email protected]>
2015-07-21dm: power: Add regulator flags to centralise auto-set logicSimon Glass
Decide when the regulator is set up whether we want to auto-set the voltage or current. This avoids the complex logic spilling into the processing code. Signed-off-by: Simon Glass <[email protected]> Tested-by: Przemyslaw Marczak <[email protected]> Acked-by: Przemyslaw Marczak <[email protected]>
2015-07-21dm: power: Avoid case-insensitve match for child namesSimon Glass
This is not user input (i.e. from the command line). It should be possible to get the case correct and avoid the case-insensitive match. This will help avoid sloppy device tree setups. Signed-off-by: Simon Glass <[email protected]> Tested-by: Przemyslaw Marczak <[email protected]> Acked-by: Przemyslaw Marczak <[email protected]>
2015-07-21mmc: Add debug() output on read errorsSimon Glass
Allow read errors to be diagnosed more easily. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: mmc: Add an MMC uclassSimon Glass
Add basic support for MMC, providing a uclass which can set up an MMC device. This allows MMC drivers to move to using driver model. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: led: Add a driver for GPIO-controlled LEDsSimon Glass
Add a simple driver which allows use of LEDs attached to GPIOs. The linux device tree binding is used. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: Add support for LEDsSimon Glass
Add a simple uclass for LEDs, so that these can be controlled by the device tree and activated when needed. LEDs are referred to by their label. This implementation requires a driver for each type of LED (e.g GPIO, I2C). Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: Add support for generic system controllers (syscon)Simon Glass
Many SoCs have a number of system controllers which are dealt with as a group by a single driver. It is a pain to have to add lots of compatible strings and/or separate drivers for each. Instead we can identify the controllers by a number and request the address of the one we want. Add a simple implementation of this which can be used by SoC driver code. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: Add support for register maps (regmap)Simon Glass
Add a simple implementaton of register maps, supporting only direct I/O for now. This can be enhanced later to support buses which have registers, such as I2C, SPI and PCI. It allows drivers which can operate with multiple buses to avoid dealing with the particulars of register access on that bus. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: gpio: Add dm_gpio_request() to manually request a GPIOSimon Glass
This function can be used for testing to manually request a GPIO for use, without resorting to the legacy GPIO API. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: gpio: Add dm_gpio_lookup_name() to look up a GPIO nameSimon Glass
Provide a driver-model function to look up a GPIO name. Make the standard function use it. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: gpio: Allow GPIO uclass to be used in SPLSimon Glass
Now that we support driver model in SPL, allow GPIO drivers to be used there also. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: core: Correct device_get_child_by_of_offset() parameterSimon Glass
This parameter is named 'seq' but should be named 'of_offset'. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: core: Add a function to find any device from device treeSimon Glass
In some rare cases it is useful to be able to locate a device given a device tree node offset. An example is when you have an alias that points to a node and you want to find the associated device. The device may be SPI, MMC or something else, but you don't need to know the uclass to find it. Add a function to do a global search for a device, given its device tree offset. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: core: Use debug() instead of printf() for failuresSimon Glass
To avoid bloating SPL code, use debug() where possible in the driver model core code. The error code is already returned, and can be investigated as needed. Signed-off-by: Simon Glass <[email protected]>
2015-07-21dm: Move the tree/uclass dump code into its own fileSimon Glass
In SPL it is sometimes useful to be able to obtain a dump of the current driver model state. Since commands are not available, provide a way to directly call the functions to output this information. Adjust the existing commands to use these functions. Signed-off-by: Simon Glass <[email protected]>
2015-07-20Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriqTom Rini
2015-07-20driver/ldpaa_eth:Avoid infinite loop in ldpaa_eth_rxPrabhakar Kushwaha
Change infinite loop mechanism to timer based polling for QBMAN release in ldpaa_eth_rx. Signed-off-by: Prabhakar Kushwaha <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20driver/ldpaa_eth: Avoid TX conf framesPrabhakar Kushwaha
Polling of TX conf frames is not a mandatory option. Packets can be transferred via WRIOP without TX conf frame. Configure ldpaa_eth driver to use TX path without confirmation frame Signed-off-by: Prabhakar Kushwaha <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20driver/ldpaa_eth: Add timeout handling DQRR entry readPrabhakar Kushwaha
Volatile command does not return frame immidiately, need to wait till a frame is available in DQRR. Ideally it should be a blocking call. Add timeout handling for DQRR frame instead of retry counter. Signed-off-by: Prabhakar Kushwaha <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20driver/ldpaa_eth: Retry enqueue if portal was busyPrabhakar Kushwaha
Do not immediately return if the enqueue function returns -EBUSY; re-try mulitple times. if timeout occures, release the buffer. Signed-off-by: Prabhakar Kushwaha <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20armv8/fsl-lsch3: device tree fixups for PCI stream IDsStuart Yoder
This patch adds the infrastructure to update device tree nodes to convey SMMU stream IDs in the device tree. Fixups are implemented for PCI controllers initially. Signed-off-by: Stuart Yoder <[email protected]> Signed-off-by: Prabhakar Kushwaha <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20drivers/fsl-mc: dynamically create ICID pool in DPCStuart Yoder
delete any existing ICID pools in the DPC and create a new one based on the stream ID partitioning for the SoC Signed-off-by: Stuart Yoder <[email protected]> Signed-off-by: Prabhakar Kushwaha <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20armv8/fsl-lsch3: partition stream IDsStuart Yoder
Stream IDs on ls2085a devices are not hardwired and are programmed by sw. There are a limited number of stream IDs available, and the partitioning of them is scenario dependent. This header defines the partitioning between legacy, PCI, and DPAA2 devices. Signed-off-by: Stuart Yoder <[email protected]> Signed-off-by: Prabhakar Kushwaha <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20drivers: fsl-mc: Return error for major version mismatchPrabhakar Kushwaha
Management complex major version should match to the firmware present in flash. Return error during mismatch of major version. Signed-off-by: Prabhakar Kushwaha <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20drivers: fsl-mc: Update qbman driverPrabhakar Kushwaha
Update qbman driver - As per latest available qbman driver - Use of atomic APIs Signed-off-by: Prabhakar Kushwaha <[email protected]> CC: Geoff Thorpe <[email protected]> CC: Haiying Wang <[email protected]> CC: Roy Pledge <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20drivers: fsl-mc: Update flibs to mc-0.6.0.1Prabhakar Kushwaha
Update flibs changes to mc-0.6.0.1 for dpmang, dprc, dpni and dpio objects Also rename qbman_portal_ce/ci_paddr to qbman_portal_ce/ci_offset in dpio_attr. These are now offsets from the SoC QBMan portals base. Signed-off-by: J. German Rivera <[email protected]> Signed-off-by: Prabhakar Kushwaha <[email protected]> Reviewed-by: York Sun <[email protected]>
2015-07-20drivers/fsl-mc: Autoload AOIP image from NOR flashJ. German Rivera
Load AIOP image from NOR flash into DDR so that the MC firmware the MC fw can start it at boot time Signed-off-by: J. German Rivera <[email protected]> Signed-off-by: Prabhakar Kushwaha <[email protected]> Reviewed-by: York Sun <[email protected]>