> -----Original Message-----
> From: Linus Walleij <[email protected]>
> Sent: Monday, September 16, 2024 2:59 AM
> To: [email protected]; Dario Binacchi
> <[email protected]>; Michael Trimarchi
> <[email protected]>; Anand Gore
> <[email protected]>; William Zhang
> <[email protected]>; Kursad Oney
> <[email protected]>; Philippe Reynes
> <[email protected]>
> Cc: Linus Walleij <[email protected]>; Florian Fainelli
> <[email protected]>; Kamal Dasu
> <[email protected]>; David Regan <[email protected]>;
> Miquel Raynal <[email protected]>
> Subject: [PATCH v2 6/7] mtd: rawnand: brcmnand: Support write
> protection setting from dts
>
> From: William Zhang <[email protected]>
>
> Backport of upstream Linux
> commit 8e7daa85641c9559c113f6b217bdc923397de77c
> "mtd: rawnand: brcmnand: Support write protection setting from dts"
>
> Augmented to also support the "write-protect" boolean property.
>
> The write protection feature is controlled by the module parameter wp_on
> with default set to enabled. But not all the board use this feature
> especially in BCMBCA broadband board. And module parameter is not
> sufficient as different board can have different option.  Add a device
> tree property and allow this feature to be configured through the board
> dts on per board basis.
>
> Signed-off-by: William Zhang <[email protected]>
> Reviewed-by: Florian Fainelli <[email protected]>
> Reviewed-by: Kamal Dasu <[email protected]>
> Reviewed-by: David Regan <[email protected]>
> Signed-off-by: Miquel Raynal <[email protected]>
> Link: https://lore.kernel.org/linux-mtd/20240223034758.13753-14-
> [email protected]
> Signed-off-by: Linus Walleij <[email protected]>
> ---
>  drivers/mtd/nand/raw/brcmnand/brcmnand.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
> b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
> index 2f786584a1ae..071b33951648 100644
> --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
> +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
> @@ -2844,8 +2844,17 @@ int brcmnand_probe(struct udevice *dev,
> struct brcmnand_soc *soc)
>       /* Disable XOR addressing */
>       brcmnand_rmw_reg(ctrl, BRCMNAND_CS_XOR, 0xff, 0, 0);
>
> +     /* Check if the board connects the WP pin */
> +#ifndef __UBOOT__
> +     if (of_property_read_bool(dn, "brcm,wp-not-connected"))
> +#else
> +     if (dev_read_bool(ctrl->dev, "brcm,wp-not-connected"))
> +#endif /* __UBOOT__ */
> +             wp_on = 0;
> +
>       /* Read the write-protect configuration in the device tree */
> -     wp_on = dev_read_u32_default(dev, "write-protect", wp_on);
> +     if (dev_read_bool(ctrl->dev, "write-protect"))
write-protect is a u32 property. Should use dev_read_u32 and check return
code to see if the property exist or not.

> +             wp_on = dev_read_u32_default(dev, "write-protect", wp_on);
>
>       if (ctrl->features & BRCMNAND_HAS_WP) {
>               /* Permanently disable write protection */
>
> --
> 2.46.0

Reviewed-by: William Zhang <[email protected]>

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to