Re: [PATCH/RFT] arm64: dts: renesas: r8a77990: Enable I2C DMA

2018-11-23 Thread Geert Uytterhoeven
On Sat, Oct 20, 2018 at 11:35 PM Yoshihiro Kaneko  wrote:
> From: Takeshi Kihara 
>
> This patch enables I2C DMA.
>
> NOTE: I2C7 DMA is not supported by R-Car Gen3 Hardware User's Manual
> Rev.0.80E.
>
> Signed-off-by: Takeshi Kihara 
> Signed-off-by: Yoshihiro Kaneko 

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] mmc: tmio: introduce mask for 'always 1' bits

2018-11-23 Thread Wolfram Sang

> > > > +#define TMIO_STAT_ALWAYS_SET_27BIT(27) /* only known on R-Car 
> > > > 2+ so far */
> > > 
> > > The _27 seems to be odd to include in the name, but I assume it
> > > was the least bad option you could come up with.
> > 
> > Yes :) I am open for better suggestions.
> 
> Simply dropping '_27' would be an improvement in my opinion.

And if we get a second one later? Or make it a mask then?



signature.asc
Description: PGP signature


Re: [PATCH] mmc: tmio: introduce mask for 'always 1' bits

2018-11-23 Thread Niklas Söderlund
Hi Wolfram,

Thanks for your work.

On 2018-11-23 13:57:32 +0100, Simon Horman wrote:
> On Thu, Nov 22, 2018 at 03:06:59PM +0100, Wolfram Sang wrote:
> > 
> > > > +#define TMIO_STAT_ALWAYS_SET_27BIT(27) /* only known on R-Car 
> > > > 2+ so far */
> > > 
> > > The _27 seems to be odd to include in the name, but I assume it
> > > was the least bad option you could come up with.
> > 
> > Yes :) I am open for better suggestions.
> 
> Simply dropping '_27' would be an improvement in my opinion.

I'm slightly agreeing with Simon here to drop the _27. With or without 
that change I think this patch looks good so feel free to add.

Reviewed-by: Niklas Söderlund 

-- 
Regards,
Niklas Söderlund


Re: [PATCH 4/4] clk: renesas: r8a77980-cpg-mssr: add RPC clocks

2018-11-23 Thread Geert Uytterhoeven
Hi Sergei,

Thanks for your patch!

On Thu, Nov 22, 2018 at 7:45 PM Sergei Shtylyov
 wrote:
> Add the RPCSRC internal clock on R-Car V3H (R8A77980) -- it's controlled
> by the RPCCKCR.DIV[4:3] on all the R-Car gen3 SoCs except V3M (R8A77970)
> but the encoding of this field is different between SoCs.

Given the tables and encoding are the same on H3, M3-W, M3-N, and V3H,
I think it makes sense to move the common support to rcar-gen3-cpg.c.

