RE: [PATCH 3/4] leds: bcm63128: Handle shift register config

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----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


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux