From: Roger Quadros <rogerq@kernel.org> To: tony@atomide.com Cc: robh+dt@kernel.org, grygorii.strashko@ti.com, nm@ti.com, lokeshvutla@ti.com, nsekhar@ti.com, krzysztof.kozlowski@canonical.com, miquel.raynal@bootlin.com, devicetree@vger.kernel.org, linux-mtd@lists.infradead.org, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, Roger Quadros <rogerq@kernel.org> Subject: [PATCH v3 8/8] memory: gpmc-omap: "gpmc,device-width" DT property is optional Date: Tue, 7 Sep 2021 14:32:26 +0300 [thread overview] Message-ID: <20210907113226.31876-9-rogerq@kernel.org> (raw) In-Reply-To: <20210907113226.31876-1-rogerq@kernel.org> Check for valid gpmc,device-width, nand-bus-width and bank-width at one place. Default to 8-bit width if none present. Signed-off-by: Roger Quadros <rogerq@kernel.org> --- drivers/memory/omap-gpmc.c | 41 ++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c index f80c2ea39ca4..32d7c665f33c 100644 --- a/drivers/memory/omap-gpmc.c +++ b/drivers/memory/omap-gpmc.c @@ -2171,10 +2171,8 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, } } - if (of_device_is_compatible(child, "ti,omap2-nand")) { - /* NAND specific setup */ - val = 8; - of_property_read_u32(child, "nand-bus-width", &val); + /* DT node can have "nand-bus-width" or "bank-width" or "gpmc,device-width" */ + if (!of_property_read_u32(child, "nand-bus-width", &val)) { switch (val) { case 8: gpmc_s.device_width = GPMC_DEVWIDTH_8BIT; @@ -2183,24 +2181,37 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, gpmc_s.device_width = GPMC_DEVWIDTH_16BIT; break; default: - dev_err(&pdev->dev, "%pOFn: invalid 'nand-bus-width'\n", - child); + dev_err(&pdev->dev, + "%pOFn: invalid 'nand-bus-width':%d\n", child, val); + ret = -EINVAL; + goto err; + } + } else if (!of_property_read_u32(child, "bank-width", &val)) { + if (val != 1 && val != 2) { + dev_err(&pdev->dev, + "%pOFn: invalid 'bank-width':%d\n", child, val); ret = -EINVAL; goto err; } + gpmc_s.device_width = val; + } else if (!of_property_read_u32(child, "gpmc,device-width", &val)) { + if (val != 1 && val != 2) { + dev_err(&pdev->dev, + "%pOFn: invalid 'gpmc,device-width':%d\n", child, val); + ret = -EINVAL; + goto err; + } + gpmc_s.device_width = val; + } else { + /* default to 8-bit */ + gpmc_s.device_width = GPMC_DEVWIDTH_8BIT; + } + if (of_device_is_compatible(child, "ti,omap2-nand")) { + /* NAND specific setup */ /* disable write protect */ gpmc_configure(GPMC_CONFIG_WP, 0); gpmc_s.device_nand = true; - } else { - ret = of_property_read_u32(child, "bank-width", - &gpmc_s.device_width); - if (ret < 0 && !gpmc_s.device_width) { - dev_err(&pdev->dev, - "%pOF has no 'gpmc,device-width' property\n", - child); - goto err; - } } /* Reserve wait pin if it is required and valid */ -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Roger Quadros <rogerq@kernel.org> To: tony@atomide.com Cc: robh+dt@kernel.org, grygorii.strashko@ti.com, nm@ti.com, lokeshvutla@ti.com, nsekhar@ti.com, krzysztof.kozlowski@canonical.com, miquel.raynal@bootlin.com, devicetree@vger.kernel.org, linux-mtd@lists.infradead.org, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, Roger Quadros <rogerq@kernel.org> Subject: [PATCH v3 8/8] memory: gpmc-omap: "gpmc, device-width" DT property is optional Date: Tue, 7 Sep 2021 14:32:26 +0300 [thread overview] Message-ID: <20210907113226.31876-9-rogerq@kernel.org> (raw) In-Reply-To: <20210907113226.31876-1-rogerq@kernel.org> Check for valid gpmc,device-width, nand-bus-width and bank-width at one place. Default to 8-bit width if none present. Signed-off-by: Roger Quadros <rogerq@kernel.org> --- drivers/memory/omap-gpmc.c | 41 ++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c index f80c2ea39ca4..32d7c665f33c 100644 --- a/drivers/memory/omap-gpmc.c +++ b/drivers/memory/omap-gpmc.c @@ -2171,10 +2171,8 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, } } - if (of_device_is_compatible(child, "ti,omap2-nand")) { - /* NAND specific setup */ - val = 8; - of_property_read_u32(child, "nand-bus-width", &val); + /* DT node can have "nand-bus-width" or "bank-width" or "gpmc,device-width" */ + if (!of_property_read_u32(child, "nand-bus-width", &val)) { switch (val) { case 8: gpmc_s.device_width = GPMC_DEVWIDTH_8BIT; @@ -2183,24 +2181,37 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, gpmc_s.device_width = GPMC_DEVWIDTH_16BIT; break; default: - dev_err(&pdev->dev, "%pOFn: invalid 'nand-bus-width'\n", - child); + dev_err(&pdev->dev, + "%pOFn: invalid 'nand-bus-width':%d\n", child, val); + ret = -EINVAL; + goto err; + } + } else if (!of_property_read_u32(child, "bank-width", &val)) { + if (val != 1 && val != 2) { + dev_err(&pdev->dev, + "%pOFn: invalid 'bank-width':%d\n", child, val); ret = -EINVAL; goto err; } + gpmc_s.device_width = val; + } else if (!of_property_read_u32(child, "gpmc,device-width", &val)) { + if (val != 1 && val != 2) { + dev_err(&pdev->dev, + "%pOFn: invalid 'gpmc,device-width':%d\n", child, val); + ret = -EINVAL; + goto err; + } + gpmc_s.device_width = val; + } else { + /* default to 8-bit */ + gpmc_s.device_width = GPMC_DEVWIDTH_8BIT; + } + if (of_device_is_compatible(child, "ti,omap2-nand")) { + /* NAND specific setup */ /* disable write protect */ gpmc_configure(GPMC_CONFIG_WP, 0); gpmc_s.device_nand = true; - } else { - ret = of_property_read_u32(child, "bank-width", - &gpmc_s.device_width); - if (ret < 0 && !gpmc_s.device_width) { - dev_err(&pdev->dev, - "%pOF has no 'gpmc,device-width' property\n", - child); - goto err; - } } /* Reserve wait pin if it is required and valid */ -- 2.17.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2021-09-07 11:33 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-07 11:32 [PATCH v3 0/8] dt-bindings: memory-controllers: ti,gpmc: Convert to yaml Roger Quadros 2021-09-07 11:32 ` [PATCH v3 0/8] dt-bindings: memory-controllers: ti, gpmc: " Roger Quadros 2021-09-07 11:32 ` [PATCH v3 1/8] ARM: dts: omap: Fixup GPMC child nodes Roger Quadros 2021-09-07 11:32 ` Roger Quadros 2021-09-07 12:44 ` Krzysztof Kozlowski 2021-09-07 12:44 ` Krzysztof Kozlowski 2021-09-15 8:53 ` Roger Quadros 2021-09-15 8:53 ` Roger Quadros 2021-09-07 11:32 ` [PATCH v3 2/8] dt-bindings: mtd: Remove gpmc-nor.txt Roger Quadros 2021-09-07 11:32 ` Roger Quadros 2021-09-07 11:32 ` [PATCH v3 3/8] dt-bindings: net: Remove gpmc-eth.txt Roger Quadros 2021-09-07 11:32 ` Roger Quadros 2021-09-07 11:32 ` [PATCH v3 4/8] dt-bindings: memory-controllers: Introduce ti,gpmc-child Roger Quadros 2021-09-07 11:32 ` [PATCH v3 4/8] dt-bindings: memory-controllers: Introduce ti, gpmc-child Roger Quadros 2021-09-07 11:32 ` [PATCH v3 5/8] dt-bindings: mtd: ti,gpmc-nand: Convert to yaml Roger Quadros 2021-09-07 11:32 ` Roger Quadros 2021-09-07 14:03 ` Miquel Raynal 2021-09-07 14:03 ` Miquel Raynal 2021-09-07 15:27 ` Grygorii Strashko 2021-09-07 15:27 ` Grygorii Strashko 2021-09-07 16:35 ` Miquel Raynal 2021-09-07 16:35 ` Miquel Raynal 2021-09-07 16:57 ` Roger Quadros 2021-09-07 16:57 ` Roger Quadros 2021-09-07 22:24 ` Rob Herring 2021-09-07 22:24 ` Rob Herring 2021-09-08 6:55 ` Roger Quadros 2021-09-08 6:55 ` Roger Quadros 2021-09-07 17:01 ` Rob Herring 2021-09-07 17:01 ` Rob Herring 2021-09-08 11:14 ` Roger Quadros 2021-09-08 11:14 ` Roger Quadros 2021-09-08 12:46 ` Rob Herring 2021-09-08 12:46 ` Rob Herring 2021-09-07 11:32 ` [PATCH v3 6/8] dt-bindings: mtd: ti,gpmc-onenand: " Roger Quadros 2021-09-07 11:32 ` Roger Quadros 2021-09-07 11:32 ` [PATCH v3 7/8] dt-bindings: memory-controllers: ti,gpmc: " Roger Quadros 2021-09-07 11:32 ` [PATCH v3 7/8] dt-bindings: memory-controllers: ti, gpmc: " Roger Quadros 2021-09-07 11:32 ` Roger Quadros [this message] 2021-09-07 11:32 ` [PATCH v3 8/8] memory: gpmc-omap: "gpmc, device-width" DT property is optional Roger Quadros 2021-09-07 12:36 ` [PATCH v3 8/8] memory: gpmc-omap: "gpmc,device-width" " Krzysztof Kozlowski 2021-09-07 12:36 ` [PATCH v3 8/8] memory: gpmc-omap: "gpmc, device-width" " Krzysztof Kozlowski 2021-09-15 9:11 ` [PATCH v3 8/8] memory: gpmc-omap: "gpmc,device-width" " Roger Quadros 2021-09-15 9:11 ` [PATCH v3 8/8] memory: gpmc-omap: "gpmc, device-width" " Roger Quadros 2021-09-16 10:48 ` [PATCH v3 8/8] memory: gpmc-omap: "gpmc,device-width" " Krzysztof Kozlowski 2021-09-16 10:48 ` [PATCH v3 8/8] memory: gpmc-omap: "gpmc, device-width" " Krzysztof Kozlowski 2021-09-17 7:17 ` [PATCH v3 8/8] memory: gpmc-omap: "gpmc,device-width" " Roger Quadros 2021-09-17 7:17 ` [PATCH v3 8/8] memory: gpmc-omap: "gpmc, device-width" " Roger Quadros
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210907113226.31876-9-rogerq@kernel.org \ --to=rogerq@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=grygorii.strashko@ti.com \ --cc=krzysztof.kozlowski@canonical.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mtd@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=lokeshvutla@ti.com \ --cc=miquel.raynal@bootlin.com \ --cc=nm@ti.com \ --cc=nsekhar@ti.com \ --cc=robh+dt@kernel.org \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.