Heck, you could even just select a different table on D3/E3 using
soc_device_match(), if only one encoding would not select a different parent
clock :-(

> Add the RPC[D2] clocks (derived from this internal clock) and the RPC-IF
> module clock as well...
>
> Signed-off-by: Sergei Shtylyov 

> --- renesas-drivers.orig/drivers/clk/renesas/r8a77980-cpg-mssr.c
> +++ renesas-drivers/drivers/clk/renesas/r8a77980-cpg-mssr.c

> @@ -21,6 +22,10 @@
>  #include "renesas-cpg-mssr.h"
>  #include "rcar-gen3-cpg.h"
>
> +enum r8a77980_clk_types {
> +   CLK_TYPE_R8A77980_RPCSRC = CLK_TYPE_GEN3_SOC_BASE,

Rename and move to rcar_gen3_clk_types?

> @@ -215,6 +232,27 @@ static int __init r8a77980_cpg_mssr_init
> return rcar_gen3_cpg_init(cpg_pll_config, CLK_EXTALR, cpg_mode);
>  }
>
> +static struct clk * __init r8a77980_cpg_clk_register(struct device *dev,
> +   const struct cpg_core_clk *core, const struct cpg_mssr_info *info,
> +   struct clk **clks, void __iomem *base,
> +   struct raw_notifier_head *notifiers)
> +{
> +   if (core->type == CLK_TYPE_R8A77980_RPCSRC) {

I'd use a switch() statement here, for consistency with other drivers.

> +   const struct clk *parent = clks[core->parent];
> +
> +   if (IS_ERR(parent))
> +   return ERR_CAST(parent);
> +
> +   return clk_register_divider_table(NULL, core->name,
> + __clk_get_name(parent), 0,
> + base + CPG_RPCCKCR, 3, 2, 0,
> + cpg_rpcsrc_div_table, NULL);

Don't you need a spinlock (last parameter, currently NULL)?
This needs to be synchronized with controlling the RPCD2 and RPC clocks,
as they operate on the same register.

However, that would deadlock, as enabling e.g. RPC-IF will enable
all parent clocks?

> +   } else  {
> +   return rcar_gen3_cpg_clk_register(dev, core, info, clks, base,
> + notifiers);
> +   }

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 3/4] clk: renesas: rcar-gen3-cpg: add RPCD2 clock

2018-11-23 Thread Geert Uytterhoeven
Hi Sergei,

On Thu, Nov 22, 2018 at 7:43 PM Sergei Shtylyov
 wrote:
> Add the RPCD2 clock for the R-Car gen3 SoCs -- this clock is en/disabled
> via the RPCCKCR register on all the R-Car gen3 SoCs except V3M (R8A77970)
> and has a fixed divisor of 2 (applied to the RPC clock).
>
> Signed-off-by: Sergei Shtylyov 

Thanks for your patch!

> --- renesas-drivers.orig/drivers/clk/renesas/rcar-gen3-cpg.c
> +++ renesas-drivers/drivers/clk/renesas/rcar-gen3-cpg.c
> @@ -524,6 +524,89 @@ static struct clk * __init cpg_rpc_clk_r
> return clk;
>  }
>
> +static int cpg_rpcd2_clock_enable(struct clk_hw *hw)
> +{
> +   struct rpc_clock *clock = to_rpc_clock(hw);
> +
> +   cpg_reg_modify(clock->reg, CPG_RPC_CKSTP2, 0);
> +
> +   return 0;
> +}
> +
> +static void cpg_rpcd2_clock_disable(struct clk_hw *hw)
> +{
> +   struct rpc_clock *clock = to_rpc_clock(hw);
> +
> +   cpg_reg_modify(clock->reg, 0, CPG_RPC_CKSTP2);
> +}
> +
> +static int cpg_rpcd2_clock_is_enabled(struct clk_hw *hw)
> +{
> +   struct rpc_clock *clock = to_rpc_clock(hw);
> +
> +   return !(readl(clock->reg) & CPG_RPC_CKSTP2);
> +}

As the above 3 functions are identical to their rpc_*() counterparts,
except for the bit touched, would it make sense to share them, e.g. by
storing the bit number in struct rpc_clock?

> +static long cpg_rpcd2_round_rate(struct clk_hw *hw, unsigned long rate,
> +unsigned long *parent_rate)
> +{
> +   return *parent_rate / 2;

Given you set CLK_SET_RATE_PARENT, shouldn't you propagate up,
cfr. drivers/clk/clk-fixed-factor.c:clk_factor_round_rate()?

> +}

> +static struct clk * __init cpg_rpcd2_clk_register(const struct cpg_core_clk 
> *core,
> +   void __iomem *base,
> +   const char *parent_name)
> +{
> +   struct clk_init_data init;
> +   struct rpc_clock *clock;
> +   struct clk *clk;
> +
> +   clock = kzalloc(sizeof(*clock), GFP_KERNEL);
> +   if (!clock)
> +   return ERR_PTR(-ENOMEM);
> +
> +   init.name = core->name;
> +   init.ops = _rpcd2_clock_ops;
> +   init.flags = CLK_IS_BASIC | CLK_SET_RATE_PARENT;

I don't think CLK_IS_BASIC is appropriate?

#define CLK_IS_BASICBIT(5) /* Basic clk, can't do a to_clk_foo() */

Given RPCD2 is the combination of a gate and fixed-divider clock, would
it make sense to use clk_composite?

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] mmc: tmio: introduce mask for 'always 1' bits

2018-11-23 Thread Simon Horman
On Thu, Nov 22, 2018 at 03:06:59PM +0100, Wolfram Sang wrote:
> 
> > > +#define TMIO_STAT_ALWAYS_SET_27  BIT(27) /* only known on R-Car 2+ so 
> > > far */
> > 
> > The _27 seems to be odd to include in the name, but I assume it
> > was the least bad option you could come up with.
> 
> Yes :) I am open for better suggestions.

Simply dropping '_27' would be an improvement in my opinion.


Re: [PATCH 2/4] clk: renesas: rcar-gen3-cpg: add RPC clock

2018-11-23 Thread Geert Uytterhoeven
Hi Sergei,

On Thu, Nov 22, 2018 at 7:41 PM Sergei Shtylyov
 wrote:
> Add the RPC clock for the R-Car gen3 SoCs -- this clock is controlled by
> the RPCCKCR register on all the R-Car gen3 SoCs except V3M (R8A77970).
>
> Signed-off-by: Sergei Shtylyov 

Thanks for your patch!

> --- renesas-drivers.orig/drivers/clk/renesas/rcar-gen3-cpg.c
> +++ renesas-drivers/drivers/clk/renesas/rcar-gen3-cpg.c
> @@ -409,6 +409,121 @@ free_clock:
> return clk;
>  }
>
> +#define CPG_RPC_CKSTP2 BIT(9)

This bit is for RPCD2, so technically it should be part of patch 3/4.
Perhaps you can merge both patches, and absorb the non-SoC-specific
parts from patch 4/4?

> +#define CPG_RPC_CKSTP  BIT(8)
> +#define CPG_RPC_DIV_4_3_MASK   GENMASK(4, 3)

Unused

> +#define CPG_RPC_DIV_2_0_MASK   GENMASK(2, 0)
> +
> +struct rpc_clock {
> +   struct clk_hw hw;
> +   void __iomem *reg;

As this register should be saved/restore during system suspend/resume,
you should add

struct cpg_simple_notifier csn;

> +};

> +static long cpg_rpc_clock_round_rate(struct clk_hw *hw, unsigned long rate,
> +unsigned long *parent_rate)
> +{
> +   struct rpc_clock *clock = to_rpc_clock(hw);
> +   unsigned int div = cpg_rpc_clock_calc_div(clock, rate, *parent_rate);
> +
> +   return DIV_ROUND_CLOSEST(*parent_rate, div);

Given you set CLK_SET_RATE_PARENT, shouldn't you propagate up,
cfr. drivers/clk/clk-fixed-factor.c:clk_factor_round_rate()?

> +}

> +static struct clk * __init cpg_rpc_clk_register(const struct cpg_core_clk 
> *core,
> +   void __iomem *base,
> +   const char *parent_name)
> +{
> +   struct clk_init_data init;
> +   struct rpc_clock *clock;
> +   struct clk *clk;
> +
> +   clock = kzalloc(sizeof(*clock), GFP_KERNEL);
> +   if (!clock)
> +   return ERR_PTR(-ENOMEM);
> +
> +   init.name = core->name;
> +   init.ops = _rpc_clock_ops;
> +   init.flags = CLK_IS_BASIC | CLK_SET_RATE_PARENT;

I don't think CLK_IS_BASIC is appropriate?

#define CLK_IS_BASICBIT(5) /* Basic clk, can't do a to_clk_foo() */

> +   init.parent_names = _name;
> +   init.num_parents = 1;
> +
> +   clock->reg = base + CPG_RPCCKCR;
> +   clock->hw.init = 
> +
> +   clk = clk_register(NULL, >hw);
> +   if (IS_ERR(clk))
> +   kfree(clock);
> +

For save/restore during system suspend/resume:

cpg_simple_notifier_register(notifiers, >csn);

Hmm, looks like I missed that during review of commit 381081ffc2948e1e
("clk: renesas: r8a77970: Add SD0H/SD0 clocks for SDHI"), too.

> +   return clk;
> +}
> +
>
>  static const struct rcar_gen3_cpg_pll_config *cpg_pll_config __initdata;
>  static unsigned int cpg_clk_extalr __initdata;
> @@ -583,6 +698,9 @@ struct clk * __init rcar_gen3_cpg_clk_re
> }
> break;
>
> +   case CLK_TYPE_GEN3_RPC:
> +   return cpg_rpc_clk_register(core, base, 
> __clk_get_name(parent));
> +
> default:
> return ERR_PTR(-EINVAL);
> }

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/RFT] arm64: dts: renesas: r8a77990: add thermal device support

