mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Paul Cercueil <paul@crapouillou.net>
To: 周琰杰 <zhouyanjie@wanyeetech.com>
Cc: broonie@kernel.org, robh+dt@kernel.org, krzk+dt@kernel.org,
	linux-spi@vger.kernel.org, linux-mips@vger.kernel.org,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
	contact@artur-rojek.eu, dongsheng.qiu@ingenic.com,
	aric.pzqi@ingenic.com, rick.tyliu@ingenic.com,
	sernia.zhou@foxmail.com, zhenwenjin@gmail.com,
	reimu@sudomaker.com
Subject: Re: [PATCH 3/3] SPI: Ingenic: Add support for new Ingenic SoCs.
Date: Fri, 15 Apr 2022 16:04:16 +0100	[thread overview]
Message-ID: <47ZDAR.RKPJNNUQZQO22@crapouillou.net> (raw)
In-Reply-To: <1650032528-118220-4-git-send-email-zhouyanjie@wanyeetech.com>



Le ven., avril 15 2022 at 22:22:08 +0800, 周琰杰 (Zhou Yanjie) 
<zhouyanjie@wanyeetech.com> a écrit :
> 1.Since it would be dangerous to specify a newer SoC's compatible
>   string as the fallback of an older SoC's compatible string, we
>   add support for the "ingenic,jz4775-spi" compatible string in
>   the driver.
> 
>   This will permit to support the JZ4775 by having:
>   compatible = "ingenic,jz4775-spi";
> 
>   Instead of doing:
>   compatible = "ingenic,jz4775-spi", "ingenic,jz4780-spi";
> 
> 2.Add support for probing the spi-ingenic driver on the X1000 SoC
>   from Ingenic. From the X1000 SoC onwards, the maximum frequency
>   allowed by the SSI module of Ingenic SoCs has been changed from
>   54MHz to 50MHz. So "max_speed_hz" is introduced in "jz_soc_info"
>   to set different maximum frequency values.
> 
> 3.Add support for probing the spi-ingenic driver on the X2000 SoC
>   from Ingenic. The X2000 SoC has only one native chip select line,
>   so "max_native_cs" is introduced in "jz_soc_info" to set different
>   maximum number of native chip select lines.
> 
> 4.Because of the introduction of support for the X-series SoCs, the
>   current driver is not only applicable to the JZ-series SoCs, so
>   the description texts has been modified to avoid misunderstanding.
> 
> Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>

Reviewed-by: Paul Cercueil <paul@crapouillou.net>

Cheers,
-Paul

> ---
>  drivers/spi/Kconfig       |  4 ++--
>  drivers/spi/spi-ingenic.c | 42 
> +++++++++++++++++++++++++++++++++++++-----
>  2 files changed, 39 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
> index d2815eb..cca92a8 100644
> --- a/drivers/spi/Kconfig
> +++ b/drivers/spi/Kconfig
> @@ -419,10 +419,10 @@ config SPI_IMX
>  	  This enables support for the Freescale i.MX SPI controllers.
> 
>  config SPI_INGENIC
> -	tristate "Ingenic JZ47xx SoCs SPI controller"
> +	tristate "Ingenic SoCs SPI controller"
>  	depends on MACH_INGENIC || COMPILE_TEST
>  	help
> -	  This enables support for the Ingenic JZ47xx SoCs SPI controller.
> +	  This enables support for the Ingenic SoCs SPI controller.
> 
>  	  To compile this driver as a module, choose M here: the module
>  	  will be called spi-ingenic.
> diff --git a/drivers/spi/spi-ingenic.c b/drivers/spi/spi-ingenic.c
> index 672e4ed..ff507c8 100644
> --- a/drivers/spi/spi-ingenic.c
> +++ b/drivers/spi/spi-ingenic.c
> @@ -1,8 +1,9 @@
>  // SPDX-License-Identifier: GPL-2.0
>  /*
> - * SPI bus driver for the Ingenic JZ47xx SoCs
> + * SPI bus driver for the Ingenic SoCs
>   * Copyright (c) 2017-2021 Artur Rojek <contact@artur-rojek.eu>
>   * Copyright (c) 2017-2021 Paul Cercueil <paul@crapouillou.net>
> + * Copyright (c) 2022 周琰杰 (Zhou Yanjie) 
> <zhouyanjie@wanyeetech.com>
>   */
> 
>  #include <linux/clk.h>
> @@ -52,6 +53,9 @@ struct jz_soc_info {
>  	u32 bits_per_word_mask;
>  	struct reg_field flen_field;
>  	bool has_trendian;
> +
> +	unsigned int max_speed_hz;
> +	unsigned int max_native_cs;
>  };
> 
>  struct ingenic_spi {
> @@ -418,7 +422,7 @@ static int spi_ingenic_probe(struct 
> platform_device *pdev)
> 
>  	if (of_property_read_u32(dev->of_node, "num-cs", &num_cs)) {
>  		dev_warn(dev, "Number of chip select lines not specified.\n");
> -		num_cs = 2;
> +		num_cs = pdata->max_native_cs;
>  	}
> 
>  	platform_set_drvdata(pdev, ctlr);
> @@ -433,9 +437,9 @@ static int spi_ingenic_probe(struct 
> platform_device *pdev)
>  	ctlr->max_dma_len = SPI_INGENIC_FIFO_SIZE;
>  	ctlr->bits_per_word_mask = pdata->bits_per_word_mask;
>  	ctlr->min_speed_hz = 7200;
> -	ctlr->max_speed_hz = 54000000;
> +	ctlr->max_speed_hz = pdata->max_speed_hz;
>  	ctlr->use_gpio_descriptors = true;
> -	ctlr->max_native_cs = 2;
> +	ctlr->max_native_cs = pdata->max_native_cs;
>  	ctlr->num_chipselect = num_cs;
>  	ctlr->dev.of_node = pdev->dev.of_node;
> 
> @@ -459,17 +463,44 @@ static const struct jz_soc_info jz4750_soc_info 
> = {
>  	.bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 17),
>  	.flen_field = REG_FIELD(REG_SSICR1, 4, 7),
>  	.has_trendian = false,
> +
> +	.max_speed_hz = 54000000,
> +	.max_native_cs = 2,
>  };
> 
>  static const struct jz_soc_info jz4780_soc_info = {
>  	.bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 32),
>  	.flen_field = REG_FIELD(REG_SSICR1, 3, 7),
>  	.has_trendian = true,
> +
> +	.max_speed_hz = 54000000,
> +	.max_native_cs = 2,
> +};
> +
> +static const struct jz_soc_info x1000_soc_info = {
> +	.bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 32),
> +	.flen_field = REG_FIELD(REG_SSICR1, 3, 7),
> +	.has_trendian = true,
> +
> +	.max_speed_hz = 50000000,
> +	.max_native_cs = 2,
> +};
> +
> +static const struct jz_soc_info x2000_soc_info = {
> +	.bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 32),
> +	.flen_field = REG_FIELD(REG_SSICR1, 3, 7),
> +	.has_trendian = true,
> +
> +	.max_speed_hz = 50000000,
> +	.max_native_cs = 1,
>  };
> 
>  static const struct of_device_id spi_ingenic_of_match[] = {
>  	{ .compatible = "ingenic,jz4750-spi", .data = &jz4750_soc_info },
> +	{ .compatible = "ingenic,jz4775-spi", .data = &jz4780_soc_info },
>  	{ .compatible = "ingenic,jz4780-spi", .data = &jz4780_soc_info },
> +	{ .compatible = "ingenic,x1000-spi", .data = &x1000_soc_info },
> +	{ .compatible = "ingenic,x2000-spi", .data = &x2000_soc_info },
>  	{}
>  };
>  MODULE_DEVICE_TABLE(of, spi_ingenic_of_match);
> @@ -483,7 +514,8 @@ static struct platform_driver spi_ingenic_driver 
> = {
>  };
> 
>  module_platform_driver(spi_ingenic_driver);
> -MODULE_DESCRIPTION("SPI bus driver for the Ingenic JZ47xx SoCs");
> +MODULE_DESCRIPTION("SPI bus driver for the Ingenic SoCs");
>  MODULE_AUTHOR("Artur Rojek <contact@artur-rojek.eu>");
>  MODULE_AUTHOR("Paul Cercueil <paul@crapouillou.net>");
> +MODULE_AUTHOR("周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>");
>  MODULE_LICENSE("GPL");
> --
> 2.7.4
> 



      reply	other threads:[~2022-04-15 15:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-15 14:22 [PATCH 0/3] Improve SPI support for " 周琰杰 (Zhou Yanjie)
2022-04-15 14:22 ` [PATCH 1/3] SPI: Ingenic: Add support for use GPIO as chip select line 周琰杰 (Zhou Yanjie)
2022-04-15 15:00   ` Paul Cercueil
2022-04-16 11:55     ` Zhou Yanjie
2022-04-16 16:36       ` Paul Cercueil
2022-04-19 17:00         ` Mark Brown
2022-04-19 17:10           ` Paul Cercueil
2022-04-19 17:28           ` Zhou Yanjie
2022-04-19 17:13   ` Paul Cercueil
2022-04-19 17:29     ` Zhou Yanjie
2022-04-15 14:22 ` [PATCH 2/3] dt-bindings: SPI: Add bindings for new Ingenic SoCs 周琰杰 (Zhou Yanjie)
2022-04-15 15:03   ` Paul Cercueil
2022-04-18 12:26   ` Krzysztof Kozlowski
2022-04-15 14:22 ` [PATCH 3/3] SPI: Ingenic: Add support " 周琰杰 (Zhou Yanjie)
2022-04-15 15:04   ` Paul Cercueil [this message]

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=47ZDAR.RKPJNNUQZQO22@crapouillou.net \
    --to=paul@crapouillou.net \
    --cc=aric.pzqi@ingenic.com \
    --cc=broonie@kernel.org \
    --cc=contact@artur-rojek.eu \
    --cc=devicetree@vger.kernel.org \
    --cc=dongsheng.qiu@ingenic.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=reimu@sudomaker.com \
    --cc=rick.tyliu@ingenic.com \
    --cc=robh+dt@kernel.org \
    --cc=sernia.zhou@foxmail.com \
    --cc=zhenwenjin@gmail.com \
    --cc=zhouyanjie@wanyeetech.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: 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

all inboxes | Powered by JetHome®