From: takasi-y@ops.dti.ne.jp To: linux-sh@vger.kernel.org Cc: Simon Horman <horms@verge.net.au>, Magnus Damm <magnus.damm@gmail.com>, Linus Walleij <linus.walleij@linaro.org>, Mark Brown <broonie@kernel.org>, linux-spi@vger.kernel.org Subject: [PATCH 05/11] spi: spi-sh-msiof: rx_need_dummy_tx variant Date: Sun, 01 Dec 2013 18:19:16 +0000 [thread overview] Message-ID: <1385921962-19843-5-git-send-email-takasi-y@ops.dti.ne.jp> (raw) In-Reply-To: <1385921962-19843-1-git-send-email-takasi-y@ops.dti.ne.jp> From: Takashi Yoshii <takasi-y@ops.dti.ne.jp> There is a variant of MSIOF, that need dummy data transfer even when you want only to receive. This patch adds the option .rx_need_dummy_tx to sh_msiof_spi_info. Consult "Transmit and Receive Procedures" on HWM, if it says - Set SICTR.TSCKE to 1 - Write dummy transmission data to SITFDR to *receive*, enable this. Ape6, Rcar-H2, and Rcar-M2 are found having this type of module. Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp> --- drivers/spi/spi-sh-msiof.c | 4 +++- include/linux/spi/sh_msiof.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c index 8683732..936d8ab 100644 --- a/drivers/spi/spi-sh-msiof.c +++ b/drivers/spi/spi-sh-msiof.c @@ -207,7 +207,7 @@ static void sh_msiof_spi_set_mode_regs(struct sh_msiof_spi_priv *p, { u32 dr2 = ((bits - 1) << 24) | ((words - 1) << 16); - if (tx_buf) + if (tx_buf || (rx_buf && p->info->rx_need_dummy_tx)) sh_msiof_write(p, TMDR2, dr2); else sh_msiof_write(p, TMDR2, dr2 | 1); @@ -464,6 +464,8 @@ static int sh_msiof_spi_txrx_once(struct sh_msiof_spi_priv *p, /* write tx fifo */ if (tx_buf) tx_fifo(p, tx_buf, words, fifo_shift); + else if (rx_buf && p->info->rx_need_dummy_tx) + tx_fifo(p, rx_buf, words, fifo_shift); /* setup clock and rx/tx signals */ ret = sh_msiof_modify_ctr_wait(p, 0, CTR_TSCKE); diff --git a/include/linux/spi/sh_msiof.h b/include/linux/spi/sh_msiof.h index 2e8db3d..cf36781 100644 --- a/include/linux/spi/sh_msiof.h +++ b/include/linux/spi/sh_msiof.h @@ -5,6 +5,7 @@ struct sh_msiof_spi_info { int tx_fifo_override; int rx_fifo_override; u16 num_chipselect; + u16 rx_need_dummy_tx:1; }; #endif /* __SPI_SH_MSIOF_H__ */ -- 1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: takasi-y@ops.dti.ne.jp To: linux-sh@vger.kernel.org Cc: Simon Horman <horms@verge.net.au>, Magnus Damm <magnus.damm@gmail.com>, Linus Walleij <linus.walleij@linaro.org>, Mark Brown <broonie@kernel.org>, linux-spi@vger.kernel.org Subject: [PATCH 05/11] spi: spi-sh-msiof: rx_need_dummy_tx variant Date: Mon, 2 Dec 2013 03:19:16 +0900 [thread overview] Message-ID: <1385921962-19843-5-git-send-email-takasi-y@ops.dti.ne.jp> (raw) In-Reply-To: <1385921962-19843-1-git-send-email-takasi-y@ops.dti.ne.jp> From: Takashi Yoshii <takasi-y@ops.dti.ne.jp> There is a variant of MSIOF, that need dummy data transfer even when you want only to receive. This patch adds the option .rx_need_dummy_tx to sh_msiof_spi_info. Consult "Transmit and Receive Procedures" on HWM, if it says - Set SICTR.TSCKE to 1 - Write dummy transmission data to SITFDR to *receive*, enable this. Ape6, Rcar-H2, and Rcar-M2 are found having this type of module. Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp> --- drivers/spi/spi-sh-msiof.c | 4 +++- include/linux/spi/sh_msiof.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c index 8683732..936d8ab 100644 --- a/drivers/spi/spi-sh-msiof.c +++ b/drivers/spi/spi-sh-msiof.c @@ -207,7 +207,7 @@ static void sh_msiof_spi_set_mode_regs(struct sh_msiof_spi_priv *p, { u32 dr2 = ((bits - 1) << 24) | ((words - 1) << 16); - if (tx_buf) + if (tx_buf || (rx_buf && p->info->rx_need_dummy_tx)) sh_msiof_write(p, TMDR2, dr2); else sh_msiof_write(p, TMDR2, dr2 | 1); @@ -464,6 +464,8 @@ static int sh_msiof_spi_txrx_once(struct sh_msiof_spi_priv *p, /* write tx fifo */ if (tx_buf) tx_fifo(p, tx_buf, words, fifo_shift); + else if (rx_buf && p->info->rx_need_dummy_tx) + tx_fifo(p, rx_buf, words, fifo_shift); /* setup clock and rx/tx signals */ ret = sh_msiof_modify_ctr_wait(p, 0, CTR_TSCKE); diff --git a/include/linux/spi/sh_msiof.h b/include/linux/spi/sh_msiof.h index 2e8db3d..cf36781 100644 --- a/include/linux/spi/sh_msiof.h +++ b/include/linux/spi/sh_msiof.h @@ -5,6 +5,7 @@ struct sh_msiof_spi_info { int tx_fifo_override; int rx_fifo_override; u16 num_chipselect; + u16 rx_need_dummy_tx:1; }; #endif /* __SPI_SH_MSIOF_H__ */ -- 1.7.9.5
next prev parent reply other threads:[~2013-12-01 18:19 UTC|newest] Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-12-01 18:15 [PATCH 00/11] ARM: shmobile: koelsch: MSIOF support Takashi YOSHII 2013-12-01 18:15 ` Takashi YOSHII 2013-12-01 18:19 ` [PATCH 01/11] pinctrl: sh-pfc: r8a7791: fix msiof groups to follow GROUP takasi-y 2013-12-01 18:19 ` takasi-y 2013-12-01 18:19 ` [PATCH 03/11] spi: spi-sh-msiof: let it run even without GPIO takasi-y 2013-12-01 18:19 ` takasi-y 2013-12-02 10:59 ` Sergei Shtylyov 2013-12-02 10:59 ` Sergei Shtylyov [not found] ` <1385921962-19843-3-git-send-email-takasi-y-nDL5PR/MsHhHfZP73Gtkiw@public.gmane.org> 2013-12-02 12:53 ` Mark Brown 2013-12-02 12:53 ` Mark Brown 2013-12-01 18:19 ` [PATCH 04/11] spi: spi-sh-msiof: set hi/low Active for HW CS takasi-y 2013-12-01 18:19 ` takasi-y [not found] ` <1385921962-19843-4-git-send-email-takasi-y-nDL5PR/MsHhHfZP73Gtkiw@public.gmane.org> 2013-12-02 12:54 ` Mark Brown 2013-12-02 12:54 ` Mark Brown 2013-12-01 18:19 ` takasi-y [this message] 2013-12-01 18:19 ` [PATCH 05/11] spi: spi-sh-msiof: rx_need_dummy_tx variant takasi-y [not found] ` <1385921962-19843-5-git-send-email-takasi-y-nDL5PR/MsHhHfZP73Gtkiw@public.gmane.org> 2013-12-02 17:49 ` Mark Brown 2013-12-02 17:49 ` Mark Brown 2013-12-01 18:19 ` [PATCH 11/11] ARM: shmobile: koelsch: spidev for r2a11302 takasi-y 2013-12-01 18:19 ` takasi-y [not found] ` <1385921962-19843-11-git-send-email-takasi-y-nDL5PR/MsHhHfZP73Gtkiw@public.gmane.org> 2013-12-02 13:24 ` Mark Brown 2013-12-02 13:24 ` Mark Brown 2014-02-11 15:06 ` Geert Uytterhoeven 2014-02-11 15:06 ` Geert Uytterhoeven [not found] ` <1385921962-19843-1-git-send-email-takasi-y-nDL5PR/MsHhHfZP73Gtkiw@public.gmane.org> 2013-12-01 18:19 ` [PATCH 02/11] spi: spi-sh-msiof: round up div to fix freq calculation takasi-y 2013-12-01 18:19 ` takasi-y-nDL5PR/MsHhHfZP73Gtkiw 2013-12-02 12:48 ` Mark Brown 2013-12-02 12:48 ` Mark Brown 2013-12-01 18:19 ` [PATCH 06/11] spi: spi-sh-msiof: RMDIR1[15:0] may should be zero takasi-y 2013-12-01 18:19 ` takasi-y-nDL5PR/MsHhHfZP73Gtkiw 2013-12-01 18:19 ` [PATCH 07/11] spi: spi-sh-msiof: RSCR register may absent takasi-y 2013-12-01 18:19 ` takasi-y-nDL5PR/MsHhHfZP73Gtkiw [not found] ` <1385921962-19843-7-git-send-email-takasi-y-nDL5PR/MsHhHfZP73Gtkiw@public.gmane.org> 2014-02-12 16:06 ` Geert Uytterhoeven 2014-02-12 16:06 ` Geert Uytterhoeven [not found] ` <CAMuHMdVVC1deEQfbLzPzU08LYxf=KOtG3oL2_M4HMBGvJE+8KQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-02-12 23:50 ` Simon Horman 2014-02-12 23:50 ` Simon Horman 2013-12-01 18:19 ` [PATCH 08/11] ARM: shmobile: r8a7791: Add MSIOF clocks takasi-y 2013-12-01 18:19 ` takasi-y-nDL5PR/MsHhHfZP73Gtkiw 2013-12-01 18:19 ` [PATCH 09/11] ARM: shmobile: r8a7791: MSIOF platform device takasi-y 2013-12-01 18:19 ` takasi-y-nDL5PR/MsHhHfZP73Gtkiw 2013-12-03 10:12 ` Linus Walleij 2013-12-03 10:12 ` Linus Walleij [not found] ` <CACRpkdbvrYgRh7cK0N1HrcxkYzzu9Qw4yAoQwj4f9pEf0r1qQw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2013-12-05 3:02 ` Simon Horman 2013-12-05 3:02 ` Simon Horman [not found] ` <20131205030235.GG21443-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org> 2013-12-11 12:27 ` Linus Walleij 2013-12-11 12:27 ` Linus Walleij [not found] ` <CACRpkda=m_3Y+FcKUvAj4e1gDUuvqB4VS4bv6u-VnX4LVQQP8Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2013-12-12 0:53 ` Olof Johansson 2013-12-12 0:53 ` Olof Johansson 2013-12-01 18:19 ` [PATCH 10/11] ARM: shmobile: koelsch: pinctrl map for MSIOF0 takasi-y 2013-12-01 18:19 ` takasi-y-nDL5PR/MsHhHfZP73Gtkiw 2013-12-03 10:13 ` Linus Walleij 2013-12-03 10:13 ` Linus Walleij 2013-12-03 10:08 ` [PATCH 01/11] pinctrl: sh-pfc: r8a7791: fix msiof groups to follow GROUP Linus Walleij 2013-12-03 10:08 ` Linus Walleij 2013-12-04 1:23 ` Laurent Pinchart 2013-12-04 1:23 ` Laurent Pinchart
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=1385921962-19843-5-git-send-email-takasi-y@ops.dti.ne.jp \ --to=takasi-y@ops.dti.ne.jp \ --cc=broonie@kernel.org \ --cc=horms@verge.net.au \ --cc=linus.walleij@linaro.org \ --cc=linux-sh@vger.kernel.org \ --cc=linux-spi@vger.kernel.org \ --cc=magnus.damm@gmail.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: linkBe 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.