> -----Original Message----- > From: Linus Walleij <linus.walleij@xxxxxxxxxx> > Sent: Friday, September 20, 2024 2:59 PM > To: Pavel Machek <pavel@xxxxxx>; Lee Jones <lee@xxxxxxxxxx>; Rob > Herring <robh@xxxxxxxxxx>; Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>; > Conor Dooley <conor+dt@xxxxxxxxxx>; William Zhang > <william.zhang@xxxxxxxxxxxx>; Anand Gore > <anand.gore@xxxxxxxxxxxx>; Kursad Oney > <kursad.oney@xxxxxxxxxxxx>; Florian Fainelli > <florian.fainelli@xxxxxxxxxxxx>; Rafał Miłecki <rafal@xxxxxxxxxx>; > Broadcom internal kernel review list <bcm-kernel-feedback- > list@xxxxxxxxxxxx> > Cc: linux-leds@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; Linus Walleij > <linus.walleij@xxxxxxxxxx> > Subject: [PATCH 3/4] leds: bcm63128: Handle shift register config typo: bcm63128 -> bcm63138 > > This adds code to optionally read the width of the shift register > chain from the device tree and use it to set up the register > controlling the shifter hardware. > > If the property is not present, the boot-time default is used so > existing device trees keep working as this is what they assume. > > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > drivers/leds/blink/leds-bcm63138.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/leds/blink/leds-bcm63138.c b/drivers/leds/blink/leds- > bcm63138.c > index 374f68f4f277..bf170a5bb12a 100644 > --- a/drivers/leds/blink/leds-bcm63138.c > +++ b/drivers/leds/blink/leds-bcm63138.c > @@ -2,6 +2,7 @@ > /* > * Copyright (C) 2021 Rafał Miłecki <rafal@xxxxxxxxxx> > */ > +#include <linux/bits.h> > #include <linux/cleanup.h> > #include <linux/delay.h> > #include <linux/io.h> > @@ -254,6 +255,7 @@ static int bcm63138_leds_probe(struct > platform_device *pdev) > struct device_node *np = dev_of_node(&pdev->dev); > struct device *dev = &pdev->dev; > struct bcm63138_leds *leds; > + u32 shift_bits; > > leds = devm_kzalloc(dev, sizeof(*leds), GFP_KERNEL); > if (!leds) > @@ -267,6 +269,12 @@ static int bcm63138_leds_probe(struct > platform_device *pdev) > > spin_lock_init(&leds->lock); > > + /* If this property is not present, we use boot defaults */ > + if (!of_property_read_u32(np, "brcm,serial-shift-bits", &shift_bits)) { > + bcm63138_leds_write(leds, > BCM63138_SERIAL_LED_SHIFT_SEL, > + GENMASK(32 - shift_bits - 1, 0)); > + } > + > bcm63138_leds_write(leds, BCM63138_GLB_CTRL, > BCM63138_GLB_CTRL_SERIAL_LED_DATA_PPOL | > BCM63138_GLB_CTRL_SERIAL_LED_EN_POL); > > -- > 2.46.0
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature