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