Re: [PATCH] sh-sci: fix transition from noflow to HW flow control

2016-08-16 Thread Baumann, Christoph (C.)
Hi Geert,
 

> Which port are you using? SCIF or HSCIF?

just SCIF


> You mean sci_set_mctrl() isn't called by the serial core after
> sci_set_termios()?
> 
> However, uart_set_termios() calls both uart_change_speed() and
> uart_{clear,set}_mctrl(), in that order?

Upon calling open() on the tty device sci_set_termios() and sci_set_mctrl() are 
called in this order.
When issuing changes (baud rate, CRTSCTS...) only sci_set_termios() gets called.
On calling close() sci_set_mctrl() and sci_shutdown() are called in this order.


> Have you tried using GPIO RTS/CTS instead of hardware-assisted
> RTS/CTS?
> Does it show the same behavior?
> When adding support for hardware-assisted RTS/CTS, I used the
> behavior of GPIO RTS/CTS as the expected behavior.

No, I haven't tried GPIO RTS/CTS so far. How would this be configured?




Regards,
Christoph


Re: [PATCH v2 3/9] mmc: tmio: Add UHS-I mode support

2016-08-16 Thread Geert Uytterhoeven
Hi Wolfram,

On Tue, Aug 16, 2016 at 9:55 PM, Wolfram Sang  wrote:
>> The first SDHI channel (ee10.sd) doesn't seem to be affected
>> by the problem.
>
> Hmm, I sadly don't have any docs about 73a4 and/or its SDHI variants.
> I'll ask around.

Forgot to add: I don't see the issue on sh73a0/kzm9g nor r8a7740/armadillo.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH v2 3/9] mmc: tmio: Add UHS-I mode support

2016-08-16 Thread Wolfram Sang

> The first SDHI channel (ee10.sd) doesn't seem to be affected
> by the problem.

Hmm, I sadly don't have any docs about 73a4 and/or its SDHI variants.
I'll ask around.



signature.asc
Description: PGP signature


Re: [PATCH v2 3/9] mmc: tmio: Add UHS-I mode support

2016-08-16 Thread Geert Uytterhoeven
Hi Wolfram,

On Fri, Apr 1, 2016 at 5:44 PM, Wolfram Sang  wrote:
> From: Wolfram Sang 
>
> Based on work by Shinobu Uehara and Ben Dooks. This adds the voltage
> switch operation needed for all UHS-I modes, but not the tuning needed
> for SDR-104 which will come later.
>
> Signed-off-by: Ben Hutchings 
> Signed-off-by: Wolfram Sang 

This patch causes a regression on r8a73a4/ape6evm, where the system feels
sluggish, and the load average is always ca. 1.
According to "top", "kworker/0:1" is consuming up to 80% of CPU time.

"echo t > /proc/sysrq-trigger" tells me:

kworker/0:1 R running  057  2 0x
Workqueue: events_freezable mmc_rescan
[] (__schedule) from []
(preempt_schedule_common+0x1c/0x2c)
[] (preempt_schedule_common) from []
(_cond_resched+0x34/0x44)
[] (_cond_resched) from []
(__mmc_start_request+0x6c/0x204)
[] (__mmc_start_request) from []
(mmc_start_request+0x104/0x118)
[] (mmc_start_request) from []
(mmc_wait_for_req+0x3c/0x14c)
[] (mmc_wait_for_req) from []
(mmc_wait_for_cmd+0x64/0x74)
[] (mmc_wait_for_cmd) from []
(mmc_io_rw_direct_host+0xbc/0x124)
[] (mmc_io_rw_direct_host) from []
(sdio_reset+0x58/0x60)
[] (sdio_reset) from [] (mmc_rescan+0x244/0x338)
[] (mmc_rescan) from [] (process_one_work+0x324/0x67c)
[] (process_one_work) from []
(worker_thread+0x2ac/0x3d4)
[] (worker_thread) from [] (kthread+0xd8/0xec)
[] (kthread) from [] (ret_from_fork+0x14/0x24)

I've bisected this to
commit 452e5eef6d311e52f657b34d999758107ec3dd4a
Author: Wolfram Sang 
Date:   Fri Apr 1 17:44:33 2016 +0200

mmc: tmio: Add UHS-I mode support

The problem goes away by:
  1. Commenting-out the assignment to .card_busy
  2. OR disabling the second SDHI channel, e.g.
   echo ee12.sd > /sys/bus/platform/drivers/sh_mobile_sdhi/unbind

The first SDHI channel (ee10.sd) doesn't seem to be affected
by the problem.

I've added some debug code to dev_warn_ratelimited() the status value.
This shows the SDHI channel keeps on reporting busy:

# dmesg | grep -E "(tmio|sdhi)" | uniq -c
  1 iommu: Adding device regulator-sdhi0 to group 0
  1 iommu: Removing device regulator-sdhi0 from group 0
  1 sh_mobile_sdhi ee10.sd: could not find pctldev for node
/pfc@e605/sd0, deferring probe
  1 sh_mobile_sdhi ee12.sd: could not find pctldev for node
/pfc@e605/sd1, deferring probe
  1 sh_mobile_sdhi ee10.sd: adding to PM domain a3sp
  1 _host->start_signal_voltage_switch =
sh_mobile_sdhi_start_signal_voltage_switch
  1 sh_mobile_sdhi ee10.sd: mmc0 base at 0xee10 max clock
rate 88 MHz
  1 sh_mobile_sdhi ee12.sd: adding to PM domain a3sp
  1 _host->start_signal_voltage_switch =
sh_mobile_sdhi_start_signal_voltage_switch
  1 sh_mobile_sdhi ee10.sd: CTL_STATUS2 = 0x20800600
  1 sh_mobile_sdhi ee10.sd: CTL_STATUS2 = 0x20800400
  1 sh_mobile_sdhi ee12.sd: mmc1 base at 0xee12 max clock
rate 12 MHz
  8 sh_mobile_sdhi ee12.sd: CTL_STATUS2 = 0x2600
  1 tmio_mmc_card_busy: 3509 callbacks suppressed
 10 sh_mobile_sdhi ee12.sd: CTL_STATUS2 = 0x2400
  1 tmio_mmc_card_busy: 2653 callbacks suppressed
 10 sh_mobile_sdhi ee12.sd: CTL_STATUS2 = 0x2400
  1 tmio_mmc_card_busy: 2028 callbacks suppressed
 10 sh_mobile_sdhi ee12.sd: CTL_STATUS2 = 0x2400
  1 tmio_mmc_card_busy: 2888 callbacks suppressed
 10 sh_mobile_sdhi ee12.sd: CTL_STATUS2 = 0x2400

Note that the reported values are the ones for a current tree.
On commit 452e5eef6d311e52, the values are 0x31d2080, 0x3002080,
0x31d2000, and 0x3182000.

As you can see ee10.sd behaves normal.

> ---
>  drivers/mmc/host/tmio_mmc.h |  2 ++
>  drivers/mmc/host/tmio_mmc_pio.c | 12 +++-
>  include/linux/mmc/tmio.h|  2 ++
>  3 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
> index b44b5890290622..b1819c74965b47 100644
> --- a/drivers/mmc/host/tmio_mmc.h
> +++ b/drivers/mmc/host/tmio_mmc.h
> @@ -101,6 +101,8 @@ struct tmio_mmc_host {
> void (*clk_disable)(struct tmio_mmc_host *host);
> int (*multi_io_quirk)(struct mmc_card *card,
>   unsigned int direction, int blk_size);
> +   int (*start_signal_voltage_switch)(struct mmc_host *mmc,
> +  struct mmc_ios *ios);
>  };
>
>  struct tmio_mmc_host *tmio_mmc_host_alloc(struct platform_device *pdev);
> diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c
> index ae81b34f17a5a5..53e5ba5a21914c 100644
> --- a/drivers/mmc/host/tmio_mmc_pio.c
> +++ b/drivers/mmc/host/tmio_mmc_pio.c
> @@ -1012,12 +1012,20 @@ static int tmio_multi_io_quirk(struct mmc_card *card,
> return blk_size;
>  }
>
> -static const struct mmc_host_ops tmio_mmc_ops = {
> +static int tmio_mmc_card_busy(struct mmc_host *mmc)
> +{
> +

Re: [PATCH v2 3/4] arm64: dts: r8a7796: Add pinctrl device node

2016-08-16 Thread Sergei Shtylyov

On 08/16/2016 05:47 PM, Ulrich Hecht wrote:


From: Takeshi Kihara 

This patch adds pinctrl device node for R8A7796 SoC.

Signed-off-by: Takeshi Kihara 
Reviewed-by: Geert Uytterhoeven 
---
 arch/arm64/boot/dts/renesas/r8a7796.dtsi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi 
b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index 1edf824..faea5a9 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -107,6 +107,11 @@
status = "disabled";
};

+   pfc: pfc@e606 {


   The node names should be generic to comply with ePAPR, I'd use 
"pin-controller@...".


[...]

MBR, Sergei



Re: [PATCH v2 4/4] arm64: dts: r8a7796: salvator: add serial console pins

2016-08-16 Thread Geert Uytterhoeven
Hi Ulrich,

On Tue, Aug 16, 2016 at 4:47 PM, Ulrich Hecht
 wrote:
> Adds pin control for SCIF2.
>
> Signed-off-by: Ulrich Hecht 
> ---
>  arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 9 +
>  1 file changed, 9 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts 
> b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
> index e72be38..d4a774c 100644
> --- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
> +++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
> @@ -31,11 +31,20 @@
> };
>  };
>
> +&pfc {
> +   scif2_pins: scif2 {
> +   groups = "scif2_data_a", "scif2_clk";
> +   function = "scif2";
> +   };
> +};

I think you misunderstood my comment: I didn't mean to add "scif2_clk" (which
is not used on Salvator-X), but "scif_clk", which is the external clock for all
(H)SCIF instances, provided by 14.7456 MHz crystal X1  on Salvator-X.
This is used to program the BRG in SCIF2 to exactly 115200 bps.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH 0/2] ARM: dts: r8a7790/r8a7791: Remove obsolete vsp1 properties

2016-08-16 Thread Laurent Pinchart
Hi Geert,

On Tuesday 16 Aug 2016 16:56:30 Geert Uytterhoeven wrote:
>   Hi Simon, Magnus, Laurent,
> 
> This patch series removes from the R-Car H2 and M2-W DT source files the
> obsolete DT properties to identify the exact VSP device instance
> features, which are no longer needed nor used since commit
> 5aa2eb3c86d4fd16 ("[media] v4l: vsp1: Configure device based on IP
> version").

I was about to submit the same patches :-)

Reviewed-by: Laurent Pinchart 

> Geert Uytterhoeven (2):
>   ARM: dts: r8a7790: Remove obsolete vsp1 properties
>   ARM: dts: r8a7791: Remove obsolete vsp1 properties
> 
>  arch/arm/boot/dts/r8a7790.dtsi | 23 ---
>  arch/arm/boot/dts/r8a7791.dtsi | 18 --
>  2 files changed, 41 deletions(-)

-- 
Regards,

Laurent Pinchart



[PATCH 2/2] ARM: dts: r8a7791: Remove obsolete vsp1 properties

2016-08-16 Thread Geert Uytterhoeven
As of commit 5aa2eb3c86d4fd16 ("[media] v4l: vsp1: Configure device
based on IP version"), the DT properties to identify the exact VSP
device instance features are no longer used. Hence remove them.

Signed-off-by: Geert Uytterhoeven 
---
 arch/arm/boot/dts/r8a7791.dtsi | 18 --
 1 file changed, 18 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 8f0086bbd96bb27a..162b55c665a3519e 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -983,12 +983,6 @@
interrupts = ;
clocks = <&mstp1_clks R8A7791_CLK_VSP1_S>;
power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
-
-   renesas,has-lut;
-   renesas,has-sru;
-   renesas,#rpf = <5>;
-   renesas,#uds = <3>;
-   renesas,#wpf = <4>;
};
 
vsp1@fe93 {
@@ -997,12 +991,6 @@
interrupts = ;
clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU0>;
power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
-
-   renesas,has-lif;
-   renesas,has-lut;
-   renesas,#rpf = <4>;
-   renesas,#uds = <1>;
-   renesas,#wpf = <4>;
};
 
vsp1@fe938000 {
@@ -1011,12 +999,6 @@
interrupts = ;
clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU1>;
power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
-
-   renesas,has-lif;
-   renesas,has-lut;
-   renesas,#rpf = <4>;
-   renesas,#uds = <1>;
-   renesas,#wpf = <4>;
};
 
du: display@feb0 {
-- 
1.9.1



[PATCH 0/2] ARM: dts: r8a7790/r8a7791: Remove obsolete vsp1 properties

2016-08-16 Thread Geert Uytterhoeven
Hi Simon, Magnus, Laurent,

This patch series removes from the R-Car H2 and M2-W DT source files the
obsolete DT properties to identify the exact VSP device instance
features, which are no longer needed nor used since commit
5aa2eb3c86d4fd16 ("[media] v4l: vsp1: Configure device based on IP
version").

Geert Uytterhoeven (2):
  ARM: dts: r8a7790: Remove obsolete vsp1 properties
  ARM: dts: r8a7791: Remove obsolete vsp1 properties

 arch/arm/boot/dts/r8a7790.dtsi | 23 ---
 arch/arm/boot/dts/r8a7791.dtsi | 18 --
 2 files changed, 41 deletions(-)

-- 
1.9.1

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


[PATCH 1/2] ARM: dts: r8a7790: Remove obsolete vsp1 properties

2016-08-16 Thread Geert Uytterhoeven
As of commit 5aa2eb3c86d4fd16 ("[media] v4l: vsp1: Configure device
based on IP version"), the DT properties to identify the exact VSP
device instance features are no longer used. Hence remove them.

Signed-off-by: Geert Uytterhoeven 
---
 arch/arm/boot/dts/r8a7790.dtsi | 23 ---
 1 file changed, 23 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index d18558f211022826..351fcc2f87df6b28 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -944,11 +944,6 @@
interrupts = ;
clocks = <&mstp1_clks R8A7790_CLK_VSP1_R>;
power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-
-   renesas,has-sru;
-   renesas,#rpf = <5>;
-   renesas,#uds = <1>;
-   renesas,#wpf = <4>;
};
 
vsp1@fe928000 {
@@ -957,12 +952,6 @@
interrupts = ;
clocks = <&mstp1_clks R8A7790_CLK_VSP1_S>;
power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-
-   renesas,has-lut;
-   renesas,has-sru;
-   renesas,#rpf = <5>;
-   renesas,#uds = <3>;
-   renesas,#wpf = <4>;
};
 
vsp1@fe93 {
@@ -971,12 +960,6 @@
interrupts = ;
clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU0>;
power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-
-   renesas,has-lif;
-   renesas,has-lut;
-   renesas,#rpf = <4>;
-   renesas,#uds = <1>;
-   renesas,#wpf = <4>;
};
 
vsp1@fe938000 {
@@ -985,12 +968,6 @@
interrupts = ;
clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU1>;
power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-
-   renesas,has-lif;
-   renesas,has-lut;
-   renesas,#rpf = <4>;
-   renesas,#uds = <1>;
-   renesas,#wpf = <4>;
};
 
du: display@feb0 {
-- 
1.9.1



[PATCH v2 1/4] pinctrl: sh-pfc: Initial R8A7796 PFC support

2016-08-16 Thread Ulrich Hecht
From: Takeshi Kihara 

This patch adds initial pinctrl driver to support for the R8A7796 SoC.

Signed-off-by: Takeshi Kihara 
[uli: rebased on top of renesas-drivers]
Signed-off-by: Ulrich Hecht 
---
 .../bindings/pinctrl/renesas,pfc-pinctrl.txt   |1 +
 drivers/pinctrl/sh-pfc/Kconfig |5 +
 drivers/pinctrl/sh-pfc/Makefile|1 +
 drivers/pinctrl/sh-pfc/core.c  |6 +
 drivers/pinctrl/sh-pfc/pfc-r8a7796.c   | 2072 
 drivers/pinctrl/sh-pfc/sh_pfc.h|1 +
 6 files changed, 2086 insertions(+)
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-r8a7796.c

diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt 
b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt
index 48db27c..13df949 100644
--- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt
@@ -21,6 +21,7 @@ Required Properties:
 - "renesas,pfc-r8a7793": for R8A7793 (R-Car M2-N) compatible 
pin-controller.
 - "renesas,pfc-r8a7794": for R8A7794 (R-Car E2) compatible pin-controller.
 - "renesas,pfc-r8a7795": for R8A7795 (R-Car H3) compatible pin-controller.
+- "renesas,pfc-r8a7796": for R8A7796 (R-Car M3-W) compatible 
pin-controller.
 - "renesas,pfc-sh73a0": for SH73A0 (SH-Mobile AG5) compatible 
pin-controller.
 
   - reg: Base address and length of each memory resource used by the pin
diff --git a/drivers/pinctrl/sh-pfc/Kconfig b/drivers/pinctrl/sh-pfc/Kconfig
index 8858c3e..07eca54 100644
--- a/drivers/pinctrl/sh-pfc/Kconfig
+++ b/drivers/pinctrl/sh-pfc/Kconfig
@@ -74,6 +74,11 @@ config PINCTRL_PFC_R8A7795
depends on ARCH_R8A7795
select PINCTRL_SH_PFC
 
+config PINCTRL_PFC_R8A7796
+def_bool y
+depends on ARCH_R8A7796
+select PINCTRL_SH_PFC
+
 config PINCTRL_PFC_SH7203
def_bool y
depends on CPU_SUBTYPE_SH7203
diff --git a/drivers/pinctrl/sh-pfc/Makefile b/drivers/pinctrl/sh-pfc/Makefile
index ffe7eb7..2dda8c6 100644
--- a/drivers/pinctrl/sh-pfc/Makefile
+++ b/drivers/pinctrl/sh-pfc/Makefile
@@ -11,6 +11,7 @@ obj-$(CONFIG_PINCTRL_PFC_R8A7792) += pfc-r8a7792.o
 obj-$(CONFIG_PINCTRL_PFC_R8A7793)  += pfc-r8a7791.o
 obj-$(CONFIG_PINCTRL_PFC_R8A7794)  += pfc-r8a7794.o
 obj-$(CONFIG_PINCTRL_PFC_R8A7795)  += pfc-r8a7795.o
+obj-$(CONFIG_PINCTRL_PFC_R8A7796)  += pfc-r8a7796.o
 obj-$(CONFIG_PINCTRL_PFC_SH7203)   += pfc-sh7203.o
 obj-$(CONFIG_PINCTRL_PFC_SH7264)   += pfc-sh7264.o
 obj-$(CONFIG_PINCTRL_PFC_SH7269)   += pfc-sh7269.o
diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c
index d74169e..f3a8897 100644
--- a/drivers/pinctrl/sh-pfc/core.c
+++ b/drivers/pinctrl/sh-pfc/core.c
@@ -518,6 +518,12 @@ static const struct of_device_id sh_pfc_of_table[] = {
.data = &r8a7795_pinmux_info,
},
 #endif
+#ifdef CONFIG_PINCTRL_PFC_R8A7796
+   {
+   .compatible = "renesas,pfc-r8a7796",
+   .data = &r8a7796_pinmux_info,
+   },
+#endif
 #ifdef CONFIG_PINCTRL_PFC_SH73A0
{
.compatible = "renesas,pfc-sh73a0",
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7796.c 
b/drivers/pinctrl/sh-pfc/pfc-r8a7796.c
new file mode 100644
index 000..0d14ca9
--- /dev/null
+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7796.c
@@ -0,0 +1,2072 @@
+/*
+ * R8A7796 processor support - PFC hardware block.
+ *
+ * Copyright (C) 2016 Renesas Electronics Corp.
+ *
+ * This file is based on the drivers/pinctrl/sh-pfc/pfc-r8a7795.c
+ *
+ * R-Car Gen3 processor support - PFC hardware block.
+ *
+ * Copyright (C) 2015  Renesas Electronics Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ */
+
+#include 
+
+#include "core.h"
+#include "sh_pfc.h"
+
+#define CPU_ALL_PORT(fn, sfx)  \
+   PORT_GP_16(0, fn, sfx), \
+   PORT_GP_29(1, fn, sfx), \
+   PORT_GP_15(2, fn, sfx), \
+   PORT_GP_16(3, fn, sfx), \
+   PORT_GP_18(4, fn, sfx), \
+   PORT_GP_26(5, fn, sfx), \
+   PORT_GP_32(6, fn, sfx), \
+   PORT_GP_4(7, fn, sfx)
+/*
+ * F_() : just information
+ * FM() : macro for FN_xxx / xxx_MARK
+ */
+
+/* GPSR0 */
+#define GPSR0_15   F_(D15, IP7_11_8)
+#define GPSR0_14   F_(D14, IP7_7_4)
+#define GPSR0_13   F_(D13, IP7_3_0)
+#define GPSR0_12   F_(D12, IP6_31_28)
+#define GPSR0_11   F_(

[PATCH v2 4/4] arm64: dts: r8a7796: salvator: add serial console pins

2016-08-16 Thread Ulrich Hecht
Adds pin control for SCIF2.

Signed-off-by: Ulrich Hecht 
---
 arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 9 +
 1 file changed, 9 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts 
b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
index e72be38..d4a774c 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
@@ -31,11 +31,20 @@
};
 };
 
+&pfc {
+   scif2_pins: scif2 {
+   groups = "scif2_data_a", "scif2_clk";
+   function = "scif2";
+   };
+};
+
 &extal_clk {
clock-frequency = <1666>;
 };
 
 &scif2 {
+   pinctrl-0 = <&scif2_pins>;
+   pinctrl-names = "default";
status = "okay";
 };
 
-- 
2.7.4



[PATCH v2 0/4] Initial r8a7796 PFC support

2016-08-16 Thread Ulrich Hecht
Hi!

This implements a minimal set of PFC functionality for the M3 and sits on
top of renesas-drivers-2016-08-09-v4.8-rc1.  It includes the SCIF pin groups
and enables pin control for the serial console (SCIF2) on the Salvator-X
board.

This revision addresses the issues found in Geert's review. See below for
details.

CU
Uli


Changes since v1:
- dts: assign scif2_clk pin to scif2
- bindings: "M3" -> "M3-W"
- pfc-r8a7796.c: fix whitespace inconsistencies
- pfc-r8a7796.c: fix 0xe6060248 register name ("IPSR17" -> "IPSR18")


Takeshi Kihara (3):
  pinctrl: sh-pfc: Initial R8A7796 PFC support
  pinctrl: sh-pfc: r8a7796: Add SCIF pins, groups and functions
  arm64: dts: r8a7796: Add pinctrl device node

Ulrich Hecht (1):
  arm64: dts: r8a7796: salvator: add serial console pins

 .../bindings/pinctrl/renesas,pfc-pinctrl.txt   |1 +
 arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts |9 +
 arch/arm64/boot/dts/renesas/r8a7796.dtsi   |5 +
 drivers/pinctrl/sh-pfc/Kconfig |5 +
 drivers/pinctrl/sh-pfc/Makefile|1 +
 drivers/pinctrl/sh-pfc/core.c  |6 +
 drivers/pinctrl/sh-pfc/pfc-r8a7796.c   | 2348 
 drivers/pinctrl/sh-pfc/sh_pfc.h|1 +
 8 files changed, 2376 insertions(+)
 create mode 100644 drivers/pinctrl/sh-pfc/pfc-r8a7796.c

-- 
2.7.4



[PATCH v2 3/4] arm64: dts: r8a7796: Add pinctrl device node

2016-08-16 Thread Ulrich Hecht
From: Takeshi Kihara 

This patch adds pinctrl device node for R8A7796 SoC.

Signed-off-by: Takeshi Kihara 
Reviewed-by: Geert Uytterhoeven 
---
 arch/arm64/boot/dts/renesas/r8a7796.dtsi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi 
b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index 1edf824..faea5a9 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -107,6 +107,11 @@
status = "disabled";
};
 
+   pfc: pfc@e606 {
+   compatible = "renesas,pfc-r8a7796";
+   reg = <0 0xe606 0 0x50c>;
+   };
+
cpg: clock-controller@e615 {
compatible = "renesas,r8a7796-cpg-mssr";
reg = <0 0xe615 0 0x1000>;
-- 
2.7.4



[PATCH v2 2/4] pinctrl: sh-pfc: r8a7796: Add SCIF pins, groups and functions

2016-08-16 Thread Ulrich Hecht
From: Takeshi Kihara 

This patch adds SCIF{0,1,2,3,4,5} pins, groups and functions to R8A7796
SoC.

Signed-off-by: Takeshi Kihara 
Reviewed-by: Geert Uytterhoeven 
---
 drivers/pinctrl/sh-pfc/pfc-r8a7796.c | 276 +++
 1 file changed, 276 insertions(+)

diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7796.c 
b/drivers/pinctrl/sh-pfc/pfc-r8a7796.c
index 0d14ca9..2babc2c 100644
--- a/drivers/pinctrl/sh-pfc/pfc-r8a7796.c
+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7796.c
@@ -1486,10 +1486,286 @@ static const struct sh_pfc_pin pinmux_pins[] = {
PINMUX_GPIO_GP_ALL(),
 };
 
+/* - SCIF0 -- 
*/
+static const unsigned int scif0_data_pins[] = {
+   /* RX, TX */
+   RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2),
+};
+static const unsigned int scif0_data_mux[] = {
+   RX0_MARK, TX0_MARK,
+};
+static const unsigned int scif0_clk_pins[] = {
+   /* SCK */
+   RCAR_GP_PIN(5, 0),
+};
+static const unsigned int scif0_clk_mux[] = {
+   SCK0_MARK,
+};
+static const unsigned int scif0_ctrl_pins[] = {
+   /* RTS, CTS */
+   RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 3),
+};
+static const unsigned int scif0_ctrl_mux[] = {
+   RTS0_N_TANS_MARK, CTS0_N_MARK,
+};
+/* - SCIF1 -- 
*/
+static const unsigned int scif1_data_a_pins[] = {
+   /* RX, TX */
+   RCAR_GP_PIN(5, 5), RCAR_GP_PIN(5, 6),
+};
+static const unsigned int scif1_data_a_mux[] = {
+   RX1_A_MARK, TX1_A_MARK,
+};
+static const unsigned int scif1_clk_pins[] = {
+   /* SCK */
+   RCAR_GP_PIN(6, 21),
+};
+static const unsigned int scif1_clk_mux[] = {
+   SCK1_MARK,
+};
+static const unsigned int scif1_ctrl_pins[] = {
+   /* RTS, CTS */
+   RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 7),
+};
+static const unsigned int scif1_ctrl_mux[] = {
+   RTS1_N_TANS_MARK, CTS1_N_MARK,
+};
+
+static const unsigned int scif1_data_b_pins[] = {
+   /* RX, TX */
+   RCAR_GP_PIN(5, 24), RCAR_GP_PIN(5, 25),
+};
+static const unsigned int scif1_data_b_mux[] = {
+   RX1_B_MARK, TX1_B_MARK,
+};
+/* - SCIF2 -- 
*/
+static const unsigned int scif2_data_a_pins[] = {
+   /* RX, TX */
+   RCAR_GP_PIN(5, 11), RCAR_GP_PIN(5, 10),
+};
+static const unsigned int scif2_data_a_mux[] = {
+   RX2_A_MARK, TX2_A_MARK,
+};
+static const unsigned int scif2_clk_pins[] = {
+   /* SCK */
+   RCAR_GP_PIN(5, 9),
+};
+static const unsigned int scif2_clk_mux[] = {
+   SCK2_MARK,
+};
+static const unsigned int scif2_data_b_pins[] = {
+   /* RX, TX */
+   RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 16),
+};
+static const unsigned int scif2_data_b_mux[] = {
+   RX2_B_MARK, TX2_B_MARK,
+};
+/* - SCIF3 -- 
*/
+static const unsigned int scif3_data_a_pins[] = {
+   /* RX, TX */
+   RCAR_GP_PIN(1, 23), RCAR_GP_PIN(1, 24),
+};
+static const unsigned int scif3_data_a_mux[] = {
+   RX3_A_MARK, TX3_A_MARK,
+};
+static const unsigned int scif3_clk_pins[] = {
+   /* SCK */
+   RCAR_GP_PIN(1, 22),
+};
+static const unsigned int scif3_clk_mux[] = {
+   SCK3_MARK,
+};
+static const unsigned int scif3_ctrl_pins[] = {
+   /* RTS, CTS */
+   RCAR_GP_PIN(1, 26), RCAR_GP_PIN(1, 25),
+};
+static const unsigned int scif3_ctrl_mux[] = {
+   RTS3_N_TANS_MARK, CTS3_N_MARK,
+};
+static const unsigned int scif3_data_b_pins[] = {
+   /* RX, TX */
+   RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 11),
+};
+static const unsigned int scif3_data_b_mux[] = {
+   RX3_B_MARK, TX3_B_MARK,
+};
+/* - SCIF4 -- 
*/
+static const unsigned int scif4_data_a_pins[] = {
+   /* RX, TX */
+   RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 12),
+};
+static const unsigned int scif4_data_a_mux[] = {
+   RX4_A_MARK, TX4_A_MARK,
+};
+static const unsigned int scif4_clk_a_pins[] = {
+   /* SCK */
+   RCAR_GP_PIN(2, 10),
+};
+static const unsigned int scif4_clk_a_mux[] = {
+   SCK4_A_MARK,
+};
+static const unsigned int scif4_ctrl_a_pins[] = {
+   /* RTS, CTS */
+   RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 13),
+};
+static const unsigned int scif4_ctrl_a_mux[] = {
+   RTS4_N_TANS_A_MARK, CTS4_N_A_MARK,
+};
+static const unsigned int scif4_data_b_pins[] = {
+   /* RX, TX */
+   RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
+};
+static const unsigned int scif4_data_b_mux[] = {
+   RX4_B_MARK, TX4_B_MARK,
+};
+static const unsigned int scif4_clk_b_pins[] = {
+   /* SCK */
+   RCAR_GP_PIN(1, 5),
+};
+static const unsigned int scif4_clk_b_mux[] = {
+   SCK4_B_MARK,
+};
+static const unsigned int scif4_ctrl_b_pins[] = {
+   /* RTS, CTS */
+   RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 9),
+};
+static const unsigned int scif4_ctrl_b_mux[] = {
+   RTS4_N_TANS_B_MARK, CTS4_N_B_MARK,
+};
+st

