From: Lee Jones <lee@kernel.org>
To: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: linux-sh@vger.kernel.org, glaubitz@physik.fu-berlin.de
Subject: Re: [RFC PATCH v2 20/30] drivers/mfd: sm501 add some properties.
Date: Wed, 20 Sep 2023 13:25:50 +0100 [thread overview]
Message-ID: <20230920122550.GF13143@google.com> (raw)
In-Reply-To: <9c298d2dc42df60fdbbec395a8d790511e35c531.1694596125.git.ysato@users.sourceforge.jp>
Subject line is wrong in many of your commits.
Use `git log --online -- <subsystem>` to help you.
On Wed, 13 Sep 2023, Yoshinori Sato wrote:
> SM501's OF support is not enough parameter in platform device.
> This change adds the missing parameter.
You need more information.
What currently doesn't work? How does this help?
How does it work? What will happen if it's not applied?
> Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
> ---
> drivers/mfd/sm501.c | 113 ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 113 insertions(+)
Please resubmit this set and Cc it to everyone.
I would like to see all of the changes please, since they are related.
> diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
> index 28027982cf69..82508f6d96da 100644
> --- a/drivers/mfd/sm501.c
> +++ b/drivers/mfd/sm501.c
> @@ -1370,6 +1370,113 @@ static int sm501_init_dev(struct sm501_devdata *sm)
> return 0;
> }
>
> +#if defined(CONFIG_OF)
Avoid #ifery as much as possible.
> +static unsigned int sm501_parse_devices_str(struct device_node *np)
> +{
> + unsigned int device = 0;
> + unsigned int i, j;
> + unsigned int nstr;
> + const char *devstr;
> + static const struct {
> + char *devname;
> + unsigned int devid;
> + } devlist[] = {
> + { "usb-host", SM501_USE_USB_HOST },
> + { "usb-gadget", SM501_USE_USB_SLAVE },
> + { "ssp0", SM501_USE_SSP0 },
> + { "ssp1", SM501_USE_SSP1 },
> + { "uart0", SM501_USE_UART0 },
> + { "uart1", SM501_USE_UART1 },
> + { "accel", SM501_USE_FBACCEL },
> + { "ac97", SM501_USE_AC97 },
> + { "i2s", SM501_USE_I2S },
> + { "gpio", SM501_USE_GPIO },
> + { "all", SM501_USE_ALL },
> + };
> +
> + nstr = of_property_count_strings(np, "sm501,devices");
> + for (i = 0; i < nstr; i++) {
> + if (of_property_read_string_index(np, "sm501,devices", i, &devstr))
Not a lot I can do without seeing the DT binding.
> + break;
> + for (j = 0; j < ARRAY_SIZE(devlist); j++) {
> + if (strcmp(devstr, devlist[j].devname) == 0) {
> + device |= devlist[j].devid;
> + goto next;
> + }
> + }
> +next:
> + }
> + return device;
> +}
> +
> +static void sm501_of_read_reg_init(struct device_node *np,
> + const char *propname, struct sm501_reg_init *val)
> +{
> + u32 u32_val[2];
> +
> + if (!of_property_read_u32_array(np, propname, u32_val, sizeof(u32_val))) {
> + val->set = u32_val[0];
> + val->mask = u32_val[1];
> + } else {
> + val->set = 0;
> + val->mask = 0;
> + }
> +}
> +
> +static int sm501_parse_dt(struct sm501_devdata *sm, struct device_node *np)
> +{
> + struct sm501_platdata *plat;
> + u32 u32_val;
> +
> + plat = devm_kzalloc(sm->dev, sizeof(struct sm501_platdata), GFP_KERNEL);
sizeof(*plat)
> + if (plat == NULL)
if (!plat)
> + return -ENOMEM;
> +
> + plat->init = devm_kzalloc(sm->dev, sizeof(struct sm501_initdata), GFP_KERNEL);
> + if (plat->init == NULL)
> + return -ENOMEM;
> +
> + plat->init->devices = sm501_parse_devices_str(np);
> +
> + if (!of_property_read_u32_index(np, "sm501,mclk", 0, &u32_val))
> + plat->init->mclk = u32_val;
> + else
> + plat->init->mclk = 0;
> +
> + if (!of_property_read_u32_index(np, "sm501,m1xclk", 0, &u32_val))
> + plat->init->m1xclk = u32_val;
> + else
> + plat->init->m1xclk = 0;
> +
> + sm501_of_read_reg_init(np, "sm501,misc-timing", &plat->init->misc_timing);
> + sm501_of_read_reg_init(np, "sm501,misc-control", &plat->init->misc_control);
> + sm501_of_read_reg_init(np, "sm501,gpio-low", &plat->init->gpio_low);
> + sm501_of_read_reg_init(np, "sm501,gpio-high", &plat->init->gpio_high);
> +
> +#ifdef CONFIG_MFD_SM501_GPIO
> + if (plat->init->devices & SM501_USE_GPIO) {
> + if (!of_property_read_u32_index(np, "sm501,num-i2c", 0, &u32_val))
> + plat->gpio_i2c_nr = u32_val;
> + else
> + plat->gpio_i2c_nr = 0;
> + }
> + if (plat->gpio_i2c_nr > 0) {
> + int sz_gpio;
> +
> + sz_gpio = sizeof(struct sm501_platdata_gpio_i2c) * plat->gpio_i2c_nr;
> + plat->gpio_i2c = devm_kzalloc(sm->dev, sz_gpio, GFP_KERNEL);
> + if (plat->gpio_i2c == NULL)
> + return -ENOMEM;
> +
> + of_property_read_variable_u32(np, "sm501,gpio-i2c",
> + plat->gpio_i2c, plat->gpio_i2c_nr * 5);
> + }
> +#endif
> + sm->platdata = plat;
> + return 0;
> +}
> +#endif
> +
> static int sm501_plat_probe(struct platform_device *dev)
> {
> struct sm501_devdata *sm;
> @@ -1406,6 +1513,12 @@ static int sm501_plat_probe(struct platform_device *dev)
> goto err_res;
> }
>
> + if (IS_ENABLED(CONFIG_OF) && dev->dev.of_node) {
> + ret = sm501_parse_dt(sm, dev->dev.of_node);
> + if (ret)
> + goto err_res;
> + }
> +
> platform_set_drvdata(dev, sm);
>
> sm->regs = ioremap(sm->io_res->start, resource_size(sm->io_res));
> --
> 2.39.2
>
--
Lee Jones [李琼斯]
next prev parent reply other threads:[~2023-09-20 12:26 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-13 9:23 [RFC PATCH v2 00/30] Device Tree support for SH7751 based board Yoshinori Sato
2023-09-13 9:23 ` [RFC PATCH v2 01/30] arch/sh: head_32.S passing FDT address to initialize function Yoshinori Sato
2023-09-18 15:16 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 02/30] arch/sh: boards/Kconfig unified OF supported targets Yoshinori Sato
2023-09-18 15:05 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 03/30] arch/sh: Disable SH specific drivers in OF enabled Yoshinori Sato
2023-09-18 15:14 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 04/30] include: sh_intc.h Add stub function "intc_finalize" Yoshinori Sato
2023-09-18 15:16 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 05/30] arch/sh: setup.c update DeviceTree support Yoshinori Sato
2023-09-13 9:23 ` [RFC PATCH v2 06/30] drivers/pci: SH7751 PCI Host bridge header Yoshinori Sato
2023-09-18 19:16 ` Bjorn Helgaas
2023-09-13 9:23 ` [RFC PATCH v2 07/30] drivers/pci: SH7751 PCI Host bridge controller driver Yoshinori Sato
2023-09-18 15:32 ` Geert Uytterhoeven
2023-09-20 12:15 ` Yoshinori Sato
2023-09-18 19:30 ` Bjorn Helgaas
2023-09-13 9:23 ` [RFC PATCH v2 08/30] drivers/pci: Add SH7751 Host bridge controller Yoshinori Sato
2023-09-18 15:34 ` Geert Uytterhoeven
2023-09-18 19:33 ` Bjorn Helgaas
2023-10-12 7:16 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 09/30] Documentation/devicetree: Add renesas,sh7751-pci binding document Yoshinori Sato
2023-09-13 10:42 ` Krzysztof Kozlowski
2023-09-18 15:41 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 10/30] drivers/clk: SH7750 / SH7751 CPG Driver Yoshinori Sato
2023-09-13 10:43 ` Krzysztof Kozlowski
2023-09-18 16:05 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 11/30] drivers/clk: SuperH generai clock divider helper Yoshinori Sato
2023-09-18 18:59 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 12/30] drivers/clk: Add SH7750 CPG drivers entry Yoshinori Sato
2023-09-18 19:05 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 13/30] Documentation/devicetree: Add renesas,sh7751-cpg binding document Yoshinori Sato
2023-09-13 10:44 ` Krzysztof Kozlowski
2023-09-18 19:21 ` Geert Uytterhoeven
2023-10-03 9:16 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 14/30] drivers/irqchip: Add SH7751 Internal INTC drivers Yoshinori Sato
2023-09-19 11:50 ` Geert Uytterhoeven
2023-09-22 10:12 ` Yoshinori Sato
2023-09-25 7:38 ` Geert Uytterhoeven
2023-09-30 15:14 ` Yoshinori Sato
2023-09-13 9:23 ` [RFC PATCH v2 15/30] Documentation/devicetree: Add renesas,sh7751-intc binding document Yoshinori Sato
2023-09-13 10:44 ` Krzysztof Kozlowski
2023-09-19 11:56 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 16/30] drivers/irqchip: SH7751 IRL external encoder with enable gate Yoshinori Sato
2023-09-19 12:10 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 17/30] Documentation/devicetree: Add renesas,sh7751-irl-ext binding document Yoshinori Sato
2023-09-13 10:45 ` Krzysztof Kozlowski
2023-09-19 12:08 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 18/30] drivers/clocksource: sh_tmu clocks property support Yoshinori Sato
2023-09-19 12:15 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 19/30] drivers/tty: sh-sci fix SH4 OF support Yoshinori Sato
2023-09-19 12:25 ` Geert Uytterhoeven
2023-10-02 12:56 ` Yoshinori Sato
2023-09-13 9:23 ` [RFC PATCH v2 20/30] drivers/mfd: sm501 add some properties Yoshinori Sato
2023-09-20 12:25 ` Lee Jones [this message]
2023-09-13 9:23 ` [RFC PATCH v2 21/30] Documentation/devicetree: sm501fb add properies Yoshinori Sato
2023-09-13 10:45 ` Krzysztof Kozlowski
2023-09-13 9:23 ` [RFC PATCH v2 22/30] arch/sh: Add dtbs target support Yoshinori Sato
2023-09-19 12:28 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 23/30] arch/sh: Add SH7751 SoC Internal periphreal devicetree Yoshinori Sato
2023-09-13 10:49 ` Krzysztof Kozlowski
2023-09-19 12:41 ` Geert Uytterhoeven
2023-09-19 13:11 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 24/30] include/dt-bindings: Add SH7750 CPG header Yoshinori Sato
2023-09-13 10:46 ` Krzysztof Kozlowski
2023-09-19 12:43 ` Geert Uytterhoeven
2023-09-20 11:52 ` Krzysztof Kozlowski
2023-09-19 12:46 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 25/30] include/dt-bindings: Add sh_intc IRQ - EVT conversion helper Yoshinori Sato
2023-09-13 10:47 ` Krzysztof Kozlowski
2023-09-19 13:02 ` Geert Uytterhoeven
2023-09-20 11:51 ` Krzysztof Kozlowski
2023-09-20 12:30 ` Geert Uytterhoeven
2023-09-19 13:05 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 26/30] arch/sh: RTS7751R2D Plus DeviceTree Yoshinori Sato
2023-09-13 10:49 ` Krzysztof Kozlowski
2023-09-15 15:43 ` Geert Uytterhoeven
2023-09-19 13:25 ` Geert Uytterhoeven
2023-10-02 13:21 ` Yoshinori Sato
2023-10-02 13:51 ` Geert Uytterhoeven
2023-09-13 9:23 ` [RFC PATCH v2 27/30] arch/sh: LANDISK DeviceTree Yoshinori Sato
2023-09-13 9:23 ` [RFC PATCH v2 28/30] arch/sh: USL-5P DeviceTree Yoshinori Sato
2023-09-13 9:23 ` [RFC PATCH v2 29/30] arch/sh: RTS7751R2D Plus OF defconfig Yoshinori Sato
2023-09-13 9:23 ` [RFC PATCH v2 30/30] arch/sh: LANDISK " Yoshinori Sato
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=20230920122550.GF13143@google.com \
--to=lee@kernel.org \
--cc=glaubitz@physik.fu-berlin.de \
--cc=linux-sh@vger.kernel.org \
--cc=ysato@users.sourceforge.jp \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).