Zahari Petkov
348a7ccdb9
leds: pca963x: Fix open-drain initialization
...
[ Upstream commit 697529091ac7a0a90ca349b914bb30641c13c753 ]
Before commit bb29b9cccd ("leds: pca963x: Add bindings to invert
polarity") Mode register 2 was initialized directly with either 0x01
or 0x05 for open-drain or totem pole (push-pull) configuration.
Afterwards, MODE2 initialization started using bitwise operations on
top of the default MODE2 register value (0x05). Using bitwise OR for
setting OUTDRV with 0x01 and 0x05 does not produce correct results.
When open-drain is used, instead of setting OUTDRV to 0, the driver
keeps it as 1:
Open-drain: 0x05 | 0x01 -> 0x05 (0b101 - incorrect)
Totem pole: 0x05 | 0x05 -> 0x05 (0b101 - correct but still wrong)
Now OUTDRV setting uses correct bitwise operations for initialization:
Open-drain: 0x05 & ~0x04 -> 0x01 (0b001 - correct)
Totem pole: 0x05 | 0x04 -> 0x05 (0b101 - correct)
Additional MODE2 register definitions are introduced now as well.
Fixes: bb29b9cccd ("leds: pca963x: Add bindings to invert polarity")
Signed-off-by: Zahari Petkov <zahari@balena.io>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-02-24 08:36:24 +01:00
..
trigger
leds: trigger: netdev: fix handling on interface rename
2020-01-04 19:17:05 +01:00
Kconfig
leds: netxbig: remove legacy board-file support
2019-07-29 21:04:53 +02:00
led-class-flash.c
leds: class: Improve LED and LED flash class registration API
2019-07-25 20:07:50 +02:00
led-class.c
leds: Allow to call led_classdev_unregister() unconditionally
2019-08-26 20:03:58 +02:00
led-core.c
leds: Switch to use fwnode instead of be stuck with OF one
2019-08-23 23:39:37 +02:00
led-triggers.c
led: triggers: Fix dereferencing of null pointer
2019-09-05 22:32:45 +02:00
leds-88pm860x.c
leds-aat1290.c
leds: aat1290: Use generic support for composing LED names
2019-07-25 20:07:59 +02:00
leds-adp5520.c
leds-an30259a.c
leds: an30259a: add a check for devm_regmap_init_i2c
2020-01-04 19:17:03 +01:00
leds-apu.c
leds: apu: add pr_fmt prefix for better log output
2019-07-22 21:57:35 +02:00
leds-as3645a.c
leds: as3645a: Use generic support for composing LED names
2019-07-25 20:08:00 +02:00
leds-asic3.c
leds-bcm6328.c
leds-bcm6358.c
leds-bd2802.c
leds-blinkm.c
leds-clevo-mail.c
leds-cobalt-qube.c
leds-cobalt-raq.c
leds-cpcap.c
leds-cr0014114.c
leds: cr0014114: Use generic support for composing LED names
2019-07-25 20:07:58 +02:00
leds-da903x.c
leds-da9052.c
leds-dac124s085.c
leds-fsg.c
leds-gpio-register.c
leds-gpio.c
leds: gpio: Fix uninitialized gpio label for fwnode based probe
2020-01-29 16:45:29 +01:00
leds-hp6xx.c
leds-ipaq-micro.c
leds-is31fl32xx.c
leds: is31fl32xx: Use struct_size() helper
2019-09-01 13:33:29 +02:00
leds-is31fl319x.c
leds: is31fl319x: simplify getting the adapter of a client
2019-07-23 20:47:45 +02:00
leds-ktd2692.c
leds: ktd2692: Fix a typo in the name of a constant
2019-07-22 21:43:12 +02:00
leds-lm355x.c
leds-lm3530.c
leds-lm3532.c
leds: lm3532: Fix optional led-max-microamp prop error handling
2019-09-12 20:45:52 +02:00
leds-lm3533.c
leds-lm3601x.c
leds: lm3601x: Use generic support for composing LED names
2019-07-25 20:07:57 +02:00
leds-lm3642.c
leds-lm3692x.c
leds: lm3692x: Handle failure to probe the regulator
2020-01-04 19:17:02 +01:00
leds-lm3697.c
leds: lm3697: Switch to use fwnode_property_count_uXX()
2019-07-25 20:08:03 +02:00
leds-lm36274.c
leds: lm36274: Switch to use fwnode_property_count_uXX()
2019-07-25 20:08:03 +02:00
leds-locomo.c
leds-lp55xx-common.c
leds-lp55xx-common.h
leds-lp3944.c
leds-lp3952.c
leds-lp5521.c
leds-lp5523.c
leds-lp5562.c
leds: leds-lp5562 allow firmware files up to the maximum length
2019-07-22 20:35:01 +02:00
leds-lp8501.c
leds-lp8788.c
leds-lp8860.c
leds: lp8860: Use generic support for composing LED names
2019-07-25 20:07:55 +02:00
leds-lt3593.c
leds: lt3593: Use generic support for composing LED names
2019-07-25 20:07:54 +02:00
leds-max8997.c
leds-max77650.c
led: max77650: add of_match table
2020-02-05 21:22:49 +00:00
leds-max77693.c
leds-mc13783.c
leds-menf21bmc.c
leds-mlxcpld.c
leds-mlxreg.c
leds-mt6323.c
leds-net48xx.c
leds-netxbig.c
leds: netxbig: Add of_node_put() in netxbig_leds_get_of_pdata()
2019-07-29 21:12:54 +02:00
leds-nic78bx.c
leds-ns2.c
leds: ns2: Add of_node_put() before return
2019-07-22 20:35:00 +02:00
leds-ot200.c
leds-pca955x.c
LED updates for 5.3-rc1
2019-07-09 08:59:39 -07:00
leds-pca963x.c
leds: pca963x: Fix open-drain initialization
2020-02-24 08:36:24 +01:00
leds-pca9532.c
leds: pca953x: Include the right header
2019-08-08 20:38:24 +02:00
leds-pm8058.c
leds-powernv.c
leds-pwm.c
leds: pwm: Use struct_size() helper
2019-09-01 13:33:29 +02:00
leds-rb532.c
leds-regulator.c
leds-s3c24xx.c
leds-sc27xx-bltc.c
leds: sc27xx-blt: Use generic support for composing LED names
2019-07-25 20:07:53 +02:00
leds-spi-byte.c
leds-ss4200.c
leds-sunfire.c
leds-syscon.c
leds: syscon: Use resource managed variant of device register
2019-09-01 13:33:27 +02:00
leds-tca6507.c
LED updates for 5.3-rc1
2019-07-09 08:59:39 -07:00
leds-ti-lmu-common.c
leds: ti-lmu-common: Move static keyword to the front of declaration
2019-09-03 20:34:46 +02:00
leds-tlc591xx.c
leds: tlc591xx: update the maximum brightness
2020-01-26 10:01:02 +01:00
leds-wm831x-status.c
leds-wm8350.c
leds-wrap.c
leds.h
leds: core: Add support for composing LED class device names
2019-07-25 20:07:52 +02:00
Makefile
uleds.c