[renesas-drivers:topic/renesas-overlays 18/87] (.text+0x21): multiple definition of `of_changeset_add_property_copy'

2016-08-16 Thread kbuild test robot
tree:   
https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git 
topic/renesas-overlays
head:   1bebb616e30100a487cc295752fc575bbb35ef5e
commit: 4787d76c83e84701506d2df7f08fb194dd7cf1c4 [18/87] of: changesets: 
Introduce changeset helper methods
config: i386-tinyconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
git checkout 4787d76c83e84701506d2df7f08fb194dd7cf1c4
# save the attached .config to linux build tree
make ARCH=i386 

Note: the renesas-drivers/topic/renesas-overlays HEAD 
1bebb616e30100a487cc295752fc575bbb35ef5e builds fine.
  It only hurts bisectibility.

All errors (new ones prefixed by >>):

   init/mounts.o: In function `of_changeset_add_property_copy':
>> (.text+0x21): multiple definition of `of_changeset_add_property_copy'
   init/main.o:main.c:(.text+0x19): first defined here
   init/mounts.o: In function `of_changeset_add_property_string':
>> (.text+0x27): multiple definition of `of_changeset_add_property_string'
   init/main.o:main.c:(.text+0x1f): first defined here

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: Binary data


[PATCH] ARM: debug-ll: Add support for r8a7992

2016-08-16 Thread Geert Uytterhoeven
Enable low-level debugging support for R-Car V2H (r8a7792).
V2H uses SCIF0 for the debug console, like most other R-Car Gen2 SoCs.

Signed-off-by: Geert Uytterhoeven 
---
 arch/arm/Kconfig.debug | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index a9693b6987a6e41c..88440f63c31e434b 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -861,12 +861,12 @@ choice
  via SCIF2 on Renesas R-Car H1 (R8A7779).
 
config DEBUG_RCAR_GEN2_SCIF0
-   bool "Kernel low-level debugging messages via SCIF0 on 
R8A7790/R8A7791/R8A7793"
-   depends on ARCH_R8A7790 || ARCH_R8A7791 || ARCH_R8A7793
+   bool "Kernel low-level debugging messages via SCIF0 on 
R8A7790/R8A7791/R8A7792/R8A7793"
+   depends on ARCH_R8A7790 || ARCH_R8A7791 || ARCH_R8A7792 || 
ARCH_R8A7793
help
  Say Y here if you want kernel low-level debugging support
- via SCIF0 on Renesas R-Car H2 (R8A7790), M2-W (R8A7791), or
- M2-N (R8A7793).
+ via SCIF0 on Renesas R-Car H2 (R8A7790), M2-W (R8A7791), V2H
+ (R8A7792), or M2-N (R8A7793).
 
config DEBUG_RCAR_GEN2_SCIF2
bool "Kernel low-level debugging messages via SCIF2 on R8A7794"
-- 
1.9.1



[renesas-drivers:topic/gen3-latest 911/1492] include/linux/module.h:213:27: error: '__mod_of__adv7482_of_ids_device_table' aliased to undefined symbol 'adv7482_of_ids'

2016-08-16 Thread kbuild test robot
tree:   
https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git 
topic/gen3-latest
head:   88f41090789e9cdfe3715fb77bd9542b75536d60
commit: c585bda5a818d6c75430e57587c7e529395ddfbf [911/1492] [media] i2c: 
adv7482: add adv7482 driver
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
git checkout c585bda5a818d6c75430e57587c7e529395ddfbf
# save the attached .config to linux build tree
make ARCH=i386 

All error/warnings (new ones prefixed by >>):

   In file included from drivers/media/i2c/adv7482.c:15:0:
   drivers/media/i2c/adv7482.c:1368:25: error: 'adv7482_of_ids' undeclared here 
(not in a function)
MODULE_DEVICE_TABLE(of, adv7482_of_ids);
^
   include/linux/module.h:213:21: note: in definition of macro 
'MODULE_DEVICE_TABLE'
extern const typeof(name) __mod_##type##__##name##_device_table  \
^~~~
>> include/linux/module.h:213:27: error: 
>> '__mod_of__adv7482_of_ids_device_table' aliased to undefined symbol 
>> 'adv7482_of_ids'
extern const typeof(name) __mod_##type##__##name##_device_table  \
  ^
>> drivers/media/i2c/adv7482.c:1368:1: note: in expansion of macro 
>> 'MODULE_DEVICE_TABLE'
MODULE_DEVICE_TABLE(of, adv7482_of_ids);
^~~
   drivers/media/i2c/adv7482.c:807:12: warning: 'adv7482_query_dv_timings' 
defined but not used [-Wunused-function]
static int adv7482_query_dv_timings(struct v4l2_subdev *sd,
   ^~~~
   drivers/media/i2c/adv7482.c:795:12: warning: 'adv7482_g_dv_timings' defined 
but not used [-Wunused-function]
static int adv7482_g_dv_timings(struct v4l2_subdev *sd,
   ^~~~
   drivers/media/i2c/adv7482.c:761:12: warning: 'adv7482_s_dv_timings' defined 
but not used [-Wunused-function]
static int adv7482_s_dv_timings(struct v4l2_subdev *sd,
   ^~~~

vim +213 include/linux/module.h

^1da177e Linus Torvalds  2005-04-16  207  /* What your module does. */
^1da177e Linus Torvalds  2005-04-16  208  #define 
MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
^1da177e Linus Torvalds  2005-04-16  209  
cff26a51 Rusty Russell   2014-02-03  210  #ifdef MODULE
cff26a51 Rusty Russell   2014-02-03  211  /* Creates an alias so file2alias.c 
can find device table. */
^1da177e Linus Torvalds  2005-04-16  212  #define MODULE_DEVICE_TABLE(type, 
name)   \
6301939d Andrey Ryabinin 2015-02-13 @213  extern const typeof(name) 
__mod_##type##__##name##_device_table   \
cff26a51 Rusty Russell   2014-02-03  214__attribute__ ((unused, 
alias(__stringify(name
cff26a51 Rusty Russell   2014-02-03  215  #else  /* !MODULE */
cff26a51 Rusty Russell   2014-02-03  216  #define MODULE_DEVICE_TABLE(type, 
name)

:: The code at line 213 was first introduced by commit
:: 6301939d97d079f0d3dbe71e750f4daf5d39fc33 module: fix types of device 
tables aliases

:: TO: Andrey Ryabinin 
:: CC: Linus Torvalds 

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: Binary data


renesas-drivers-2016-08-16-v4.8-rc2

2016-08-16 Thread Geert Uytterhoeven
I have pushed renesas-drivers-2016-08-16-v4.8-rc2 to
https://git.kernel.org/cgit/linux/kernel/git/geert/renesas-drivers.git

This tree is meant to ease development of platform support and drivers
for Renesas ARM SoCs. It is created by merging (a) the for-next branches
of various subsystem trees and (b) branches with driver code submitted
or planned for submission to maintainers into the development branch of
Simon Horman's renesas.git tree.

Today's version is based on renesas-devel-20160815-v4.8-rc2.

Included branches with driver code:
  - clk-renesas-for-v4.9
  - sh-pfc-for-v4.9
  - topic/r8a7796-pfc-v1-rebased3
  - topic/ipmmu-multi-arch-v4
  - topic/r8a7795-ipmmu-v2-rebased1
  - topic/r8a7796-ipmmu-v1-rebased1
  - topic/salvator-x-ipmmu-rfc-v3-rebased4
  - topic/spi-slave-v1-rebased1
  - git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git
  - topic/sdr104-v4
  - topic/i2c-demux-v3-rebased3
  - topic/sdhi-gen3-dma-v3-rebased2
  - topic/pretimeout-v1-rebased1
  - topic/h3-pfc-set-voltage-v1-rebased2~1
  - https://git.ragnatech.se/linux
  - for-renesas-drivers
  - topic/fcpf-v1-rebased7
  - topic/fdp1-v2-rebased2

Included fixes:
  - [media] fdp1: vb2_queue dev conversion

Included subsystem trees:
  - git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git#linux-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git#clk-next
  - 
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git#for-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git#for-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git#for-next
  - git://git.infradead.org/users/dedekind/l2-mtd-2.6.git#master
  - git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git#master
  - git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git#tty-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git#i2c/for-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git#for-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git#master
  - git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git#usb-next
  - git://people.freedesktop.org/~airlied/linux#drm-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git#next
  - git://linuxtv.org/mchehab/media-next.git#master
  - git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git#mmc-next
  - git://git.linaro.org/people/ulf.hansson/mmc.git#next
  - 
git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm.git#for-next
  - git://git.linaro.org/people/daniel.lezcano/linux.git#clockevents/next
  - git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git#testing/next
  - git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine.git#next
  - git://git.infradead.org/users/vkoul/slave-dma.git#next
  - 
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git#staging-next
  - git://git.armlinux.org.uk/~rmk/linux-arm.git#for-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git#next
  - git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git#for-next
  - git://git.infradead.org/users/jcooper/linux.git#irqchip/for-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git#for-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git#for-next
  - git://git.infradead.org/battery-2.6.git#master
  - git://www.linux-watchdog.org/linux-watchdog-next.git#master
  - git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git#for-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git#for-next
  - git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git#for-next/core
  - git://anongit.freedesktop.org/drm-intel#topic/drm-misc
  - git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git#next
  - git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git#next
  - 
git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git#next

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH] sh-sci: fix transition from noflow to HW flow control

2016-08-16 Thread Baumann, Christoph (C.)
Hi Geert,

> > On calling close() sci_set_mctrl() and sci_shutdown() are called
> in this order.
> 
> OK, so it works on subsequent uses as the flag is kept in .c_cflag?

yes, indeed. If you close the port and open it again, the settings are correct 
and communication works.
Unfortunately e.g. hciattach opens the port, sets it to some defaults (115200, 
noflow) and then evaluates the command line values. This way the connection 
always fails if you specify flow control.


> > No, I haven't tried GPIO RTS/CTS so far. How would this be
> configured?
> 
> In DT, instead of specifying "uart-has-rtscts" and pinctrl for the
> "ctrl" group, you specify "rts-gpios" and "cts-gpios".

Thanks, I will have a look.




Regards,
Christoph


Re: [PATCH] sh-sci: fix transition from noflow to HW flow control

2016-08-16 Thread Geert Uytterhoeven
Hi Christoph,

On Tue, Aug 16, 2016 at 11:36 AM, Baumann, Christoph (C.)
 wrote:
>> Which port are you using? SCIF or HSCIF?
>
> just SCIF
>
>> You mean sci_set_mctrl() isn't called by the serial core after
>> sci_set_termios()?
>>
>> However, uart_set_termios() calls both uart_change_speed() and
>> uart_{clear,set}_mctrl(), in that order?
>
> Upon calling open() on the tty device sci_set_termios() and sci_set_mctrl() 
> are called in this order.
> When issuing changes (baud rate, CRTSCTS...) only sci_set_termios() gets 
> called.
> On calling close() sci_set_mctrl() and sci_shutdown() are called in this 
> order.

OK, so it works on subsequent uses as the flag is kept in .c_cflag?

>> Have you tried using GPIO RTS/CTS instead of hardware-assisted
>> RTS/CTS?
>> Does it show the same behavior?
>> When adding support for hardware-assisted RTS/CTS, I used the
>> behavior of GPIO RTS/CTS as the expected behavior.
>
> No, I haven't tried GPIO RTS/CTS so far. How would this be configured?

In DT, instead of specifying "uart-has-rtscts" and pinctrl for the "ctrl" group,
you specify "rts-gpios" and "cts-gpios".

Compare e.g. the following two commits in
https://git.kernel.org/cgit/linux/kernel/git/geert/renesas-drivers.git/log/?h=topic/renesas-overlays:
https://git.kernel.org/cgit/linux/kernel/git/geert/renesas-drivers.git/commit/?h=topic/renesas-overlays&id=58a6b5f63108db2fd88b869c5de13ff43789f0ca
https://git.kernel.org/cgit/linux/kernel/git/geert/renesas-drivers.git/commit/?h=topic/renesas-overlays&id=a071804359e8aa631954461f9af65ac72621ca81

The first commit uses HSCIF1 with GPIO RTS/CTS, the second with
hardware-assisted RTS/CTS.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH] pinctrl: sh-pfc: r8a7795: Add DU support

2016-08-16 Thread Geert Uytterhoeven
On Fri, Aug 12, 2016 at 11:14 AM, Laurent Pinchart
 wrote:
> Only the DU parallel RGB output signals are included, HDMI and TCON pins
> will be added in separate groups.
>
> Signed-off-by: Laurent Pinchart 

Reviewed-by: Geert Uytterhoeven 

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH] arm64: dts: renesas: salvator-x: Configure pins for the DU RGB output

2016-08-16 Thread Geert Uytterhoeven
On Fri, Aug 12, 2016 at 11:18 AM, Laurent Pinchart
 wrote:
> Signed-off-by: Laurent Pinchart 

Reviewed-by: Geert Uytterhoeven 

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH 19/26] ARM: dts: r8a7794: add MSTP5 clocks

2016-08-16 Thread Simon Horman
On Mon, Aug 15, 2016 at 08:56:05PM +0300, Sergei Shtylyov wrote:
> Hello.
> 
> On 08/15/2016 11:55 AM, Simon Horman wrote:
> 
> >From: Sergei Shtylyov 
> >
> >Add some MSTP5 clocks to the R8A7794 device tree.
> >
> >Signed-off-by: Sergei Shtylyov 
> >Acked-by: Kuninori Morimoto 
> >Reviewed-by: Geert Uytterhoeven 
> >Signed-off-by: Simon Horman 
> >---
> > arch/arm/boot/dts/r8a7794.dtsi| 9 +
> > include/dt-bindings/clock/r8a7794-clock.h | 1 +
> > 2 files changed, 10 insertions(+)
> >
> >diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
> >index 5d1fded79633..1c2d3846d70e 100644
> >--- a/arch/arm/boot/dts/r8a7794.dtsi
> >+++ b/arch/arm/boot/dts/r8a7794.dtsi
> >@@ -1204,6 +1204,15 @@
> > clock-indices = ;
> > clock-output-names = "irqc";
> > };
> >+mstp5_clks: mstp5_clks@e6150144 {
> >+compatible = "renesas,r8a7794-mstp-clocks", 
> >"renesas,cpg-mstp-clocks";
> >+reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
> >+clocks = <&hp_clk>, <&extal_clk>, <&p_clk>;
> 
>Argh! Looks like I forgot to remove <&extal_clk> when removing the
> thermal clock... will send the patch.

Please send it as an incremental follow-up.
Thanks!


Re: [PATCH] ARM: dts: r8a7794: add VSP1 support

2016-08-16 Thread Geert Uytterhoeven
On Mon, Aug 15, 2016 at 11:52 PM, Sergei Shtylyov
 wrote:
> Describe two instances (VSPS and VSPD0) of the VSP1 in the R8A7794 device
> tree.
>
> Signed-off-by: Sergei Shtylyov 

Reviewed-by: Geert Uytterhoeven 

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH] sh-sci: fix transition from noflow to HW flow control

2016-08-16 Thread Geert Uytterhoeven
Hi Christoph,

On Mon, Aug 15, 2016 at 1:20 PM, Baumann, Christoph (C.)
 wrote:
> working on getting RTS/CTS run on r8a7795 I had some annoying issues.

Which port are you using? SCIF or HSCIF?

> Measuring with a scope showed that RTS would become low on opening the tty 
> device (regardless of having CRTSCTS set or not). So far this is expected.
> But if I used tcsetattr() to set/unset the CRTSCTS flag the RTS pin would 
> become hi and stayed so.
> I then looked into the sh-sci driver and added some debug output.
> My analysis was that upon opening the tty device the functions set_termios 
> and set_mctrl are called.
> In the sh-sci driver the set_mctrl function is the only place where the 
> internal 'autorts' flag is actually written to a register.
> As obviously the RTSCTS flow control flag can only be set after the device is 
> opened, the flag isn't propagated to the corresponding register.

You mean sci_set_mctrl() isn't called by the serial core after
sci_set_termios()?

However, uart_set_termios() calls both uart_change_speed() and
uart_{clear,set}_mctrl(), in that order?

> To make it more confusing the flag is kept in .c_cflag even after closing the 
> device and is then taken care of the next time the device is opened again.
> To fix this I set the bit in set_termios after the line where it was 
> previously only stored in the bool variable 'autorts' (see attachment).

> --- a/drivers/tty/serial/sh-sci.c
> +++ b/drivers/tty/serial/sh-sci.c

[ removed unrelated changes]

> @@ -2336,6 +2337,8 @@ done:
> port->status |= UPSTAT_AUTOCTS;
> /* MCE is enabled when RTS is raised */
> s->autorts = true;
> +   ctrl |= SCFCR_MCE;
> +   sci_set_rts(port, 1);
> }
>
> /*

Have you tried using GPIO RTS/CTS instead of hardware-assisted RTS/CTS?
Does it show the same behavior?
When adding support for hardware-assisted RTS/CTS, I used the behavior of
GPIO RTS/CTS as the expected behavior.

Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds