linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 [李琼斯]

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