> -----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]>
smime.p7s
Description: S/MIME Cryptographic Signature

