All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Mason Yang <masonccyang@mxic.com.tw>
Cc: broonie@kernel.org, marek.vasut@gmail.com,
	linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org,
	bbrezillon@kernel.org, linux-renesas-soc@vger.kernel.org,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	sergei.shtylyov@cogentembedded.com, robh+dt@kernel.org,
	mark.rutland@arm.com, devicetree@vger.kernel.org,
	juliensu@mxic.com.tw, Simon Horman <horms@verge.net.au>,
	zhengxunli@mxic.com.tw
Subject: Re: [PATCH v12 2/3] spi: Add Renesas R-Car Gen3 RPC-IF SPI controller driver
Date: Tue, 14 May 2019 07:52:16 +0100	[thread overview]
Message-ID: <20190514065216.GL4319@dell> (raw)
In-Reply-To: <1556092536-17095-3-git-send-email-masonccyang@mxic.com.tw>

On Wed, 24 Apr 2019, Mason Yang wrote:

> Add a driver for Renesas R-Car Gen3 RPC-IF SPI controller.
> 
> Signed-off-by: Mason Yang <masonccyang@mxic.com.tw>
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> ---
>  drivers/spi/Kconfig           |   6 +
>  drivers/spi/Makefile          |   1 +
>  drivers/spi/spi-renesas-rpc.c | 571 ++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 578 insertions(+)
>  create mode 100644 drivers/spi/spi-renesas-rpc.c
> 
> diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
> index f761655..1f52bcf 100644
> --- a/drivers/spi/Kconfig
> +++ b/drivers/spi/Kconfig
> @@ -564,6 +564,12 @@ config SPI_RSPI
>  	help
>  	  SPI driver for Renesas RSPI and QSPI blocks.
>  
> +config SPI_RENESAS_RPC
> +	tristate "Renesas R-Car Gen3 RPC-IF controller"
> +	depends on ARCH_RENESAS || COMPILE_TEST
> +	help
> +	  SPI driver for Renesas R-Car Gen3 RPC-IF.
> +
>  config SPI_QCOM_QSPI
>  	tristate "QTI QSPI controller"
>  	depends on ARCH_QCOM
> diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
> index d8fc03c..b3a3deb 100644
> --- a/drivers/spi/Makefile
> +++ b/drivers/spi/Makefile
> @@ -86,6 +86,7 @@ obj-$(CONFIG_SPI_QUP)			+= spi-qup.o
>  obj-$(CONFIG_SPI_ROCKCHIP)		+= spi-rockchip.o
>  obj-$(CONFIG_SPI_RB4XX)			+= spi-rb4xx.o
>  obj-$(CONFIG_SPI_RSPI)			+= spi-rspi.o
> +obj-$(CONFIG_SPI_RENESAS_RPC)		+= spi-renesas-rpc.o
>  obj-$(CONFIG_SPI_S3C24XX)		+= spi-s3c24xx-hw.o
>  spi-s3c24xx-hw-y			:= spi-s3c24xx.o
>  spi-s3c24xx-hw-$(CONFIG_SPI_S3C24XX_FIQ) += spi-s3c24xx-fiq.o
> diff --git a/drivers/spi/spi-renesas-rpc.c b/drivers/spi/spi-renesas-rpc.c
> new file mode 100644
> index 0000000..c2202d4
> --- /dev/null
> +++ b/drivers/spi/spi-renesas-rpc.c
> @@ -0,0 +1,571 @@
> +// SPDX-License-Identifier: GPL-2.0
> +//
> +// Copyright (C) 2018 ~ 2019 Renesas Solutions Corp.
> +// Copyright (C) 2019 Macronix International Co., Ltd.
> +//
> +// R-Car Gen3 RPC-IF SPI/QSPI/Octa driver
> +//
> +// Author:
> +//	Mason Yang <masonccyang@mxic.com.tw>
> +//
> +
> +#include <linux/clk.h>
> +#include <linux/io.h>
> +#include <linux/log2.h>
> +#include <linux/iopoll.h>
> +#include <linux/mfd/renesas-rpc.h>
> +#include <linux/module.h>
> +#include <linux/mtd/mtd.h>
> +#include <linux/platform_device.h>
> +#include <linux/pm_runtime.h>
> +#include <linux/regmap.h>
> +#include <linux/reset.h>
> +#include <linux/spi/spi.h>
> +#include <linux/spi/spi-mem.h>
> +
> +#include <asm/unaligned.h>
> +
> +struct rpc_spi {
> +	struct rpc_mfd *mfd;

The term MFD isn't a real thing.  What you're obtaining below is
driver data and is normally articulated as 'ddata' in drivers.

> +	u32 cur_speed_hz;
> +	u32 cmd;
> +	u32 addr;
> +	u32 dummy;
> +	u32 smcr;
> +	u32 smenr;
> +	u32 xferlen;
> +	u32 totalxferlen;
> +	enum spi_mem_data_dir xfer_dir;
> +};

[...]

> +static void rpc_spi_hw_init(struct rpc_spi *rpc)
> +{
> +	//
> +	// NOTE: The 0x260 are undocumented bits, but they must be set.
> +	//	 RPC_PHYCNT_STRTIM is strobe timing adjustment bit,
> +	//	 0x0 : the delay is biggest,
> +	//	 0x1 : the delay is 2nd biggest,
> +	//	 On H3 ES1.x, the value should be 0, while on others,
> +	//	 the value should be 6.
> +	//

C++ style comments?  Is that a thing now?

> +	regmap_write(rpc->mfd->regmap, RPC_PHYCNT, RPC_PHYCNT_CAL |
> +				  RPC_PHYCNT_STRTIM(6) | 0x260);
> +
> +	//
> +	// NOTE: The 0x1511144 are undocumented bits, but they must be set
> +	//       for RPC_PHYOFFSET1.
> +	//	 The 0x31 are undocumented bits, but they must be set
> +	//	 for RPC_PHYOFFSET2.
> +	//
> +	regmap_write(rpc->mfd->regmap, RPC_PHYOFFSET1,
> +		     RPC_PHYOFFSET1_DDRTMG(3) | 0x1511144);
> +	regmap_write(rpc->mfd->regmap, RPC_PHYOFFSET2, 0x31 |
> +		     RPC_PHYOFFSET2_OCTTMG(4));
> +	regmap_write(rpc->mfd->regmap, RPC_SSLDR, RPC_SSLDR_SPNDL(7) |
> +		     RPC_SSLDR_SLNDL(7) | RPC_SSLDR_SCKDL(7));
> +	regmap_write(rpc->mfd->regmap, RPC_CMNCR, RPC_CMNCR_MD |
> +		     RPC_CMNCR_SFDE | RPC_CMNCR_MOIIO_HIZ | RPC_CMNCR_IOFV_HIZ |
> +		     RPC_CMNCR_BSZ(0));
> +}

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2019-05-14  6:52 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24  7:55 [PATCH v12 0/3] mfd: Add Renesas R-Car Gen3 RPC-IF MFD & SPI driver Mason Yang
2019-04-24  7:55 ` [PATCH v12 1/3] mfd: Add Renesas R-Car Gen3 RPC-IF MFD driver Mason Yang
2019-04-24  7:55 ` [PATCH v12 2/3] spi: Add Renesas R-Car Gen3 RPC-IF SPI controller driver Mason Yang
2019-05-14  6:52   ` Lee Jones [this message]
2019-05-15  5:55     ` masonccyang
2019-05-15  7:16       ` Lee Jones
2019-04-24  7:55 ` [PATCH v12 3/3] dt-bindings: mfd: Document Renesas R-Car Gen3 RPC-IF MFD bindings Mason Yang
2019-04-24 21:23   ` Rob Herring
2019-04-24 21:54     ` Marek Vasut
2019-04-25 23:07       ` Rob Herring
2019-04-25 23:07         ` Rob Herring
2019-04-26  1:44         ` Marek Vasut
2019-04-26  1:44           ` Marek Vasut
2019-05-07 12:57       ` Lee Jones
2019-05-08  2:48         ` masonccyang
2019-05-08  3:52           ` Marek Vasut
2019-05-08  6:11             ` Lee Jones
2019-05-09  2:06               ` masonccyang
2019-05-09 19:23                 ` Sergei Shtylyov
2019-05-10  1:06                   ` masonccyang
2019-05-13  7:11                     ` Geert Uytterhoeven
2019-05-13  7:11                       ` Geert Uytterhoeven
2019-05-13  9:37                       ` masonccyang
2019-05-13 14:43                         ` Geert Uytterhoeven
2019-05-13 14:43                           ` Geert Uytterhoeven
2019-05-14  2:33                           ` masonccyang
2019-05-14  2:33                             ` masonccyang
2019-05-13 19:08                         ` Sergei Shtylyov
2019-05-13 19:08                           ` Sergei Shtylyov
2019-05-14  9:46                           ` masonccyang
2019-05-14  9:46                             ` masonccyang
2019-05-14  9:46                             ` masonccyang
2019-05-14 10:07                             ` Geert Uytterhoeven
2019-05-14 10:07                               ` Geert Uytterhoeven
2019-05-14 20:27                             ` Sergei Shtylyov
2019-05-14 20:27                               ` Sergei Shtylyov
2019-05-20  7:23                               ` masonccyang
2019-05-20  7:23                                 ` masonccyang
2019-05-20  7:23                                 ` masonccyang
2019-05-20  7:44                                 ` Geert Uytterhoeven
2019-05-20  7:44                                   ` Geert Uytterhoeven
2019-05-21  1:28                                   ` masonccyang
2019-05-21  1:28                                     ` masonccyang
2019-05-22 16:32                                 ` Sergei Shtylyov
2019-05-22 16:32                                   ` Sergei Shtylyov
2019-05-22 17:05                                   ` Geert Uytterhoeven
2019-05-22 17:05                                     ` Geert Uytterhoeven
2019-05-22 17:23                                     ` Sergei Shtylyov
2019-05-22 17:23                                       ` Sergei Shtylyov
2019-05-22 17:44                                       ` Geert Uytterhoeven
2019-05-22 17:44                                         ` Geert Uytterhoeven
     [not found]                           ` <OFAD9AA573.86373900-ON482583FA.0034781A-482583FA.0035B40C@LocalDomain>
2019-05-14 10:00                             ` masonccyang
2019-05-14 10:00                               ` masonccyang
2019-05-14 10:00                               ` masonccyang

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=20190514065216.GL4319@dell \
    --to=lee.jones@linaro.org \
    --cc=bbrezillon@kernel.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=horms@verge.net.au \
    --cc=juliensu@mxic.com.tw \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=marek.vasut@gmail.com \
    --cc=mark.rutland@arm.com \
    --cc=masonccyang@mxic.com.tw \
    --cc=robh+dt@kernel.org \
    --cc=sergei.shtylyov@cogentembedded.com \
    --cc=zhengxunli@mxic.com.tw \
    /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.