2018-11-23 Thread Simon Horman
On Wed, Oct 17, 2018 at 11:58:29AM +0200, Simon Horman wrote:
> On Mon, Oct 15, 2018 at 11:12:26PM +0900, Yoshihiro Kaneko wrote:
> > This patch adds the thermal device node and the thermal-zone for
> > the R8A77990 SoC.
> > 
> > Signed-off-by: Yoshihiro Kaneko 
> Thanks,
> 
> This looks fine to me but I will wait to see if there are other reviews
> before applying.
> 
> Reviewed-by: Simon Horman 
> 
> Also tested on Ebisu/E3 in conjunction with "[PATCH/RFT 0/2] thermal: add
> suport for R8A77990"
> 
> # X=100; while [ "$X" -gt 0 ]; do X=$(($X -1 )); done; cat
> # /sys/devices/virtual/thermal/thermal_zone0/temp; sleep 1; cat
> # /sys/devices/virtual/thermal/thermal_zone0/temp
> 3
> 25000
> 
> Tested-by: Simon Horman 
> 

I was waiting for the bindings to be reviewed, that has now happened
and I have applied this patch for v4.21.


Re: [PATCH/RFT] arm64: dts: renesas: r8a77990: Enable I2C DMA

2018-11-23 Thread Simon Horman
On Wed, Nov 21, 2018 at 01:02:57PM +0100, Simon Horman wrote:
> On Sun, Oct 21, 2018 at 06:35:26AM +0900, Yoshihiro Kaneko wrote:
> > From: Takeshi Kihara 
> > 
> > This patch enables I2C DMA.
> > 
> > NOTE: I2C7 DMA is not supported by R-Car Gen3 Hardware User's Manual
> > Rev.0.80E.
> > 
> > Signed-off-by: Takeshi Kihara 
> > Signed-off-by: Yoshihiro Kaneko 
> 
> Base patch stack:
> * renesas-devel-20181121-v4.20-rc3
> + "iommu/ipmmu-vmsa: Hook up r8a77990 DT matching code"
> + "pinctrl: sh-pfc: r8a77990: Add Audio SSI pins, groups and functions"
> + "pinctrl: sh-pfc: r8a77990: Add Audio clock pins, groups and functions"
> 
> Config: renesas_defconfig + IPMMU_VMSA
> 
> Should we enable IPMMU_VMSA in arm64 defconfig and renesas_defconfig?
> 
> Test with base patch stack:
> # grep dma /proc/interrupts  | grep -v "0  0"
> (no output)
> # amixer set "DVC Out" 2%
> # play xyz.wav
> # grep dma /proc/interrupts  | grep -v "0  0"
> (no output)
> 
> Test with base patch stack + this patch applied:
> # grep dma /proc/interrupts  | grep -v "0  0"
> (no output)
> # amixer set "DVC Out" 2%
> # play xyz.wav
> # grep dma /proc/interrupts  | grep -v "0  0"
> 109:512  0 GIC-0 352 Level ec70.dma-controller:0
> 
> 
> Tested-by: Simon Horman 
> Reviewed-by: Simon Horman 
> 
> I plan to apply this patch for v4.21.

Done.


Re: [PATCH] arm64: dts: renesas: r8a7796: Add CMT device nodes

2018-11-23 Thread Simon Horman
On Wed, Nov 21, 2018 at 10:27:41AM +, Biju Das wrote:
> Hi Simon,
> 
> Thanks for the feedback.
> 
> > -Original Message-
> > From: Simon Horman 
> > Sent: 21 November 2018 10:24
> > To: Biju Das 
> > Cc: Rob Herring ; Mark Rutland
> > ; Magnus Damm ;
> > linux-renesas-soc@vger.kernel.org; devicet...@vger.kernel.org; Geert
> > Uytterhoeven ; Chris Paterson
> > ; Daniel Lezcano
> > ; Thomas Gleixner ; John
> > Stultz ; Fabrizio Castro
> > 
> > Subject: Re: [PATCH] arm64: dts: renesas: r8a7796: Add CMT device nodes
> >
> > On Fri, Oct 26, 2018 at 09:25:07AM +0100, Biju Das wrote:
> > > This patch adds CMT{0|1|2|3} device nodes for r8a7796 SoC.
> > >
> > > Signed-off-by: Biju Das 
> > > ---
> > > This patch is tested against renesas-dev
> > >
> > > I have executed on inconsistency-check, nanosleep and
> > > clocksource_switch selftests on this arm64 SoC. The
> > > inconsistency-check and nanosleep tests are working fine.The
> > > clocksource_switch asynchronous test is failing due to inconsistency-check
> > failure on "arch_sys_counter".
> > >
> > > But if i skip the clocksource_switching of "arch_sys_counter", the
> > > asynchronous test is passing for CMT0/1/2/3 timer.
> > >
> > > Has any one noticed this issue?
> >
> > I am reluctant to apply this patch until there is a better understanding of 
> > the
> > issue above.
> 
> If I understand correctly this patch has no issue at all. The problem is 
> related to ARM architecture  timer.
> Please correct me if you think otherwise.

Thanks for the clarification, I have applied this patch for v4.21.


Re: [PATCH] arm64: dts: renesas: r8a7796: add SSIU support for sound

2018-11-23 Thread Simon Horman
On Wed, Nov 21, 2018 at 11:58:59PM +, Kuninori Morimoto wrote:
> 
> Hi Simon
> 
> > > From: Kuninori Morimoto 
> > > 
> > > rsnd driver supports SSIU now, let's use it.
> > > Then, BUSIF DMA settings on rcar_sound,ssi (= rxu, txu) are
> > > no longer needed.
> > > To avoid git merge timing issue / git bisect issue,
> > > this patch doesn't remove it so far, but will be removed in
> > > the future.
> > > 
> > > Signed-off-by: Kuninori Morimoto 
> > > ---
> > >  arch/arm64/boot/dts/renesas/r8a7796.dtsi | 211 
> > > +++
> > >  1 file changed, 211 insertions(+)
> > > 
> > > diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi 
> > > b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
> > > index 449eb33..5cc9b8b 100644
> > > --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
> > > +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
> > > @@ -1826,6 +1826,217 @@
> > >   };
> > >   };
> > >  
> > > + rcar_sound,ssiu {
> > > + ssiu00: ssiu-0 {
> > > + dmas = < 0x15>, < 0x16>;
> > > + dma-names = "rx", "tx";
> > > + };
> > 
> > Hi Morimoto-san,
> > 
> > I am having a little trouble finding documentation of the audma port
> > numbers used in this patch.
> 
> ?? Sorry what do you mean ?
> You can find it on
> 
>   Table 48.5 Selecting On-Chip Peripheral Module Request Modes

Thanks, that is the information that I was looking fore.

I have gone ahead and applied this patch for v4.21.


Re: [PATCH v2] arm64: dts: renesas: r8a77990: Add I2C-DVFS device node

2018-11-23 Thread Simon Horman
On Fri, Nov 23, 2018 at 10:21:39AM +0100, Geert Uytterhoeven wrote:
> Hi Simon,
> 
> On Wed, Nov 21, 2018 at 1:12 PM Simon Horman  
> wrote:
> >
> > From: Takeshi Kihara 
> >
> > This patch adds I2C-DVFS device node for the R8A77990 SoC.
> >
> > v2
> > * Drop aliases update as in upstream it is not required to configure the
> >   BD9571 PMIC for DDR backup, nor is the use of i2c are aliases desired.
> > * Do not describe the device as compatible with "renesas,rcar-gen3-iic" or
> >   "renesas,rmobile-iic" fallback compat strings. The absence of automatic
> >   transmission registers leads us to declare the r8a77990 IIC controller as
> >   incompatible.
> >
> > Signed-off-by: Takeshi Kihara 
> > Signed-off-by: Yoshihiro Kaneko 
> > [simon: drop aliases hunk and fallback compat string usage]
> > Signed-off-by: Simon Horman 
> 
> Thanks for the update!
> 
> > --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > @@ -357,6 +357,20 @@
> > reg = <0 0xe606 0 0x508>;
> > };
> >
> > +   i2c_dvfs: i2c@e60b {
> > +   #address-cells = <1>;
> > +   #size-cells = <0>;
> > +   compatible = "renesas,iic-r8a77990";
> > +   reg = <0 0xe60b 0 0x34>;
> 
> ... 0x15>;

Thanks, sorry for missing that.

> > +   interrupts = ;
> > +   clocks = < CPG_MOD 926>;
> > +   power-domains = < R8A77990_PD_ALWAYS_ON>;
> > +   resets = < 926>;
> > +   dmas = < 0x11>, < 0x10>;
> > +   dma-names = "tx", "rx";
> > +   status = "disabled";
> > +   };
> 
> With thwe above fixed:
> Reviewed-by: Geert Uytterhoeven 

I have applied the following for v4.21:

>From 0b80b6f4b26e3c6e5861234badc4b12ef2928cac Mon Sep 17 00:00:00 2001
From: Takeshi Kihara 
Date: Wed, 21 Nov 2018 13:11:39 +0100
Subject: [PATCH] arm64: dts: renesas: r8a77990: Add I2C-DVFS device node

This patch adds I2C-DVFS device node for the R8A77990 SoC.

v2
* Drop aliases update as in upstream it is not required to configure the
  BD9571 PMIC for DDR backup, nor is the use of i2c are aliases desired.
* Do not describe the device as compatible with "renesas,rcar-gen3-iic" or
  "renesas,rmobile-iic" fallback compat strings. The absence of automatic
  transmission registers leads us to declare the r8a77990 IIC controller as
  incompatible.

v2.1
* Reduced register range to reflect documentation

Signed-off-by: Takeshi Kihara 
Signed-off-by: Yoshihiro Kaneko 
Signed-off-by: Simon Horman 
Reviewed-by: Geert Uytterhoeven 

Signed-off-by: Simon Horman 
---
 arch/arm64/boot/dts/renesas/r8a77990.dtsi | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi 
b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
index b0398e05e8ed..3b334be843f4 100644
--- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
@@ -357,6 +357,20 @@
reg = <0 0xe606 0 0x508>;
};
 
+   i2c_dvfs: i2c@e60b {
+   #address-cells = <1>;
+   #size-cells = <0>;
+   compatible = "renesas,iic-r8a77990";
+   reg = <0 0xe60b 0 0x15>;
+   interrupts = ;
+   clocks = < CPG_MOD 926>;
+   power-domains = < R8A77990_PD_ALWAYS_ON>;
+   resets = < 926>;
+   dmas = < 0x11>, < 0x10>;
+   dma-names = "tx", "rx";
+   status = "disabled";
+   };
+
cpg: clock-controller@e615 {
compatible = "renesas,r8a77990-cpg-mssr";
reg = <0 0xe615 0 0x1000>;
-- 
2.11.0



Re: [PATCH] gpio: rcar: reference device instead of platform device

2018-11-23 Thread Geert Uytterhoeven
On Thu, Nov 22, 2018 at 9:19 PM Vladimir Zapolskiy  wrote:
> The change simplifies dereferences to the mediated struct device, also
> it allows to limit the scope of the platform device usage to probe and
> remove functions only.
>
> Non-functional change.
>
> Signed-off-by: Vladimir Zapolskiy 

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 1/4] clk: renesas: rcar-gen3-cpg: factor out cpg_reg_modify()

2018-11-23 Thread Geert Uytterhoeven
On Thu, Nov 22, 2018 at 7:39 PM Sergei Shtylyov
 wrote:
> There's quite often repeated sequence of a CPG register read-modify-write,
> so it seems worth factoring it out into a function -- this saves 68 bytes
> of the object code already (AArch64 gcc 4.8.5) and will save more with the
> next patches...
>
> 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 1/2] i2c: sh_mobile: document support for r8a77990 (R-Car E3)

2018-11-23 Thread Geert Uytterhoeven
On Wed, Nov 21, 2018 at 1:11 PM Simon Horman  wrote:
> Document support for the IIC code for the r8a77990 (R-Car E3).
>
> It is not considered compatible with existing fallback bindings
> due to the documented absence of automatic transmission registers.
>
> Signed-off-by: Simon Horman 

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 2/2] i2c: sh_mobile: add support for r8a77990 (R-Car E3)

2018-11-23 Thread Geert Uytterhoeven
On Wed, Nov 21, 2018 at 1:11 PM Simon Horman  wrote:
> Add support for the IIC code for the r8a77990 (R-Car E3).
>
> It is not considered compatible with existing fallback bindings
> due to the documented absence of automatic transmission registers.
>
> These registers are currently not used by the driver and
> thus the provides the same behaviour for "renesas,iic-r8a77990" and
> "renesas,rcar-gen3-iic". The point of declaring incompatibility is
> to allow for automatic transmission register support to be added to
> "renesas,iic-r8a77990" and "renesas,rcar-gen3-iic" in future.
>
> Signed-off-by: Simon Horman 

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 v2] arm64: dts: renesas: r8a77990: Add I2C-DVFS device node

2018-11-23 Thread Geert Uytterhoeven
Hi Simon,

On Wed, Nov 21, 2018 at 1:12 PM Simon Horman  wrote:
>
> From: Takeshi Kihara 
>
> This patch adds I2C-DVFS device node for the R8A77990 SoC.
>
> v2
> * Drop aliases update as in upstream it is not required to configure the
>   BD9571 PMIC for DDR backup, nor is the use of i2c are aliases desired.
> * Do not describe the device as compatible with "renesas,rcar-gen3-iic" or
>   "renesas,rmobile-iic" fallback compat strings. The absence of automatic
>   transmission registers leads us to declare the r8a77990 IIC controller as
>   incompatible.
>
> Signed-off-by: Takeshi Kihara 
> Signed-off-by: Yoshihiro Kaneko 
> [simon: drop aliases hunk and fallback compat string usage]
> Signed-off-by: Simon Horman 

