]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
drivers: led: bcm6858: set the correct led polarity register
authorSteven Lawrance <steven.lawrance@softathome.com>
Thu, 29 Oct 2020 17:27:34 +0000 (18:27 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 19 Nov 2020 14:45:49 +0000 (09:45 -0500)
This change sets the output (hardware) polarity register instead of the
input (software) polarity register for the bcm6858 LED controller.  The
logic was inverted (a LED configued active high behaved as active low).

Signed-off-by: Steven Lawrance <steven.lawrance@softathome.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
drivers/led/led_bcm6858.c

index b415d8b2b40405c55fe96b35de5fc34745c7e513..511185ffad7d2e497139423f7babdbe98b880f19 100644 (file)
@@ -40,8 +40,8 @@
 #define LED_FLASH_RATE_CONTROL_REG0    0x10
 /* Soft LED input register */
 #define LED_SW_LED_IP_REG              0xb8
-/* Soft LED input polarity register */
-#define LED_SW_LED_IP_PPOL_REG         0xbc
+/* Parallel LED Output Polarity Register */
+#define LED_PLED_OP_PPOL_REG           0xc0
 
 struct bcm6858_led_priv {
        void __iomem *regs;
@@ -198,9 +198,9 @@ static int bcm6858_led_probe(struct udevice *dev)
 
                /* configure the polarity */
                if (dev_read_bool(dev, "active-low"))
-                       clrbits_32(regs + LED_SW_LED_IP_PPOL_REG, 1 << pin);
+                       clrbits_32(regs + LED_PLED_OP_PPOL_REG, 1 << pin);
                else
-                       setbits_32(regs + LED_SW_LED_IP_PPOL_REG, 1 << pin);
+                       setbits_32(regs + LED_PLED_OP_PPOL_REG, 1 << pin);
        }
 
        return 0;