linux_dsm_epyc7002/drivers/leds
Zahari Petkov 697529091a leds: pca963x: Fix open-drain initialization
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>
2019-12-21 20:09:51 +01:00
..
trigger Merge tag 'leds-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds 2019-12-01 16:09:28 -08:00
Kconfig leds: Kconfig: Be consistent with the usage of "LED" 2019-11-03 17:38:20 +01:00
led-class-flash.c leds: flash: Add devm_* functions to the flash class 2019-11-03 17:38:36 +01:00
led-class.c leds: core: Fix devm_classdev_match to reference correct structure 2019-11-03 17:38:51 +01: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 leds: remove PAGE_SIZE limit of /sys/class/leds/<led>/trigger 2019-11-03 17:38:14 +01:00
leds-88pm860x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-aat1290.c leds: aat1290: Use generic support for composing LED names 2019-07-25 20:07:59 +02:00
leds-adp5520.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
leds-an30259a.c leds: an30259a: add a check for devm_regmap_init_i2c 2019-11-03 17:39:00 +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: Drop fwnode reference on ignored node 2019-12-21 20:09:47 +01:00
leds-asic3.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-bcm6328.c leds: bcm6328: Use devm_platform_ioremap_resource() in bcm6328_leds_probe() 2019-11-03 17:37:19 +01:00
leds-bcm6358.c leds: bcm6358: Use devm_platform_ioremap_resource() in bcm6358_leds_probe() 2019-11-03 17:37:24 +01:00
leds-bd2802.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-blinkm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
leds-clevo-mail.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
leds-cobalt-qube.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
leds-cobalt-raq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
leds-cpcap.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 89 2019-05-24 17:37:52 +02:00
leds-cr0014114.c leds: cr0014114: Use generic support for composing LED names 2019-07-25 20:07:58 +02:00
leds-da903x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-da9052.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
leds-dac124s085.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 2019-06-05 17:37:06 +02:00
leds-el15203000.c leds: add LED driver for EL15203000 board 2019-11-03 17:37:06 +01:00
leds-fsg.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-gpio-register.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-gpio.c leds: gpio: Fix uninitialized gpio label for fwnode based probe 2019-12-21 20:09:32 +01:00
leds-hp6xx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-ipaq-micro.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-lm3530.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
leds-lm3532.c leds: lm3532: Fix optional led-max-microamp prop error handling 2019-09-12 20:45:52 +02:00
leds-lm3533.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
leds-lm3601x.c leds: lm3601x: Convert class registration to device managed 2019-11-03 17:38:41 +01:00
leds-lm3642.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-lm3692x.c leds: lm3692x: Use flags from LM3692X_BRT_CTRL 2019-11-03 17:38:04 +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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-lp55xx-common.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-lp55xx-common.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-lp3944.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-lp3952.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-lp5521.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
leds-lp5523.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-lp8788.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-max77650.c leds: max77650: Switch to fwnode property API 2019-08-23 23:39:31 +02:00
leds-max77693.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-mc13783.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-menf21bmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
leds-mlxcpld.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
leds-mlxreg.c leds: mlxreg: Fix possible buffer overflow 2019-11-03 17:39:00 +01:00
leds-mt6323.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
leds-net48xx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
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 2019-12-21 20:09:51 +01:00
leds-pca9532.c leds: pca953x: Use of_device_get_match_data() 2019-11-03 17:39:00 +01:00
leds-pm8058.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
leds-powernv.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
leds-pwm.c leds: pwm: Use struct_size() helper 2019-09-01 13:33:29 +02:00
leds-rb532.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
leds-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-s3c24xx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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: spi-byte: add single byte SPI LED driver 2019-05-24 22:19:43 +02:00
leds-ss4200.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335 2019-06-05 17:37:06 +02:00
leds-sunfire.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
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 2019-11-03 17:38:09 +01:00
leds-wm831x-status.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-wm8350.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds-wrap.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds.h leds: remove PAGE_SIZE limit of /sys/class/leds/<led>/trigger 2019-11-03 17:38:14 +01:00
Makefile leds: add LED driver for EL15203000 board 2019-11-03 17:37:06 +01:00
uleds.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00