Thanks for the update!

> --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> @@ -357,6 +357,20 @@
> reg = <0 0xe606 0 0x508>;
> };
>
> +   i2c_dvfs: i2c@e60b {
> +   #address-cells = <1>;
> +   #size-cells = <0>;
> +   compatible = "renesas,iic-r8a77990";
> +   reg = <0 0xe60b 0 0x34>;

... 0x15>;

> +   interrupts = ;
> +   clocks = < CPG_MOD 926>;
> +   power-domains = < R8A77990_PD_ALWAYS_ON>;
> +   resets = < 926>;
> +   dmas = < 0x11>, < 0x10>;
> +   dma-names = "tx", "rx";
> +   status = "disabled";
> +   };

With thwe above fixed:
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


[git pull] pinctrl: sh-pfc: Updates for v4.21

2018-11-23 Thread Geert Uytterhoeven
Hi Linus,

The following changes since commit 651022382c7f8da46cb4872a545ee1da6d097d2a:

  Linux 4.20-rc1 (2018-11-04 15:37:52 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git 
tags/sh-pfc-for-v4.21-tag1

for you to fetch changes up to b59d0e782706785b7042539e820e95df3be4d04c:

  pinctrl: Add RZ/A2 pin and gpio controller (2018-11-23 09:30:27 +0100)


pinctrl: sh-pfc: Updates for v4.21

  - Fix VIN (Video IN) versioned groups on R-Car V2H, H3, and M3-W,
  - Add I2C[0-3], DU1, VIN, QSPI1, and SDHI pin groups on RZ/G1C,
  - Add audio, SDHI, VIN, HSCIF, and CAN(FD) support on R-Car E3,
  - Add QSPI pin groups on R-Car V3M and V3H,
  - Add VIN and CAN(FD) pin groups on R-Car M3-N,
  - Add I2C[035] pin groups on R-Car H3 and M3-W,
  - Add pinctrl and GPIO support for the new RZ/A2M (R7S9210) SoC,
  - Small cleanups,
  - Maintainership updates.

Thanks for pulling!


Chris Brandt (2):
  dt-bindings: pinctrl: Add RZ/A2 pinctrl and GPIO
  pinctrl: Add RZ/A2 pin and gpio controller

Dmitry Shifrin (2):
  pinctrl: sh-pfc: r8a77970: Add QSPI pins, groups, and functions
  pinctrl: sh-pfc: r8a77980: Add QSPI pins, groups, and functions

Fabrizio Castro (5):
  pinctrl: sh-pfc: r8a77470: Add remaining I2C pin groups
  pinctrl: sh-pfc: r8a77470: Add DU1 pin groups
  pinctrl: sh-pfc: r8a77470: Add VIN pin groups
  pinctrl: sh-pfc: r8a77470: Add QSPI1 pin groups
  pinctrl: sh-pfc: r8a77470: Add SDHI support

Geert Uytterhoeven (3):
  MAINTAINERS: Add Renesas RZ/A and RZ/N files to Renesas pinctrl section
  pinctrl: sh-pfc: Reduce kernel size for narrow VIN channels
  pinctrl: sh-pfc: r8a77995: Remove unused PINMUX_IPSR_{MSEL2,PHYS}()

Jacopo Mondi (6):
  pinctrl: sh-pfc: Add optional arg to VIN_DATA_PIN_GROUP
  pinctrl: sh-pfc: r8a7792: Fix VIN versioned groups
  pinctrl: sh-pfc: r8a7795: Fix VIN versioned groups
  pinctrl: sh-pfc: r8a7796: Fix VIN versioned groups
  pinctrl: sh-pfc: r8a77965: Add VIN[4|5] groups/functions
  pinctrl: sh-pfc: r8a77990: Add VIN[4|5] groups/functions

Laurent Pinchart (1):
  MAINTAINERS: Remove Laurent Pinchart as Renesas pinctrl maintainer

Takeshi Kihara (12):
  pinctrl: sh-pfc: r8a77990: Add Audio clock pins, groups and functions
  pinctrl: sh-pfc: r8a77990: Add Audio SSI pins, groups and functions
  pinctrl: sh-pfc: r8a77990: Add SDHI pins, groups and functions
  pinctrl: sh-pfc: r8a77990: Add voltage switch operations for SDHI
  pinctrl: sh-pfc: r8a77990: Add HSCIF pins, groups, and functions
  pinctrl: sh-pfc: r8a7795: Add I2C{0,3,5} pins, groups and functions
  pinctrl: sh-pfc: r8a7795-es1: Add I2C{0,3,5} pins, groups and functions
  pinctrl: sh-pfc: r8a7796: Add I2C{0,3,5} pins, groups and functions
  pinctrl: sh-pfc: r8a77965: Add CAN pins, groups and functions
  pinctrl: sh-pfc: r8a77965: Add CAN FD pins, groups and functions
  pinctrl: sh-pfc: r8a77990: Add CAN pins, groups and functions
  pinctrl: sh-pfc: r8a77990: Add CAN FD pins, groups and functions

Ulrich Hecht (1):
  pinctrl: sh-pfc: Add physical pin multiplexing helper macros

 .../bindings/pinctrl/renesas,rza2-pinctrl.txt  |   87 +
 MAINTAINERS|2 +-
 drivers/pinctrl/Kconfig|   11 +
 drivers/pinctrl/Makefile   |1 +
 drivers/pinctrl/pinctrl-rza2.c |  519 ++
 drivers/pinctrl/sh-pfc/pfc-r8a77470.c  |  678 ++-
 drivers/pinctrl/sh-pfc/pfc-r8a7792.c   |   22 +-
 drivers/pinctrl/sh-pfc/pfc-r8a7794.c   |4 +-
 drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c   |   97 +-
 drivers/pinctrl/sh-pfc/pfc-r8a7795.c   |  119 +-
 drivers/pinctrl/sh-pfc/pfc-r8a7796.c   |  122 +-
 drivers/pinctrl/sh-pfc/pfc-r8a77965.c  |  370 
 drivers/pinctrl/sh-pfc/pfc-r8a77970.c  |   70 +
 drivers/pinctrl/sh-pfc/pfc-r8a77980.c  |   70 +
 drivers/pinctrl/sh-pfc/pfc-r8a77990.c  | 1934 +---
 drivers/pinctrl/sh-pfc/pfc-r8a77995.c  |6 -
 drivers/pinctrl/sh-pfc/sh_pfc.h|   54 +-
 include/dt-bindings/pinctrl/r7s9210-pinctrl.h  |   47 +
 18 files changed, 3841 insertions(+), 372 deletions(-)
 create mode 100644 
Documentation/devicetree/bindings/pinctrl/renesas,rza2-pinctrl.txt
 create mode 100644 drivers/pinctrl/pinctrl-rza2.c
 create mode 100644 include/dt-bindings/pinctrl/r7s9210-pinctrl.h

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 

[git pull] clk: renesas: Updates for v4.21

2018-11-23 Thread Geert Uytterhoeven
Hi Mike, Stephen,

The following changes since commit 651022382c7f8da46cb4872a545ee1da6d097d2a:

  Linux 4.20-rc1 (2018-11-04 15:37:52 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git 
tags/clk-renesas-for-v4.21-tag1

for you to fetch changes up to eb38c119dd91c61de26f67050671a84064554f7d:

  clk: renesas: r7s9210: Add USB clocks (2018-11-13 09:58:51 +0100)


clk: renesas: Updates for v4.21

  - Add support for SDHI and USB clocks on RZ/A2,
  - Add support for RPC (SPI Multi I/O Bus Controller) clocks on R-Car
V3M.

Thanks for pulling!


Chris Brandt (2):
  clk: renesas: r7s9210: Add SDHI clocks
  clk: renesas: r7s9210: Add USB clocks

Sergei Shtylyov (1):
  clk: renesas: r8a77970: Add RPC clocks

 drivers/clk/renesas/r7s9210-cpg-mssr.c  | 7 +++
 drivers/clk/renesas/r8a77970-cpg-mssr.c | 4 
 2 files changed, 11 insertions(+)

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 v7 0/2] pinctrl: Add RZ/A2 pin and gpio driver

2018-11-23 Thread Geert Uytterhoeven
Hi Chris,

On Thu, Nov 15, 2018 at 5:15 PM Chris Brandt  wrote:
> The pin controller in the RZ/A2 is nothing like the pin controller in
> the RZ/A1. That's a good thing! This pin controller is much more simple
> and easier to configure.
>
> So, this driver is faily simple (I hope).

Thanks, qeuing in sh-pfc-for-v4.21.

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