Simplify the Yamp device tree by using the common dtsi.
In addition this enables the following the second firmware flash and the
eMMC device in slot #1.
Signed-off-by: Tao Ren <taoren@fb.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Simplify the Minipack device tree by using the common dtsi.
In addition this enables the enabling the second firmware flash, and
updates it's size from 32MB to 64MB. It also enables the eMMC device in
slot #1.
Signed-off-by: Tao Ren <taoren@fb.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Simplify the CMM device tree by using the common dtsi.
In addition this enables the second firmware flash and the emmc device
in slot #0.
Signed-off-by: Tao Ren <taoren@fb.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
This common descirption is included by all Facebook AST2500 Network BMC
platforms to minimize duplicated device entries across Facebook Network
BMC device trees.
Signed-off-by: Tao Ren <taoren@fb.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Add in a gpio-keys section to the Rainier device tree source, add in the
power supply presence GPIOs.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
Reviewed-by: Eddie James <eajames@linux.ibm.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Fix the size of the Proc VRM card's eeprom used for vpd storage. The
size is changed from 64Kbit to 128Kbit.
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>
Reviewed-by: Santosh Puranik <santosh.puranik.ibm@gmail.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Requesting pinmux configuration is done at driver probe time. The LPC IP
is composed of many sub-devices, each with their own driver, and no
driver exists for the entire IP block. Avoid having each sub-device
request the LPC pinmux by just hogging it in the pinctrl node.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Like most OpenPower machines the VUART is expected to be at /dev/ttyS5
for communication with the host over LPC.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Added eeproms for the below VPD devices
- BMC
- TPM
- System Planar
- DCM 0 VRM
- DCM 1 VRM
- Base Op panel
- Lcd Op panel
- DASD (All)
- PCIe Cards (All)
Signed-off-by: Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com>
Reviewed-by: Santosh Puranik <santosh.puranik.ibm@gmail.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
OpenBMC requires a window the same size as the image being loaded.
Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
Signed-off-by: Joel Stanley <joel@jms.id.au>
The UART has an issue on A0 that can be worked around by using the
Synopsis driver.
Tested-by: Eddie James <eajames@linux.ibm.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
The UARTs on the AST2600 A0 have a known issue that can be worked around
by using the Synopsys driver.
Tested-by: Eddie James <eajames@linux.ibm.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
We need to ungate RCLK on AST2500- and AST2600-based platforms for RMII
to function. RMII interfaces are commonly used for NCSI.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Signed-off-by: Joel Stanley <joel@jms.id.au>
An interesting observation made with our parallel selftests was that on
our small/single cpu systems we would call kthread_stop() before the
kthreads were spawned. If this happens, the kthread is never run at all;
completely bypassing the test.
A simple yield() from the parent will ensure that all children have the
opportunity to start before we reap them.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191101084940.31838-1-chris@chris-wilson.co.uk
Cleans up checks of "Avoid CamelCase" in file sd.h
Even though the constant "DCM_LOW_FREQUENCY_MODE_SET" is defined and never used,
it's useful to keep it because it documents the device.
Signed-off-by: Gabriela Bittencourt <gabrielabittencourt00@gmail.com>
Link: https://lore.kernel.org/r/20191031230243.3462-4-gabrielabittencourt00@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
At a slight footprint cost (24 vs 32 bytes), mutexes are more optimal
than semaphores; it's also a nicer interface for mutual exclusion,
which is why they are encouraged over binary semaphores, when possible.
For both v_sem and z_sem, their semantics imply traditional lock
ownership; that is, the lock owner is the same for both lock/unlock
operations. Therefore it is safe to convert.
Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
Acked-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
Link: https://lore.kernel.org/r/20191030144916.10802-1-dave@stgolabs.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Currently configurations can be generated where IOMMU_SUPPORT is
disabled but IOMMU_IOVA is built as a module and DRM_TEGRA as built-in.
In such a case, the symbols guarded by IOMMU_IOVA will not be available
when linking the Tegra DRM driver and cause a linking failure.
Simplify this by unconditionally selecting IOMMU_IOVA, which makes sure
that it will be forced to =y if DRM_TEGRA=y. Technically we can now get
IOMMU_IOVA code built-in even if we don't use it (Tegra DRM only uses it
when IOMMU_SUPPORT is also enabled), but such configuration are of a
mostly academic nature. In all practical configurations we want IOMMU
support anyway.
Signed-off-by: Thierry Reding <treding@nvidia.com>
Currently configurations can be generated where IOMMU_SUPPORT is
disabled but IOMMU_IOVA is built as a module and HOST1X as built-in. In
such a case, the symbols guarded by IOMMU_IOVA will not be available
when linking the host1x driver and cause a linking failure.
Simplify this by unconditionally selecting IOMMU_IOVA, which makes sure
that it will be forced to =y if HOST1X=y. Technically we can now get
IOMMU_IOVA code built-in even if we don't use it (host1x only uses it
when IOMMU_SUPPORT is also enabled), but such configuration are of a
mostly academic nature. In all practical configurations we want IOMMU
support anyway.
Signed-off-by: Thierry Reding <treding@nvidia.com>
Don't just look at the very last request in a queue when deciding if we
need to evict the context from the GPU, as that request may still be in
the submission queue while the rest of the context is running!
Instead, walk back along the queued requests looking for the active
request and checking that.
Fixes: 2e0986a58c ("drm/i915/gem: Cancel contexts when hangchecking is disabled")
Testcase: igt/gem_ctx_persistence/queued
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191031090104.22245-1-chris@chris-wilson.co.uk
Some architectures, notably ARM, are interested in tweaking this
depending on their runtime DMA addressing limitations.
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
The Emlid Neutis N5 board has AP6212 BT+WiFi chip. This patch is in
line with 8558c6e21c ("ARM: dts: sun8i: h3: bluetooth for Banana Pi
M2 Zero board") and other commits that add Bluetooth support for
similar boards.
Signed-off-by: Georgii Staroselskii <georgii.staroselskii@emlid.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Note two merge commits in here, both for immutable branches based
of 5.4-rc1.
1. Ti eqep driver because of some file moves in precursor patches.
I suspect no one else will pull this one.
2. ab8500 refactor as changes in power supply, hwmon and mfd trees.
This may come via numerous trees as well as IIO.
Counter subsystem related
* ti eqep
- New device support with bindings.
- Includes prior file move to reflect more general use of ti-pwmss.
* Counter core
- simplify count_read and count_write callbacks + document change.
- fix a typo in docs.
Various subsystems related
* AB8500
- ab8500_btemp driver converted to be an IIO consumer driver.
- ab8500_charger driver converted to be an IIO consumer driver.
- ab8500_fg fuel gauge driver converted to be an IIO consumer driver.
- ab8500 hwmon driver converted to be an IIO consumer driver.
- mfd bindings augmented with the adc channels to make the above work.
- drop original mfd driver.
New device support
* ab8500
- new ADC driver used by the above other subystems via the IIO consumer
interface.
* adux1020 photometric sensor
- new driver and dt bindings.
* fxos877cq
- new driver for this simple(ish) IMU with DT bindings.
* intel_mrfld_adc
- new driver for the ADC found on Intel Merrifield platforms.
* ltc2983
- new driver for this multi-sensor type temperature interface.
Includes complex DT bindings.
* max1027
- support for 12 bit devices, max1227, max1229 and max1231 + add to trivial
bindings.
* st_lsm6dsx
- support for the LSM6DS0 6 axis MEMs sensor.
Note different from the LSM6DSO which the driver already supports *sigh*
- support for the LSM6DSRX 6 axis MEMs sensor.
Features and cleanups
* ad7303
- replace use of core mlock with a local lock with cleanly defined scope.
* ad9834
- add a check for devm_clk_get failing.
* at91-sama5d2
- tidy up a 0 as NULL warning.
* bmp280
- endian type tidy ups.
- use bulk regulator ops for a small reduction in code.
- use devm_add_action... to simplify error path handling.
* exynos
- drop stray semicolon.
- use devm_platform_ioremap_resource to reduce boilerplate.
* hx711
- various tricks to improve the frequency of read out possible.
* max1027
- debugfs support.
- make interrupts optional.
- reset at probe to get clean state.
- refactors to allow addition of new device support.
* maxim thermocouple
- drop an unneeded semicolon.
* mb1232
- yaml binding conversion.
* mcp320x
- tidy up an endian types in cast warning.
* meson_saradc
- use devm_platform_ioremap_resource to reduce boilerplate.
* mpu3050
- make a poison value explicity big endian to supress a warning.
* pulsedlight v2
- endian type tidy ups.
* sgp30
- drop an excess semicolon.
* sps30
- make truncation explicit with masking to clean up a warning.
* st sensors
- drop gpio include as none of these support gpios.
* st_lsm6dsx
- tidy up some alignment issues.
- refactors to allow addition of new device support.
* allow varients of irq related reg definitions.
* avoid accessing active-low, open-drain regs if not provided.
* allow varients of bdu/boot and reset regs.
* allow for enabling or disabling wakeup sources through platform
data (seems someone still uses this).
- enable wake-up events for LSM6DS0
- use the drdy mask to avoid some invalid samples during initial start
of sensor.
- Add support to trim the timestamp.
* stm32_adc
- kernel-doc fixes.
* stm32_dac
- power management support.
* stmpe-adc
- Fix endian type of local variable.
* twl4030
- use false / true instead of 0 / 1 for booleans.
* xilinx-xadc
- use devm_platform_ioremap_resouce to reduce boilerplate.
* zpa2326
- reorganise buffer handling setup to be more consistent.
Fixes (mostly recent additions)
* cpcap-adc
- Fix mising IRQF_ONESHOT that would cause warnings to be printed.
* st_lsm6dsx
- Sanity check the read_fifo pointer is set.
- use locked read and update functions to prevent some races.
- avoid accessing enable_reg if not provided.
- take a lock to prevent a race in updating the config.
- kernel-doc fixes.
- document wakeup-source property in dt binding.
- fix lsm9ds1 gyro gain definitions.
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAl27PN8RHGppYzIzQGtl
cm5lbC5vcmcACgkQVIU0mcT0FojRzA/4svFkyp9+08sZxYN3Z6enw6VwS+OxgVXx
ikM+j6Wny/kv71yhALoU0SY/GzWnqpudz9SUKVUgXGhOZbG7mJLYx9Ahk1/g2zrI
wHVwO+PZIxBHUtpewKmcB+uVpaCfXGH6Bu9XYtefnhB1LeGbgS1UQ8q0RbveIyZ6
sI1cOY7rMr0Sfzf+MgPuZ5sceLDXUuLRgTCro0hHSo8IVG1+raE37UMbmlQ8EYVl
8gEHoeBrjM4ky8SX+DRyDjxfdgK/am6jqJhOrgmq72+/ltaytz8RaTs/X17GTi6J
Jii2ODxdfUoxyN0/C57/2iTuL/yXmsEm7nKNdc3VFyjDiUlBs/kSgXpXTX2g3q8m
SVG0OYHPfJlkwWkSKF463hD5hZ29yBwUNKKyQPwGD4x8+hs8xcw7Zx+KUu/PRkjW
iZmiQksbJUgU1n8IMINz0NeHCbtI1psfMv+ZnNKwxlPWczYducLNfYPJbhdjuUpT
Mi5r1An4xpSrlKgwr3JLsXetJLNxvCxbqQQq9kMZW2CF+tBuLhUJMd/7KDrfUQ/P
wyWJ5TxlVA05ZwsuIWW+gCsQuXTDb6w2y0s9YxjiAUpRP3VAUZhZVWG5VWyxxfr/
zCx+GT7NSPh70ActiUWrHOyB6zzGeIo8SVX43e7sxdmNkyPK2/d+24u/GOVBP7hg
hGQ9Ra8JoA==
=zfsO
-----END PGP SIGNATURE-----
Merge tag 'iio-for-5.5b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
Second set of IIO + counter new device support, features etc for the 5.5 cycle.
Note two merge commits in here, both for immutable branches based
of 5.4-rc1.
1. Ti eqep driver because of some file moves in precursor patches.
I suspect no one else will pull this one.
2. ab8500 refactor as changes in power supply, hwmon and mfd trees.
This may come via numerous trees as well as IIO.
Counter subsystem related
* ti eqep
- New device support with bindings.
- Includes prior file move to reflect more general use of ti-pwmss.
* Counter core
- simplify count_read and count_write callbacks + document change.
- fix a typo in docs.
Various subsystems related
* AB8500
- ab8500_btemp driver converted to be an IIO consumer driver.
- ab8500_charger driver converted to be an IIO consumer driver.
- ab8500_fg fuel gauge driver converted to be an IIO consumer driver.
- ab8500 hwmon driver converted to be an IIO consumer driver.
- mfd bindings augmented with the adc channels to make the above work.
- drop original mfd driver.
New device support
* ab8500
- new ADC driver used by the above other subystems via the IIO consumer
interface.
* adux1020 photometric sensor
- new driver and dt bindings.
* fxos877cq
- new driver for this simple(ish) IMU with DT bindings.
* intel_mrfld_adc
- new driver for the ADC found on Intel Merrifield platforms.
* ltc2983
- new driver for this multi-sensor type temperature interface.
Includes complex DT bindings.
* max1027
- support for 12 bit devices, max1227, max1229 and max1231 + add to trivial
bindings.
* st_lsm6dsx
- support for the LSM6DS0 6 axis MEMs sensor.
Note different from the LSM6DSO which the driver already supports *sigh*
- support for the LSM6DSRX 6 axis MEMs sensor.
Features and cleanups
* ad7303
- replace use of core mlock with a local lock with cleanly defined scope.
* ad9834
- add a check for devm_clk_get failing.
* at91-sama5d2
- tidy up a 0 as NULL warning.
* bmp280
- endian type tidy ups.
- use bulk regulator ops for a small reduction in code.
- use devm_add_action... to simplify error path handling.
* exynos
- drop stray semicolon.
- use devm_platform_ioremap_resource to reduce boilerplate.
* hx711
- various tricks to improve the frequency of read out possible.
* max1027
- debugfs support.
- make interrupts optional.
- reset at probe to get clean state.
- refactors to allow addition of new device support.
* maxim thermocouple
- drop an unneeded semicolon.
* mb1232
- yaml binding conversion.
* mcp320x
- tidy up an endian types in cast warning.
* meson_saradc
- use devm_platform_ioremap_resource to reduce boilerplate.
* mpu3050
- make a poison value explicity big endian to supress a warning.
* pulsedlight v2
- endian type tidy ups.
* sgp30
- drop an excess semicolon.
* sps30
- make truncation explicit with masking to clean up a warning.
* st sensors
- drop gpio include as none of these support gpios.
* st_lsm6dsx
- tidy up some alignment issues.
- refactors to allow addition of new device support.
* allow varients of irq related reg definitions.
* avoid accessing active-low, open-drain regs if not provided.
* allow varients of bdu/boot and reset regs.
* allow for enabling or disabling wakeup sources through platform
data (seems someone still uses this).
- enable wake-up events for LSM6DS0
- use the drdy mask to avoid some invalid samples during initial start
of sensor.
- Add support to trim the timestamp.
* stm32_adc
- kernel-doc fixes.
* stm32_dac
- power management support.
* stmpe-adc
- Fix endian type of local variable.
* twl4030
- use false / true instead of 0 / 1 for booleans.
* xilinx-xadc
- use devm_platform_ioremap_resouce to reduce boilerplate.
* zpa2326
- reorganise buffer handling setup to be more consistent.
Fixes (mostly recent additions)
* cpcap-adc
- Fix mising IRQF_ONESHOT that would cause warnings to be printed.
* st_lsm6dsx
- Sanity check the read_fifo pointer is set.
- use locked read and update functions to prevent some races.
- avoid accessing enable_reg if not provided.
- take a lock to prevent a race in updating the config.
- kernel-doc fixes.
- document wakeup-source property in dt binding.
- fix lsm9ds1 gyro gain definitions.
* tag 'iio-for-5.5b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (73 commits)
dt-bindings: iio: imu: st_lsm6dsx: add lsm6dsrx device bindings
iio: imu: st_lsm6dsx: add support to LSM6DSRX
iio: st: Drop GPIO include
iio: adc: hx711: optimize performance in read cycle
iio: adc: stm32-adc: fix kernel-doc warnings
iio: pressure: zpa2326: fix iio_triggered_buffer_postenable position
iio: chemical: sgp30: drop excess semicolon
iio: adc: twl4030: Use false / true instead of 0 / 1 with booleans
dt-bindings: iio: Add ltc2983 documentation
iio: temperature: Add support for LTC2983
iio: pressure: bmp280: use devm action and remove labels from probe
iio: pressure: bmp280: use bulk regulator ops
iio: imu: Add support for the FXOS8700 IMU
dt-bindings: iio: imu: add fxos8700 imu binding
staging: iio: ad9834: add a check for devm_clk_get
iio: adc: xilinx-xadc: use devm_platform_ioremap_resource
iio: temp: maxim thermocouple: Drop unneeded semi colon.
iio: adc: cpcap-adc: Fix missing IRQF_ONESHOT as only threaded handler.
iio: adc: meson_saradc: use devm_platform_ioremap_resource
iio: adc: exynos: use devm_platform_ioremap_resource
...
uart1 and uart3 had existing pin definitions for the rts/cts pairs.
Add definitions for uart2 as well.
Signed-off-by: Karl Palsson <karlp@tweak.net.au>
Acked-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Include support for Micrel KSZ9031 PHY driver in sunxi_defconfig,
which fixes issues of link not coming up at boot time with
certain link partners.
Micrel KSZ9031 PHY chip is used on Olimex A20-OLinuXino-LIME2
boards.
The errata fix itself has been implemented in commit
"3aed3e2a14: net: phy: micrel: add Asym Pause workaround"
Signed-off-by: Priit Laes <plaes@plaes.org>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
This patch adds the new allwinner crypto configs to ARM64 defconfig
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
This patch adds the new Allwinner crypto configs to sunxi_defconfig
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
The Security System is a hardware cryptographic accelerator that support
AES/MD5/SHA1/DES/3DES/PRNG/RSA algorithms.
It could be found on Allwinner SoC A80 and A83T
This patch adds it on the Allwinner A80 SoC Device-tree.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
The Security System is a hardware cryptographic accelerator that support
AES/MD5/SHA1/DES/3DES/PRNG/RSA algorithms.
It could be found on Allwinner SoC A80 and A83T
This patch adds it on the Allwinner A83T SoC Device-tree.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
The Crypto Engine is a hardware cryptographic accelerator that supports
many algorithms.
This patch enables the Crypto Engine on the Allwinner H6 SoC Device-tree.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
The Crypto Engine is a hardware cryptographic accelerator that supports
many algorithms.
It could be found on most Allwinner SoCs.
This patch enables the Crypto Engine on the Allwinner H5 SoC Device-tree.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
The Crypto Engine is a hardware cryptographic accelerator that supports
many algorithms.
It could be found on most Allwinner SoCs.
This patch enables the Crypto Engine on the Allwinner A64 SoC Device-tree.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
The Crypto Engine is a hardware cryptographic accelerator that supports
many algorithms.
It could be found on most Allwinner SoCs.
This patch enables the Crypto Engine on the Allwinner H3 SoC Device-tree.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
The Crypto Engine is a hardware cryptographic offloader that supports
many algorithms.
It could be found on most Allwinner SoCs.
This patch enables the Crypto Engine on the Allwinner R40 SoC Device-tree.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
This patch adds documentation for Device-Tree bindings for the
Crypto Engine cryptographic accelerator driver.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Constify the data to write to the Status Register.
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
In case the write of the first byte failed, retlen was incorrectly
incremented to *retlen += actual; on the exit path. retlen should be
incremented when actual data was written to the flash.
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Drop the error messages from the callers, since the callees
already print an error message in case of failure.
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Let the callers pass the pointer to the DMA-able buffer where
the value of the Configuration Register will be written. This way we
avoid the casts between int and u8, which can be confusing.
Callers stop compare the return value of spi_nor_read_cr() with negative,
spi_nor_read_cr() returns 0 on success and -errno otherwise.
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
The auto string detection algorithm checks if the current WLED
sink configuration is valid. It tries enabling every sink and
checks if the OVP fault is observed. Based on this information
it detects and enables the valid sink configuration.
Auto calibration will be triggered when the OVP fault interrupts
are seen frequently thereby it tries to fix the sink configuration.
The auto-detection also kicks in when the connected LED string
of the display-backlight malfunctions (because of damage) and
requires the damaged string to be turned off to prevent the
complete panel and/or board from being damaged.
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Handle the short circuit interrupt and check if the short circuit
interrupt is valid. Re-enable the module to check if it goes
away. Disable the module altogether if the short circuit event
persists.
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
WLED4 peripheral is present on some PMICs like pmi8998 and
pm660l. It has a different register map and configurations
are also different. Add support for it.
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Restructure the driver to add the support for new WLED
peripherals.
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>