summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2018-12-13dm: sound: Complete migration to driver modelSimon Glass
All users of sound are converted to use driver model. Drop the old code and the CONFIG_DM_SOUND option. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: exynos: sound: Convert to use driver modelSimon Glass
Update snow's device tree and config to use driver model for sound. Also update the others as best we can. Spring does not appear to have audio support in the kernel. The smdk5250 and smdk5420 boards use a wolfson codec which I cannot test with. So the only boards that is tested and known to work are snow, pit and pi. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: exynos: Add support for max98090Simon Glass
Add support for this new codec which is used by pit. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Move common code out of maxim98095Simon Glass
The register-access code is useful for any maxim codec. Move it out into its own file. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Add conversion to driver modelSimon Glass
Move the existing hardware drivers over to use driver model. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Start i2c IDs from 0Simon Glass
The current ID enums start from 1 but there does not seem to be any reason that they cannot start with 0. Adjust the code to avoid the +1 in codec_init(). Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: core: Add a function to read into a unsigned intSimon Glass
The current dev_read...() functions use s32 and u32 which are convenient for device tree but not so useful for normal code, which often wants to use normal integers for values. Add a helper which supports returning an unsigned int. Also add signed versions of the unsigned readers. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Create a uclass for soundSimon Glass
The sound driver pulls together the audio codec and i2s drivers in order to actually make sounds. It supports setup() and play() methods. The sound_find_codec_i2s() function allows locating the linked codec and i2s devices. They can be referred to from uclass-private data. Add a uclass and a test for sound. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Create a uclass for i2sSimon Glass
The i2s bus is commonly used with audio codecs. It provides a way to stream digital data sychronously in both directions. U-Boot only supports audio output, so this uclass is very simple, with a single tx_data() method. Add a uclass and a test for i2s. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Create a uclass for audio codecsSimon Glass
An audio codec provides a way to convert digital data to sound and vice versa. Add a simple uclass which just supports setting the parameters for the codec. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Rename samsung_i2s_priv to i2s_uc_privSimon Glass
This structure contains information that is likely needed by any i2s driver so it seems useful to attach it to the (forthcoming) i2c uclass. For now, just rename it. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Create an option to use driver model for soundSimon Glass
The U-Boot sound system provides basic support for beeping. At present it does not use driver model, but it needs to be converted. Add an option to enable driver model for sound. For now it is not connected to anything. Future work will add drivers which use this option. It will then be removed once everything is converted. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: exynos: Correct codec bus addressesSimon Glass
For snow the codec is at address 0x11 on the i2c bus, in 7-bit format. The device tree and code are in 8-bit format (i.e. shifted left one bit). Fix both. Fix pit in a similar way. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Fix up header orderingSimon Glass
Tidy up the ordering of header files in the sounds files. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: wm8994: Drop wm8994_i2c_init()Simon Glass
This function has only one line in it. Drop it. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: max98095: Drop g_codec_info and g_max98095_infoSimon Glass
These are only used in two functions so can be made local. Also change the first argument of max98095_do_init() to suit. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: wm8994: Drop g_codec_info and g_wm8994_infoSimon Glass
These are only used in two functions so can be made local. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: max98095: Drop global i2c-address variableSimon Glass
We can put this in the private structure and avoid a global. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: wm8994: Drop global i2c-address variableSimon Glass
We can put this in the private structure and avoid a global. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: max98095: Split out interface setup codeSimon Glass
With driver model we want to do a minimal probe when the device is probed and then set up the codec interface later when a sound is actully played. Split this setup code out into its own function to help with this. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: wm899c: Split out interface setup codeSimon Glass
With driver model we want to do a minimal probe when the device is probed and then set up the codec interface later when a sound is actully played. Split this setup code out into its own function to help with this. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: wm8994: Create a new common init functionSimon Glass
With driver model we cannot pass in the global struct, but instead want to pass in the driver-private data. Split some of the code out of wm8994_init() to handle this. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: max98095: Pass private data to internal functionsSimon Glass
At present the driver-private data is global. To allow this code to be used with driver model, change it to pass the data down to each function. Use the name 'priv' consistently throughout. Also rename max98095_update_bits() to max98095_bic_or() which is more descriptive and shorter, thus breaking fewer lines with the parameter addition. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: wm8994: Pass private data to internal functionsSimon Glass
At present the driver-private data is global. To allow this code to be used with driver model, change it to pass the data down to each function. Use the name 'priv' consistently throughout. Also rename wm8994_update_bits() to wm8994_bic_or() which is more descriptive and shorter, thus breaking fewer lines with the parameter addition. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Drop codec_typeSimon Glass
This field is not really used. It is always set to a known value. Drop it to simplify the code. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: samsung: Rename i2stx_info to samsung_i2s_privSimon Glass
This struct is only used by the Samsung I2C driver and should move into that driver. For now, rename it so it is clear that is driver-private info. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: Drop unused pre-device-tree codeSimon Glass
CONFIG_OF_CONTROL is enabled for all boards that use sound, so remove the dead code. Signed-off-by: Simon Glass <[email protected]>
2018-12-13dm: sound: samsung: Make local function staticSimon Glass
Several functions are not exported from this file. Make them static so this is clear. Signed-off-by: Simon Glass <[email protected]>
2018-12-13Merge branch 'master' of git://git.denx.de/u-boot-i2cTom Rini
2018-12-12firmware: psci: introduce SPL_ARM_PSCI_FWPeng Fan
Introduce a new macro SPL_ARM_PSCI_FW Signed-off-by: Peng Fan <[email protected]> Reviewed-by: Stefano Babic <[email protected]>
2018-12-12spl: fix build failure with !CONFIG_SPL_PCI_SUPPORTSekhar Nori
Building U-Boot with CONFIG_PCI and CONFIG_DM_PCI enabled, but CONFIG_SPL_PCI_SUPPORT disabled, results in following linker error: lib/built-in.o: In function `fdtdec_get_pci_bar32': lib/fdtdec.c:305: undefined reference to `dm_pci_read_bar32' fdtdec.c:305:(.text.fdtdec_get_pci_bar32+0x24): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `dm_pci_read_bar32' This is because reference to dm_pci_read_bar32() remains in lib/fdtdec.c while SPL build does not descend into drivers/pci directory in drivers/Makefile if CONFIG_SPL_PCI_SUPPORT is not enabled. Fix this by applying appropriate #define guards in lib/fdtdec.c. It looks like ns16550.c has the same problem, so fixed that too. To simplify this, CONFIG_SPL_PCI_SUPPORT is renamed to CONFIG_SPL_PCI (enables use of CONFIG_IS_ENABLED() macro). Suggested-by: Vignesh R <[email protected]> Signed-off-by: Sekhar Nori <[email protected]> Reviewed-by: Lokesh Vutla <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2018-12-12blk: Rework guard around part_init callTom Rini
The function part_init() will only be built when we have both CONFIG_PARTITIONS and CONFIG_HAVE_BLOCK_DEVICE set. Protect the call to this function with both of these tests now. Cc: Simon Glass <[email protected]> Cc: Philipp Tomsich <[email protected]> Cc: Michal Simek <[email protected]> Cc: York Sun <[email protected]> Cc: Prabhakar Kushwaha <[email protected]> Cc: Mingkai Hu <[email protected]> Cc: Stefan Roese <[email protected]> Cc: Marek BehĂșn <[email protected]> Cc: Vanessa Maegima <[email protected]> Cc: Eugen Hristev <[email protected]> Cc: Adam Ford <[email protected]> Cc: Jagan Teki <[email protected]> Cc: Tom Warren <[email protected]> Cc: Stephen Warren <[email protected]> Cc: Vitaly Andrianov <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2018-12-12i2c: tegra: Fix regression by implementing a dummy probe_chip() callbackJean-Jacques Hiblot
Commit f32a8007ef0f ("dm: i2c: Make i2c_get_chip_for_busnum() fail if the chip is not detected") introduced a regression for the NVIDIA Jetson TX2. For some reason the xfer callback of the tegra i2c driver doesn't support probing the I2C devices with a 0-length message. Fixing the regression by providing a dummy implementation of probe_chip() that does nothing. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Tested-by: Stephen Warren <[email protected]>
2018-12-10Merge tag 'fsl-qoriq-for-v2019.01-rc2' of git://git.denx.de/u-boot-fsl-qoriqTom Rini
Add TFA boot flow for some Layerscape platforms Add support for lx2160a SoC [trini: Add a bunch of missing MAINTAINERS entries] Signed-off-by: Tom Rini <[email protected]>
2018-12-10Merge tag 'for-master-20181210' of git://git.denx.de/u-boot-rockchipTom Rini
Improvements: - init DRAM for RK322x in SPL - add FAN53555 PMIC/regulator driver - update MicroCrystal RV3029 driver to Kconfig and sync from Linux - add bootcount uclass and first DM-driver for bootcount
2018-12-10Merge branch 'master' of git://git.denx.de/u-boot-i2cTom Rini
- DM_I2C_COMPAT removal for all ti platforms from Jean-Jacques Hiblot - Fix in i2c command help output from Chirstoph Muellner.
2018-12-10Merge branch 'master' of git://git.denx.de/u-boot-usbTom Rini
- DWC3 and UDC cleanup
2018-12-10power: add FAN53555 family supportPhilipp Tomsich
This adds a driver for the FAN53555 family of regulators and wraps it in a PMIC implementation. While these devices support a 'normal' and 'suspend' mode (controlled via an external pin) to switch between two programmable voltages, this incarnation of the driver assumes that the device is always operating in 'normal' mode. Only setting/reading the programmed voltage is supported at this time and the following device functionality remains unsupported: - switching the selected voltage (via a GPIO) - disabling the voltage output via software-control This matches the functionality of the Linux driver. Tested on a RK3399-Q7 (with 'option 5' devices): setting voltages from the U-Boot shell and verifying output voltages on the board. Signed-off-by: Philipp Tomsich <[email protected]> Tested-by: Klaus Goger <[email protected]>
2018-12-10bootcount: add a DM RTC backing store for bootcountPhilipp Tomsich
This implements a driver using a RTC-based backing store for the DM bootcount implementation. The node configuring this feature will be compatible with 'u-boot,bootcount-rtc' and the underlying RTC device shall be reference through the property 'rtc'. An offset into the RTC device's register space can be provided through the 'offset' property. Tested on a RK3399-Q7 on a Flamingo carrier board using the SRAM area of the carrier board's RV3029 RTC. Signed-off-by: Philipp Tomsich <[email protected]>
2018-12-10bootcount: add uclass for bootcountPhilipp Tomsich
The original bootcount methods do not provide an interface to DM and rely on a static configuration for I2C devices (e.g. bus, chip-addr, etc. are configured through defines statically). On a modern system that exposes multiple devices in a DTS-configurable way, this is less than optimal and a interface to DM-based devices will be desirable. This adds a simple driver that is DM-aware and configurable via DTS. If ambiguous (i.e. multiple bootcount-devices are present) the /chosen/u-boot,bootcount-device property can be used to select one bootcount device. Initially, this provides support for the following DM devices: * RTC devices Signed-off-by: Philipp Tomsich <[email protected]> Tested-by: Klaus Goger <[email protected]>
2018-12-10rockchip: rk322x: ram: enable DRAM init in SPL instead of TPLKever Yang
Patch for rk322x TPL is not merged, and only SPL is available now, enable the sdram driver in SPL first. We should update back to TPL after TPL is enabled for rk322x. Signed-off-by: Kever Yang <[email protected]> Reviewed-by: Philipp Tomsich <[email protected]>
2018-12-10drivers: core: nullify gd->dm_root after dm_uninit()Jean-Jacques Hiblot
To reset the DM after a new dtb is loaded, we need to call dm_uninit() and then dm_init(). This fails however because gd->dm_root is not nullified by dm_uninit(). Fixing it by setting gd->dm_root in dm_uninit(). Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2018-12-10drivers: core: Add the option SPL_DM_DEVICE_REMOVE to the KconfigJean-Jacques Hiblot
It is currently not possible to include the support to remove devices in the SPL. This is however needed by platforms that re-select their dtb after DM is initialized; they need to remove all the previously bound devices before triggering a scan of the new DT. Add a Kconfig option to be able to include the support for device removal in the SPL. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Simon Glass <[email protected]> Seeries-changes:3 - update commit message Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2018-12-10power: make most tps drivers and the twl4030 driver compatible with DM_I2CJean-Jacques Hiblot
Those driver are not DM drivers per se (not using the PMIC/regulator framework) and are using the legacy I2C API. Make them compatible with the DM_I2C API. This impacts the following drivers: - palmas (used by am57xx/dra7xx evms) - tps65218 (used by am43xx evms) - tps65217 and tps65910 (used by am335x evms and am335x boneblack vboot) - twl4030 (used by omap3_logicpd) - tps65217 (used by brppt1) - twl6030 Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2018-12-10i2c: omap24xx_i2c: Use platdata to probe the deviceJean-Jacques Hiblot
This allows the driver to be used without OF_CONTROL. AM335x support DM_SPL but does not use SPL_OF_CONTROL. Enabling DM_I2C in SPL thus requires that the omap I2C can be passed platdata. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2018-12-10i2c: omap24xx_i2c: Move away from SoC specific headers for reg offsetVignesh R
Move away from SoC specific headers to handle different register layout. Instead use driver data to get appropriate register layouts like in the kernel. While at it, perform some mostly cosmetic alignment/cleanup in the functions being updated. Signed-off-by: Vignesh R <[email protected]> Signed-off-by: Andreas Dannenberg <[email protected]> Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2018-12-10dm: device: Allow using uclass_find_device_by_seq() without OF_CONTROLJean-Jacques Hiblot
If OF_CONTROL is not enabled and DM_SEQ_ALIAS is enabled, we must assign an alias (requested sequence number) to devices that belongs to a class with the DM_UC_FLAG_SEQ_ALIAS flag. Otherwise uclass_find_device_by_seq() cannot be used to get/probe a device. In particular i2c_get_chip_for_busnum() cannot be used. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2018-12-10dm: i2c: Make i2c_get_chip_for_busnum() fail if the chip is not detectedJean-Jacques Hiblot
i2c_get_chip_for_busnum() really should check the presence of the chip on the bus. Most of the users of this function assume that this is done. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2018-12-09ARM: mvebu: restore license information in mv_ddr_plat.{c,h}Chris Packham
This was unintentionally removed when syncing with upstream. Signed-off-by: Chris Packham <[email protected]>
2018-12-09Merge git://git.denx.de/u-boot-marvellTom Rini
- Sync DDR training with Marvell code for Armada 38x by Chris - Misc updates to Armada 38x Helios4 board by Aditya