[linux-sunxi] [PATCH 2/2] dt-bindings: sram: sunxi-sram: add V3s compatible string

2020-10-03 Thread Icenowy Zheng
Add compatible string for V3s, with H3 one as fallback.

This is used in device tree now, but not standardized in DT binding.

Signed-off-by: Icenowy Zheng 
---
 .../bindings/sram/allwinner,sun4i-a10-system-control.yaml  | 3 +++
 1 file changed, 3 insertions(+)

diff --git 
a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
 
b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
index 6ebcbc153691..b66a07e21d1e 100644
--- 
a/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
+++ 
b/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
@@ -33,6 +33,9 @@ properties:
   - const: allwinner,sun4i-a10-system-control
   - const: allwinner,sun8i-a23-system-control
   - const: allwinner,sun8i-h3-system-control
+  - items:
+  - const: allwinner,sun8i-v3s-system-control
+  - const: allwinner,sun8i-h3-system-control
   - items:
   - const: allwinner,sun8i-r40-system-control
   - const: allwinner,sun4i-a10-system-control
-- 
2.28.0

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003235018.1121618-2-icenowy%40aosc.io.


[linux-sunxi] [PATCH 1/2] ARM: dts: sun8i: s3: drop bogus cells for CSI subnode on PineCube

2020-10-03 Thread Icenowy Zheng
The address and size cells infomation in CSI subnode is not necessary
(because the camera subnode has no reg property).

Drop them.

Signed-off-by: Icenowy Zheng 
---
 arch/arm/boot/dts/sun8i-s3-pinecube.dts | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/arch/arm/boot/dts/sun8i-s3-pinecube.dts 
b/arch/arm/boot/dts/sun8i-s3-pinecube.dts
index 9bab6b7f4014..76c8a29e355b 100644
--- a/arch/arm/boot/dts/sun8i-s3-pinecube.dts
+++ b/arch/arm/boot/dts/sun8i-s3-pinecube.dts
@@ -64,9 +64,6 @@  {
status = "okay";
 
port {
-   #address-cells = <1>;
-   #size-cells = <0>;
-
csi1_ep: endpoint {
remote-endpoint = <_ep>;
bus-width = <8>;
-- 
2.28.0

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003235018.1121618-1-icenowy%40aosc.io.


[linux-sunxi] [PATCH 0/2] Try to fix DT schema problems for V3-series DTs

2020-10-03 Thread Icenowy Zheng
This patchset tries to fix DT schema verification errors that exist in
V3-series device trees.

The first patch drops bogus properties that is not needed in PineCube
DT, and the second one adds compatible to the binding.

Icenowy Zheng (2):
  ARM: dts: sun8i: s3: drop bogus cells for CSI subnode on PineCube
  dt-bindings: sram: sunxi-sram: add V3s compatible string

 .../bindings/sram/allwinner,sun4i-a10-system-control.yaml  | 3 +++
 arch/arm/boot/dts/sun8i-s3-pinecube.dts| 3 ---
 2 files changed, 3 insertions(+), 3 deletions(-)

-- 
2.28.0

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003234842.1121077-1-icenowy%40aosc.io.


[linux-sunxi] [PATCH v6 03/14] ASoC: sun4i-i2s: Change get_sr() and get_wss() to be more explicit

2020-10-03 Thread Clément Péron
We are actually using a complex formula to just return a bunch of
simple values. Also this formula is wrong for sun4i when calling
get_wss() the function return 4 instead of 3.

Replace this with a simpler switch case.

Also drop the i2s params which is unused and return a simple int as
returning an error code could be out of range for an s8 and there is
no optim to return a s8 here.

Fixes: 619c15f7fac9 ("ASoC: sun4i-i2s: Change SR and WSS computation")
Reviewed-by: Chen-Yu Tsai 
Signed-off-by: Clément Péron 
---
 sound/soc/sunxi/sun4i-i2s.c | 69 +++--
 1 file changed, 44 insertions(+), 25 deletions(-)

diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index 1f577dbc20a6..8e497fb3de09 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -175,8 +175,8 @@ struct sun4i_i2s_quirks {
unsigned intnum_mclk_dividers;
 
unsigned long (*get_bclk_parent_rate)(const struct sun4i_i2s *);
-   s8  (*get_sr)(const struct sun4i_i2s *, int);
-   s8  (*get_wss)(const struct sun4i_i2s *, int);
+   int (*get_sr)(unsigned int width);
+   int (*get_wss)(unsigned int width);
int (*set_chan_cfg)(const struct sun4i_i2s *i2s,
unsigned int channels,  unsigned int slots,
unsigned int slot_width);
@@ -381,37 +381,56 @@ static int sun4i_i2s_set_clk_rate(struct snd_soc_dai *dai,
return 0;
 }
 
-static s8 sun4i_i2s_get_sr(const struct sun4i_i2s *i2s, int width)
+static int sun4i_i2s_get_sr(unsigned int width)
 {
-   if (width < 16 || width > 24)
-   return -EINVAL;
-
-   if (width % 4)
-   return -EINVAL;
+   switch (width) {
+   case 16:
+   return 0x0;
+   case 20:
+   return 0x1;
+   case 24:
+   return 0x2;
+   }
 
-   return (width - 16) / 4;
+   return -EINVAL;
 }
 
-static s8 sun4i_i2s_get_wss(const struct sun4i_i2s *i2s, int width)
+static int sun4i_i2s_get_wss(unsigned int width)
 {
-   if (width < 16 || width > 32)
-   return -EINVAL;
-
-   if (width % 4)
-   return -EINVAL;
+   switch (width) {
+   case 16:
+   return 0x0;
+   case 20:
+   return 0x1;
+   case 24:
+   return 0x2;
+   case 32:
+   return 0x3;
+   }
 
-   return (width - 16) / 4;
+   return -EINVAL;
 }
 
-static s8 sun8i_i2s_get_sr_wss(const struct sun4i_i2s *i2s, int width)
+static int sun8i_i2s_get_sr_wss(unsigned int width)
 {
-   if (width % 4)
-   return -EINVAL;
-
-   if (width < 8 || width > 32)
-   return -EINVAL;
+   switch (width) {
+   case 8:
+   return 0x1;
+   case 12:
+   return 0x2;
+   case 16:
+   return 0x3;
+   case 20:
+   return 0x4;
+   case 24:
+   return 0x5;
+   case 28:
+   return 0x6;
+   case 32:
+   return 0x7;
+   }
 
-   return (width - 8) / 4 + 1;
+   return -EINVAL;
 }
 
 static int sun4i_i2s_set_chan_cfg(const struct sun4i_i2s *i2s,
@@ -574,11 +593,11 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream 
*substream,
}
i2s->playback_dma_data.addr_width = width;
 
-   sr = i2s->variant->get_sr(i2s, word_size);
+   sr = i2s->variant->get_sr(word_size);
if (sr < 0)
return -EINVAL;
 
-   wss = i2s->variant->get_wss(i2s, slot_width);
+   wss = i2s->variant->get_wss(slot_width);
if (wss < 0)
return -EINVAL;
 
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-4-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 02/14] ASoC: sun4i-i2s: Change set_chan_cfg() params

2020-10-03 Thread Clément Péron
As slots and slot_width can be set manually using set_tdm().
These values are then kept in sun4i_i2s struct.
So we need to check if these values are setted or not
in the struct.

Avoid to check for this logic in set_chan_cfg(). This will
duplicate the same check instead pass the required values
as params to set_chan_cfg().

This will also avoid a bug when we will enable 20/24bits support,
i2s->slot_width is not actually used in the lrck_period computation.

Suggested-by: Samuel Holland 
Signed-off-by: Clément Péron 
---
 sound/soc/sunxi/sun4i-i2s.c | 36 ++--
 1 file changed, 14 insertions(+), 22 deletions(-)

diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index c5ccd423e6d3..1f577dbc20a6 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -177,8 +177,9 @@ struct sun4i_i2s_quirks {
unsigned long (*get_bclk_parent_rate)(const struct sun4i_i2s *);
s8  (*get_sr)(const struct sun4i_i2s *, int);
s8  (*get_wss)(const struct sun4i_i2s *, int);
-   int (*set_chan_cfg)(const struct sun4i_i2s *,
-   const struct snd_pcm_hw_params *);
+   int (*set_chan_cfg)(const struct sun4i_i2s *i2s,
+   unsigned int channels,  unsigned int slots,
+   unsigned int slot_width);
int (*set_fmt)(const struct sun4i_i2s *, unsigned int);
 };
 
@@ -414,10 +415,9 @@ static s8 sun8i_i2s_get_sr_wss(const struct sun4i_i2s 
*i2s, int width)
 }
 
 static int sun4i_i2s_set_chan_cfg(const struct sun4i_i2s *i2s,
- const struct snd_pcm_hw_params *params)
+ unsigned int channels, unsigned int slots,
+ unsigned int slot_width)
 {
-   unsigned int channels = params_channels(params);
-
/* Map the channels for playback and capture */
regmap_write(i2s->regmap, SUN4I_I2S_TX_CHAN_MAP_REG, 0x76543210);
regmap_write(i2s->regmap, SUN4I_I2S_RX_CHAN_MAP_REG, 0x3210);
@@ -434,15 +434,11 @@ static int sun4i_i2s_set_chan_cfg(const struct sun4i_i2s 
*i2s,
 }
 
 static int sun8i_i2s_set_chan_cfg(const struct sun4i_i2s *i2s,
- const struct snd_pcm_hw_params *params)
+ unsigned int channels, unsigned int slots,
+ unsigned int slot_width)
 {
-   unsigned int channels = params_channels(params);
-   unsigned int slots = channels;
unsigned int lrck_period;
 
-   if (i2s->slots)
-   slots = i2s->slots;
-
/* Map the channels for playback and capture */
regmap_write(i2s->regmap, SUN8I_I2S_TX_CHAN_MAP_REG, 0x76543210);
regmap_write(i2s->regmap, SUN8I_I2S_RX_CHAN_MAP_REG, 0x76543210);
@@ -467,11 +463,11 @@ static int sun8i_i2s_set_chan_cfg(const struct sun4i_i2s 
*i2s,
case SND_SOC_DAIFMT_DSP_B:
case SND_SOC_DAIFMT_LEFT_J:
case SND_SOC_DAIFMT_RIGHT_J:
-   lrck_period = params_physical_width(params) * slots;
+   lrck_period = slot_width * slots;
break;
 
case SND_SOC_DAIFMT_I2S:
-   lrck_period = params_physical_width(params);
+   lrck_period = slot_width;
break;
 
default:
@@ -490,15 +486,11 @@ static int sun8i_i2s_set_chan_cfg(const struct sun4i_i2s 
*i2s,
 }
 
 static int sun50i_h6_i2s_set_chan_cfg(const struct sun4i_i2s *i2s,
- const struct snd_pcm_hw_params *params)
+ unsigned int channels, unsigned int slots,
+ unsigned int slot_width)
 {
-   unsigned int channels = params_channels(params);
-   unsigned int slots = channels;
unsigned int lrck_period;
 
-   if (i2s->slots)
-   slots = i2s->slots;
-
/* Map the channels for playback and capture */
regmap_write(i2s->regmap, SUN50I_H6_I2S_TX_CHAN_MAP0_REG, 0xFEDCBA98);
regmap_write(i2s->regmap, SUN50I_H6_I2S_TX_CHAN_MAP1_REG, 0x76543210);
@@ -525,11 +517,11 @@ static int sun50i_h6_i2s_set_chan_cfg(const struct 
sun4i_i2s *i2s,
case SND_SOC_DAIFMT_DSP_B:
case SND_SOC_DAIFMT_LEFT_J:
case SND_SOC_DAIFMT_RIGHT_J:
-   lrck_period = params_physical_width(params) * slots;
+   lrck_period = slot_width * slots;
break;
 
case SND_SOC_DAIFMT_I2S:
-   lrck_period = params_physical_width(params);
+   lrck_period = slot_width;
break;
 
default:
@@ -565,7 +557,7 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream 
*substream,
if (i2s->slot_width)
slot_width = i2s->slot_width;
 
-   ret = i2s->variant->set_chan_cfg(i2s, params);
+   ret = i2s->variant->set_chan_cfg(i2s, channels, slots, slot_width);
if 

[linux-sunxi] [PATCH v6 08/14] ASoC: sun4i-i2s: fix coding-style for callback definition

2020-10-03 Thread Clément Péron
Checkpatch script produces warning:
WARNING: function definition argument 'const struct sun4i_i2s *'
should also have an identifier name.

Let's fix this by adding identifier name to get_bclk_parent_rate()
and set_fmt() callback definition.

Signed-off-by: Clément Péron 
---
 sound/soc/sunxi/sun4i-i2s.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index fef68146d648..86266879d4bc 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -180,13 +180,13 @@ struct sun4i_i2s_quirks {
const struct sun4i_i2s_clk_div  *mclk_dividers;
unsigned intnum_mclk_dividers;
 
-   unsigned long (*get_bclk_parent_rate)(const struct sun4i_i2s *);
+   unsigned long (*get_bclk_parent_rate)(const struct sun4i_i2s *i2s);
int (*get_sr)(unsigned int width);
int (*get_wss)(unsigned int width);
int (*set_chan_cfg)(const struct sun4i_i2s *i2s,
unsigned int channels,  unsigned int slots,
unsigned int slot_width);
-   int (*set_fmt)(const struct sun4i_i2s *, unsigned int);
+   int (*set_fmt)(const struct sun4i_i2s *i2s, unsigned int fmt);
 };
 
 struct sun4i_i2s {
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-9-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 07/14] ASoC: sun4i-i2s: Fix setting of FIFO modes

2020-10-03 Thread Clément Péron
From: Samuel Holland 

Because SUN4I_I2S_FIFO_CTRL_REG is volatile, writes done while the
regmap is cache-only are ignored. To work around this, move the
configuration to a callback that runs while the ASoC core has a
runtime PM reference to the device.

Signed-off-by: Samuel Holland 
Reviewed-by: Chen-Yu Tsai 
Signed-off-by: Clément Péron 
---
 sound/soc/sunxi/sun4i-i2s.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index 92671eb94db9..fef68146d648 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -588,6 +588,13 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream 
*substream,
return ret;
}
 
+   /* Set significant bits in our FIFOs */
+   regmap_update_bits(i2s->regmap, SUN4I_I2S_FIFO_CTRL_REG,
+  SUN4I_I2S_FIFO_CTRL_TX_MODE_MASK |
+  SUN4I_I2S_FIFO_CTRL_RX_MODE_MASK,
+  SUN4I_I2S_FIFO_CTRL_TX_MODE(1) |
+  SUN4I_I2S_FIFO_CTRL_RX_MODE(1));
+
switch (params_physical_width(params)) {
case 16:
width = DMA_SLAVE_BUSWIDTH_2_BYTES;
@@ -916,13 +923,6 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, 
unsigned int fmt)
return ret;
}
 
-   /* Set significant bits in our FIFOs */
-   regmap_update_bits(i2s->regmap, SUN4I_I2S_FIFO_CTRL_REG,
-  SUN4I_I2S_FIFO_CTRL_TX_MODE_MASK |
-  SUN4I_I2S_FIFO_CTRL_RX_MODE_MASK,
-  SUN4I_I2S_FIFO_CTRL_TX_MODE(1) |
-  SUN4I_I2S_FIFO_CTRL_RX_MODE(1));
-
i2s->format = fmt;
 
return 0;
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-8-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 11/14] arm64: dts: allwinner: a64: Add I2S2 node

2020-10-03 Thread Clément Péron
From: Marcus Cooper 

Add the I2S2 node connected to the HDMI interface.

Signed-off-by: Jernej Skrabec 
Signed-off-by: Marcus Cooper 
Acked-by: Chen-Yu Tsai 
Signed-off-by: Clément Péron 
---
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi 
b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
index dc238814013c..51cc30e84e26 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -846,6 +846,20 @@ i2s1: i2s@1c22400 {
status = "disabled";
};
 
+   i2s2: i2s@1c22800 {
+   #sound-dai-cells = <0>;
+   compatible = "allwinner,sun50i-a64-i2s",
+"allwinner,sun8i-h3-i2s";
+   reg = <0x01c22800 0x400>;
+   interrupts = ;
+   clocks = < CLK_BUS_I2S2>, < CLK_I2S2>;
+   clock-names = "apb", "mod";
+   resets = < RST_BUS_I2S2>;
+   dma-names = "rx", "tx";
+   dmas = < 27>, < 27>;
+   status = "disabled";
+   };
+
dai: dai@1c22c00 {
#sound-dai-cells = <0>;
compatible = "allwinner,sun50i-a64-codec-i2s";
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-12-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 04/14] ASoC: sun4i-i2s: Set sign extend sample

2020-10-03 Thread Clément Péron
From: Marcus Cooper 

On the newer SoCs such as the H3 and A64 this is set by default
to transfer a 0 after each sample in each slot. However the A10
and A20 SoCs that this driver was developed on had a default
setting where it padded the audio gain with zeros.

This isn't a problem while we have only support for 16bit audio
but with larger sample resolution rates in the pipeline then SEXT
bits should be cleared so that they also pad at the LSB. Without
this the audio gets distorted.

Set sign extend sample for all the sunxi generations even if they
are not affected. This will keep consistency and avoid relying on
default.

Signed-off-by: Marcus Cooper 
Reviewed-by: Chen-Yu Tsai 
Signed-off-by: Clément Péron 
---
 sound/soc/sunxi/sun4i-i2s.c | 17 +
 1 file changed, 17 insertions(+)

diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index 8e497fb3de09..73103673643a 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -48,6 +48,9 @@
 #define SUN4I_I2S_FMT0_FMT_I2S (0 << 0)
 
 #define SUN4I_I2S_FMT1_REG 0x08
+#define SUN4I_I2S_FMT1_REG_SEXT_MASK   BIT(8)
+#define SUN4I_I2S_FMT1_REG_SEXT(sext)  ((sext) << 8)
+
 #define SUN4I_I2S_FIFO_TX_REG  0x0c
 #define SUN4I_I2S_FIFO_RX_REG  0x10
 
@@ -105,6 +108,9 @@
 #define SUN8I_I2S_FMT0_BCLK_POLARITY_INVERTED  (1 << 7)
 #define SUN8I_I2S_FMT0_BCLK_POLARITY_NORMAL(0 << 7)
 
+#define SUN8I_I2S_FMT1_REG_SEXT_MASK   GENMASK(5, 4)
+#define SUN8I_I2S_FMT1_REG_SEXT(sext)  ((sext) << 4)
+
 #define SUN8I_I2S_INT_STA_REG  0x0c
 #define SUN8I_I2S_FIFO_TX_REG  0x20
 
@@ -678,6 +684,7 @@ static int sun4i_i2s_set_soc_fmt(const struct sun4i_i2s 
*i2s,
}
regmap_update_bits(i2s->regmap, SUN4I_I2S_CTRL_REG,
   SUN4I_I2S_CTRL_MODE_MASK, val);
+
return 0;
 }
 
@@ -780,6 +787,11 @@ static int sun8i_i2s_set_soc_fmt(const struct sun4i_i2s 
*i2s,
   SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT,
   val);
 
+   /* Set sign extension to pad out LSB with 0 */
+   regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
+  SUN8I_I2S_FMT1_REG_SEXT_MASK,
+  SUN8I_I2S_FMT1_REG_SEXT(0));
+
return 0;
 }
 
@@ -882,6 +894,11 @@ static int sun50i_h6_i2s_set_soc_fmt(const struct 
sun4i_i2s *i2s,
   SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT,
   val);
 
+   /* Set sign extension to pad out LSB with 0 */
+   regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
+  SUN8I_I2S_FMT1_REG_SEXT_MASK,
+  SUN8I_I2S_FMT1_REG_SEXT(0));
+
return 0;
 }
 
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-5-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 05/14] ASoc: sun4i-i2s: Add 20 and 24 bit support

2020-10-03 Thread Clément Péron
From: Marcus Cooper 

Extend the functionality of the driver to include support of 20 and
24 bits per sample.

Signed-off-by: Marcus Cooper 
Acked-by: Maxime Ripard 
Reviewed-by: Chen-Yu Tsai 
Signed-off-by: Clément Péron 
---
 sound/soc/sunxi/sun4i-i2s.c | 11 +--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index 73103673643a..ba7514849b73 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -592,6 +592,9 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream 
*substream,
case 16:
width = DMA_SLAVE_BUSWIDTH_2_BYTES;
break;
+   case 32:
+   width = DMA_SLAVE_BUSWIDTH_4_BYTES;
+   break;
default:
dev_err(dai->dev, "Unsupported physical sample width: %d\n",
params_physical_width(params));
@@ -1073,6 +1076,10 @@ static int sun4i_i2s_dai_probe(struct snd_soc_dai *dai)
return 0;
 }
 
+#define SUN4I_FORMATS  (SNDRV_PCM_FMTBIT_S16_LE | \
+SNDRV_PCM_FMTBIT_S20_LE | \
+SNDRV_PCM_FMTBIT_S24_LE)
+
 static struct snd_soc_dai_driver sun4i_i2s_dai = {
.probe = sun4i_i2s_dai_probe,
.capture = {
@@ -1080,14 +1087,14 @@ static struct snd_soc_dai_driver sun4i_i2s_dai = {
.channels_min = 1,
.channels_max = 8,
.rates = SNDRV_PCM_RATE_8000_192000,
-   .formats = SNDRV_PCM_FMTBIT_S16_LE,
+   .formats = SUN4I_FORMATS,
},
.playback = {
.stream_name = "Playback",
.channels_min = 1,
.channels_max = 8,
.rates = SNDRV_PCM_RATE_8000_192000,
-   .formats = SNDRV_PCM_FMTBIT_S16_LE,
+   .formats = SUN4I_FORMATS,
},
.ops = _i2s_dai_ops,
.symmetric_rates = 1,
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-6-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 13/14] dt-bindings: sound: sun4i-i2s: Document H3 with missing RX channel possibility

2020-10-03 Thread Clément Péron
Like A83T the Allwinner H3 doesn't have the DMA reception available for
some audio interfaces.

As it's already documented for A83T convert this to an enum and add the H3
interface.

Signed-off-by: Clément Péron 
---
 .../devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml| 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git 
a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml 
b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml
index 606ad2d884a8..a16e37b01e1d 100644
--- a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml
+++ b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml
@@ -70,7 +70,9 @@ allOf:
   properties:
 compatible:
   contains:
-const: allwinner,sun8i-a83t-i2s
+enum:
+  - allwinner,sun8i-a83t-i2s
+  - allwinner,sun8i-h3-i2s
 
 then:
   properties:
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-14-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 10/14] arm64: dts: allwinner: h6: Add I2S1 node

2020-10-03 Thread Clément Péron
From: Jernej Skrabec 

Add Allwinner H6 I2S1 node connected to HDMI interface.

Signed-off-by: Jernej Skrabec 
Signed-off-by: Marcus Cooper 
Acked-by: Chen-Yu Tsai 
Signed-off-by: Clément Péron 
---
 arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 13 +
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi 
b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
index 28c77d6872f6..d915aeb13297 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -609,6 +609,19 @@ mdio: mdio {
};
};
 
+   i2s1: i2s@5091000 {
+   #sound-dai-cells = <0>;
+   compatible = "allwinner,sun50i-h6-i2s";
+   reg = <0x05091000 0x1000>;
+   interrupts = ;
+   clocks = < CLK_BUS_I2S1>, < CLK_I2S1>;
+   clock-names = "apb", "mod";
+   dmas = < 4>, < 4>;
+   resets = < RST_BUS_I2S1>;
+   dma-names = "rx", "tx";
+   status = "disabled";
+   };
+
spdif: spdif@5093000 {
#sound-dai-cells = <0>;
compatible = "allwinner,sun50i-h6-spdif";
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-11-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 09/14] dt-bindings: ASoC: sun4i-i2s: Add H6 compatible

2020-10-03 Thread Clément Péron
From: Jernej Skrabec 

H6 I2S is very similar to H3, except that it supports up to 16 channels
and thus few registers have fields on different position.

Signed-off-by: Jernej Skrabec 
Signed-off-by: Marcus Cooper 
Acked-by: Maxime Ripard 
Acked-by: Rob Herring 
Acked-by: Chen-Yu Tsai 
Signed-off-by: Clément Péron 
---
 .../devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml  | 2 ++
 1 file changed, 2 insertions(+)

diff --git 
a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml 
b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml
index 112ae00d63c1..606ad2d884a8 100644
--- a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml
+++ b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml
@@ -24,6 +24,7 @@ properties:
   - items:
   - const: allwinner,sun50i-a64-i2s
   - const: allwinner,sun8i-h3-i2s
+  - const: allwinner,sun50i-h6-i2s
 
   reg:
 maxItems: 1
@@ -59,6 +60,7 @@ allOf:
   - allwinner,sun8i-a83t-i2s
   - allwinner,sun8i-h3-i2s
   - allwinner,sun50i-a64-codec-i2s
+  - allwinner,sun50i-h6-i2s
 
 then:
   required:
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-10-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 14/14] arm: dts: sunxi: h3/h5: Add I2S2 node

2020-10-03 Thread Clément Péron
From: Marcus Cooper 

Add H3/H5 I2S2 node connected to the HDMI interface.

Signed-off-by: Jernej Skrabec 
Signed-off-by: Marcus Cooper 
Acked-by: Chen-Yu Tsai 
Signed-off-by: Clément Péron 
---
 arch/arm/boot/dts/sunxi-h3-h5.dtsi | 13 +
 1 file changed, 13 insertions(+)

diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi 
b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
index 22d533d18992..9be13378d4df 100644
--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
@@ -662,6 +662,19 @@ i2s1: i2s@1c22400 {
status = "disabled";
};
 
+   i2s2: i2s@1c22800 {
+   #sound-dai-cells = <0>;
+   compatible = "allwinner,sun8i-h3-i2s";
+   reg = <0x01c22800 0x400>;
+   interrupts = ;
+   clocks = < CLK_BUS_I2S2>, < CLK_I2S2>;
+   clock-names = "apb", "mod";
+   dmas = < 27>;
+   resets = < RST_BUS_I2S2>;
+   dma-names = "tx";
+   status = "disabled";
+   };
+
codec: codec@1c22c00 {
#sound-dai-cells = <0>;
compatible = "allwinner,sun8i-h3-codec";
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-15-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 12/14] arm64: defconfig: Enable Allwinner i2s driver

2020-10-03 Thread Clément Péron
Enable Allwinner I2S driver for arm64 defconfig.

Signed-off-by: Clément Péron 
---
 arch/arm64/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 63003ec116ee..9a3c3bbe60e4 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -696,6 +696,7 @@ CONFIG_SND_SOC_ROCKCHIP_RT5645=m
 CONFIG_SND_SOC_RK3399_GRU_SOUND=m
 CONFIG_SND_SOC_SAMSUNG=y
 CONFIG_SND_SOC_RCAR=m
+CONFIG_SND_SUN4I_I2S=m
 CONFIG_SND_SUN4I_SPDIF=m
 CONFIG_SND_SOC_TEGRA=m
 CONFIG_SND_SOC_TEGRA210_AHUB=m
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-13-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 00/14] Add Allwinner H3/H5/H6/A64 HDMI audio

2020-10-03 Thread Clément Péron
Hi,

To avoid using set-tdm property of the simple-soundcard we will introduce
a specific soundcard for Allwinner HDMI later.

So I have dropped the simple-soundcard, the title of the serie is no more
relevent...

Regards,
Clement

Change since v5:
- Drop HDMI simple soundcard
- Collect Chen-Yu Tsai tags
- Configure channels from 9 to 15.
- Remove DMA RX for H3/H5
- Fix Documentation for H3/H5

Change since v4:
- add more comment on get_wss() and set_channel_cfg() patch
- merge soundcard and DAI HDMI patches

Change since v3:
- add Samuel Holland patch to reconfigure FIFO_TX_REG when suspend is enabled
- readd inversion to H6 LRCK sun50i_h6_i2s_set_soc_fmt()
- Fix get_wss() for sun4i
- Add a commit to fix checkpatch warning

Change since v2:
- rebase on next-20200918
- drop revert LRCK polarity patch
- readd simple-audio-card,frame-inversion in dts
- Add patch for changing set_chan_cfg params

Change since v1:
- rebase on next-20200828
- add revert LRCK polarity
- remove all simple-audio-card,frame-inversion in dts
- add Ondrej patches for Orange Pi board
- Add arm64 defconfig patch

*** BLURB HERE ***

Clément Péron (6):
  ASoC: sun4i-i2s: Change set_chan_cfg() params
  ASoC: sun4i-i2s: Change get_sr() and get_wss() to be more explicit
  ASoC: sun4i-i2s: Fix sun8i volatile regs
  ASoC: sun4i-i2s: fix coding-style for callback definition
  arm64: defconfig: Enable Allwinner i2s driver
  dt-bindings: sound: sun4i-i2s: Document H3 with missing RX channel
possibility

Jernej Skrabec (3):
  ASoC: sun4i-i2s: Add support for H6 I2S
  dt-bindings: ASoC: sun4i-i2s: Add H6 compatible
  arm64: dts: allwinner: h6: Add I2S1 node

Marcus Cooper (4):
  ASoC: sun4i-i2s: Set sign extend sample
  ASoc: sun4i-i2s: Add 20 and 24 bit support
  arm64: dts: allwinner: a64: Add I2S2 node
  arm: dts: sunxi: h3/h5: Add I2S2 node

Samuel Holland (1):
  ASoC: sun4i-i2s: Fix setting of FIFO modes

 .../sound/allwinner,sun4i-a10-i2s.yaml|   6 +-
 arch/arm/boot/dts/sunxi-h3-h5.dtsi|  13 +
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi |  14 +
 arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi  |  13 +
 arch/arm64/configs/defconfig  |   1 +
 sound/soc/sunxi/sun4i-i2s.c   | 376 +++---
 6 files changed, 368 insertions(+), 55 deletions(-)

-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/20201003141950.455829-1-peron.clem%40gmail.com.


[linux-sunxi] [PATCH v6 01/14] ASoC: sun4i-i2s: Add support for H6 I2S

2020-10-03 Thread Clément Péron
From: Jernej Skrabec 

H6 I2S is very similar to that in H3, except it supports up to 16
channels.

Signed-off-by: Jernej Skrabec 
Signed-off-by: Marcus Cooper 
Reviewed-by: Chen-Yu Tsai 
Signed-off-by: Clément Péron 
---
 sound/soc/sunxi/sun4i-i2s.c | 226 
 1 file changed, 226 insertions(+)

diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index f23ff29e7c1d..c5ccd423e6d3 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -124,6 +124,21 @@
 #define SUN8I_I2S_RX_CHAN_SEL_REG  0x54
 #define SUN8I_I2S_RX_CHAN_MAP_REG  0x58
 
+/* Defines required for sun50i-h6 support */
+#define SUN50I_H6_I2S_TX_CHAN_SEL_OFFSET_MASK  GENMASK(21, 20)
+#define SUN50I_H6_I2S_TX_CHAN_SEL_OFFSET(offset)   ((offset) << 20)
+#define SUN50I_H6_I2S_TX_CHAN_SEL_MASK GENMASK(19, 16)
+#define SUN50I_H6_I2S_TX_CHAN_SEL(chan)((chan - 1) << 16)
+#define SUN50I_H6_I2S_TX_CHAN_EN_MASK  GENMASK(15, 0)
+#define SUN50I_H6_I2S_TX_CHAN_EN(num_chan) (((1 << num_chan) - 1))
+
+#define SUN50I_H6_I2S_TX_CHAN_MAP0_REG 0x44
+#define SUN50I_H6_I2S_TX_CHAN_MAP1_REG 0x48
+
+#define SUN50I_H6_I2S_RX_CHAN_SEL_REG  0x64
+#define SUN50I_H6_I2S_RX_CHAN_MAP0_REG 0x68
+#define SUN50I_H6_I2S_RX_CHAN_MAP1_REG 0x6C
+
 struct sun4i_i2s;
 
 /**
@@ -474,6 +489,64 @@ static int sun8i_i2s_set_chan_cfg(const struct sun4i_i2s 
*i2s,
return 0;
 }
 
+static int sun50i_h6_i2s_set_chan_cfg(const struct sun4i_i2s *i2s,
+ const struct snd_pcm_hw_params *params)
+{
+   unsigned int channels = params_channels(params);
+   unsigned int slots = channels;
+   unsigned int lrck_period;
+
+   if (i2s->slots)
+   slots = i2s->slots;
+
+   /* Map the channels for playback and capture */
+   regmap_write(i2s->regmap, SUN50I_H6_I2S_TX_CHAN_MAP0_REG, 0xFEDCBA98);
+   regmap_write(i2s->regmap, SUN50I_H6_I2S_TX_CHAN_MAP1_REG, 0x76543210);
+   regmap_write(i2s->regmap, SUN50I_H6_I2S_RX_CHAN_MAP0_REG, 0xFEDCBA98);
+   regmap_write(i2s->regmap, SUN50I_H6_I2S_RX_CHAN_MAP1_REG, 0x76543210);
+
+   /* Configure the channels */
+   regmap_update_bits(i2s->regmap, SUN8I_I2S_TX_CHAN_SEL_REG,
+  SUN50I_H6_I2S_TX_CHAN_SEL_MASK,
+  SUN50I_H6_I2S_TX_CHAN_SEL(channels));
+   regmap_update_bits(i2s->regmap, SUN50I_H6_I2S_RX_CHAN_SEL_REG,
+  SUN50I_H6_I2S_TX_CHAN_SEL_MASK,
+  SUN50I_H6_I2S_TX_CHAN_SEL(channels));
+
+   regmap_update_bits(i2s->regmap, SUN8I_I2S_CHAN_CFG_REG,
+  SUN8I_I2S_CHAN_CFG_TX_SLOT_NUM_MASK,
+  SUN8I_I2S_CHAN_CFG_TX_SLOT_NUM(channels));
+   regmap_update_bits(i2s->regmap, SUN8I_I2S_CHAN_CFG_REG,
+  SUN8I_I2S_CHAN_CFG_RX_SLOT_NUM_MASK,
+  SUN8I_I2S_CHAN_CFG_RX_SLOT_NUM(channels));
+
+   switch (i2s->format & SND_SOC_DAIFMT_FORMAT_MASK) {
+   case SND_SOC_DAIFMT_DSP_A:
+   case SND_SOC_DAIFMT_DSP_B:
+   case SND_SOC_DAIFMT_LEFT_J:
+   case SND_SOC_DAIFMT_RIGHT_J:
+   lrck_period = params_physical_width(params) * slots;
+   break;
+
+   case SND_SOC_DAIFMT_I2S:
+   lrck_period = params_physical_width(params);
+   break;
+
+   default:
+   return -EINVAL;
+   }
+
+   regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT0_REG,
+  SUN8I_I2S_FMT0_LRCK_PERIOD_MASK,
+  SUN8I_I2S_FMT0_LRCK_PERIOD(lrck_period));
+
+   regmap_update_bits(i2s->regmap, SUN8I_I2S_TX_CHAN_SEL_REG,
+  SUN50I_H6_I2S_TX_CHAN_EN_MASK,
+  SUN50I_H6_I2S_TX_CHAN_EN(channels));
+
+   return 0;
+}
+
 static int sun4i_i2s_hw_params(struct snd_pcm_substream *substream,
   struct snd_pcm_hw_params *params,
   struct snd_soc_dai *dai)
@@ -699,6 +772,108 @@ static int sun8i_i2s_set_soc_fmt(const struct sun4i_i2s 
*i2s,
return 0;
 }
 
+static int sun50i_h6_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
+unsigned int fmt)
+{
+   u32 mode, val;
+   u8 offset;
+
+   /*
+* DAI clock polarity
+*
+* The setup for LRCK contradicts the datasheet, but under a
+* scope it's clear that the LRCK polarity is reversed
+* compared to the expected polarity on the bus.
+*/
+   switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
+   case SND_SOC_DAIFMT_IB_IF:
+   /* Invert both clocks */
+   val = SUN8I_I2S_FMT0_BCLK_POLARITY_INVERTED;
+   break;
+   case SND_SOC_DAIFMT_IB_NF:
+   /* Invert bit clock */
+   val = SUN8I_I2S_FMT0_BCLK_POLARITY_INVERTED |
+ SUN8I_I2S_FMT0_LRCLK_POLARITY_INVERTED;
+ 

Re: [linux-sunxi] Re: [PATCH 0/7] Pine64 PineCube support

2020-10-03 Thread Clément Péron
Hi Icenowy,

On Sat, 3 Oct 2020 at 12:39, Icenowy Zheng  wrote:
>
>
>
> 于 2020年10月3日 GMT+08:00 下午6:28:03, "Clément Péron"  写到:
> >Hi,
> >
> >I was running dtbs_check and found this series introduced new warnings.
> >
> >  DTC arch/arm/boot/dts/sun8i-s3-pinecube.dtb
> >  DTC arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml
> >  CHECK   arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible: ['allwinner,sun8i-v3s-system-control',
> >'allwinner,sun8i-h3-system-control'] is not valid under any of the
> >given schemas (Possible causes of the failure):
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible: Additional items are not allowed
> >('allwinner,sun8i-h3-system-control' was unexpected)
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun4i-a10-sram-controller' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun4i-a10-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun5i-a13-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun7i-a20-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun8i-a23-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun8i-h3-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun8i-r40-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun50i-a64-sram-controller' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun50i-a64-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun50i-h5-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,sun50i-h6-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:0: 'allwinner,suniv-f1c100s-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:1: 'allwinner,sun4i-a10-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:1: 'allwinner,sun4i-a10-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:1: 'allwinner,sun50i-a64-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
> >compatible:1: 'allwinner,sun4i-a10-system-control' was expected
> >
> >From schema:
> >/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
> >/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: camera@1cb4000: port:
> >'#address-cells', '#size-cells' do not match any of the regexes:
> >'pinctrl-[0-9]+'
> >From schema:
> >/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
>
> Is this broken schema?

I think the #address-cells', '#size-cells' are not required here.
I had a quick look at other csi and nobody seems to specify this.

Just FYI This is what I did.
pip3 install git+https://github.com/devicetree-org/dt-schema.git@master
ARCH=arm make sunxi_defconfig
ARCH=arm make -j8 dtbs_check

Regards,
Clement

> >
> >And also some other boards
> >/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
> >system-control@1c0: compatible:
> >['allwinner,sun8i-v3s-system-control',
> >'allwinner,sun8i-h3-system-control'] is not valid under any of the
> >given schemas (Possible causes of the failure):
> >/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
> >system-control@1c0: compatible: Additional items are not allowed
> >('allwinner,sun8i-h3-system-control' was unexpected)
> >/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
> >system-control@1c0: compatible:0:
> >'allwinner,sun4i-a10-sram-controller' was expected
> >/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
> >system-control@1c0: compatible:0:
> >'allwinner,sun4i-a10-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
> >system-control@1c0: compatible:0:
> >'allwinner,sun5i-a13-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
> >system-control@1c0: compatible:0:
> >'allwinner,sun7i-a20-system-control' was expected
> >/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
> >system-control@1c0: compatible:0:
> >'allwinner,sun8i-a23-system-control' was expected
> 

Re: [linux-sunxi] Re: [PATCH 0/7] Pine64 PineCube support

2020-10-03 Thread Icenowy Zheng



于 2020年10月3日 GMT+08:00 下午6:28:03, "Clément Péron"  写到:
>Hi,
>
>I was running dtbs_check and found this series introduced new warnings.
>
>  DTC arch/arm/boot/dts/sun8i-s3-pinecube.dtb
>  DTC arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml
>  CHECK   arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible: ['allwinner,sun8i-v3s-system-control',
>'allwinner,sun8i-h3-system-control'] is not valid under any of the
>given schemas (Possible causes of the failure):
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible: Additional items are not allowed
>('allwinner,sun8i-h3-system-control' was unexpected)
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun4i-a10-sram-controller' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun4i-a10-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun5i-a13-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun7i-a20-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun8i-a23-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun8i-h3-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun8i-r40-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun50i-a64-sram-controller' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun50i-a64-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun50i-h5-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,sun50i-h6-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:0: 'allwinner,suniv-f1c100s-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:1: 'allwinner,sun4i-a10-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:1: 'allwinner,sun4i-a10-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:1: 'allwinner,sun50i-a64-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
>compatible:1: 'allwinner,sun4i-a10-system-control' was expected
>
>From schema:
>/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
>/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: camera@1cb4000: port:
>'#address-cells', '#size-cells' do not match any of the regexes:
>'pinctrl-[0-9]+'
>From schema:
>/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml

Is this broken schema?

>
>And also some other boards
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:
>['allwinner,sun8i-v3s-system-control',
>'allwinner,sun8i-h3-system-control'] is not valid under any of the
>given schemas (Possible causes of the failure):
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible: Additional items are not allowed
>('allwinner,sun8i-h3-system-control' was unexpected)
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:0:
>'allwinner,sun4i-a10-sram-controller' was expected
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:0:
>'allwinner,sun4i-a10-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:0:
>'allwinner,sun5i-a13-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:0:
>'allwinner,sun7i-a20-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:0:
>'allwinner,sun8i-a23-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:0:
>'allwinner,sun8i-h3-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:0:
>'allwinner,sun8i-r40-system-control' was expected
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:0:
>'allwinner,sun50i-a64-sram-controller' was expected
>/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
>system-control@1c0: compatible:0:

Re: [linux-sunxi] Re: [PATCH 0/7] Pine64 PineCube support

2020-10-03 Thread Clément Péron
> On Fri, 25 Sep 2020 at 17:12, Maxime Ripard  wrote:
> >
> > Hi,
> >
> > On Wed, Sep 23, 2020 at 08:57:02AM +0800, Icenowy Zheng wrote:
> > > Pine64 PineCube is an IP camera based on Allwinner S3 chip.
> > >
> > > This patchset tries to add support for it.
> > >
> > > In order to make sure the system do not hang when camera is brought up,
> > > a fix to AXP209 driver is needed (sent individually), otherwise the
> > > system will hang because it changes the voltage of LDO2 when LDO4
> > > tweaking.
> >
> > Queued all the patches for 5.11

I was on top of sunxi sunxi/for-next branch

Maybe I'm missing some dt-bindings merged in another tree.

Sorry if it's a false warning.

Regards,
Clement

> >
> > > Icenowy Zheng (7):
> > >   ARM: dts: sun8i: V3/V3s/S3/S3L: add Ethernet support
> > >   ARM: dts: sun8i: V3/V3s/S3/S3L: add pinctrl for UART2 RX/TX
> > >   ARM: dts: sun8i: V3/V3s/S3/S3L: add CSI1 device node
> > >   ARM: dts: sun8i: V3/V3s/S3/S3L: add pinctrl for 8-bit parallel CSI
> > >   ARM: dts: sun8i: V3/V3s/S3/S3L: add pinctrl for I2C1 at PE bank
> > >   dt-bindings: arm: sunxi: add Pine64 PineCube binding
> > >   ARM: dts: sun8i: s3l: add support for Pine64 PineCube IP camera
> >
> > However, I guess for the next patches to the v3s DTSI we should just
> > have a simpler prefix (like v3), it's really taking a lot of characters
> > here :)
> >
> > Maxime
> >
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "linux-sunxi" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to linux-sunxi+unsubscr...@googlegroups.com.
> > To view this discussion on the web, visit 
> > https://groups.google.com/d/msgid/linux-sunxi/20200925151241.kfmytlff4grswtzh%40gilmour.lan.

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/CAJiuCcdTTtyNjMnO7KqpuGC9gD9YtHtHd1oxxQPBB79kJ6okYA%40mail.gmail.com.


Re: [linux-sunxi] Re: [PATCH 0/7] Pine64 PineCube support

2020-10-03 Thread Clément Péron
Hi,

I was running dtbs_check and found this series introduced new warnings.

  DTC arch/arm/boot/dts/sun8i-s3-pinecube.dtb
  DTC arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml
  CHECK   arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible: ['allwinner,sun8i-v3s-system-control',
'allwinner,sun8i-h3-system-control'] is not valid under any of the
given schemas (Possible causes of the failure):
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible: Additional items are not allowed
('allwinner,sun8i-h3-system-control' was unexpected)
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun4i-a10-sram-controller' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun5i-a13-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun7i-a20-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun8i-a23-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun8i-h3-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun8i-r40-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun50i-a64-sram-controller' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun50i-h5-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,sun50i-h6-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:0: 'allwinner,suniv-f1c100s-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:1: 'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:1: 'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:1: 'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: system-control@1c0:
compatible:1: 'allwinner,sun4i-a10-system-control' was expected

>From schema: 
>/Documentation/devicetree/bindings/sram/allwinner,sun4i-a10-system-control.yaml
/arch/arm/boot/dts/sun8i-s3-pinecube.dt.yaml: camera@1cb4000: port:
'#address-cells', '#size-cells' do not match any of the regexes:
'pinctrl-[0-9]+'
>From schema: 
>/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml

And also some other boards
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:
['allwinner,sun8i-v3s-system-control',
'allwinner,sun8i-h3-system-control'] is not valid under any of the
given schemas (Possible causes of the failure):
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible: Additional items are not allowed
('allwinner,sun8i-h3-system-control' was unexpected)
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun4i-a10-sram-controller' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun4i-a10-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun5i-a13-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun7i-a20-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun8i-a23-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun8i-h3-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun8i-r40-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun50i-a64-sram-controller' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun50i-a64-system-control' was expected
/arch/arm/boot/dts/sun8i-s3-lichee-zero-plus.dt.yaml:
system-control@1c0: compatible:0:
'allwinner,sun50i-h5-system-control' was expected

Re: [linux-sunxi] [PATCH v5 09/20] arm64: dts: allwinner: h6: Add DAI node and soundcard for HDMI

2020-10-03 Thread Clément Péron
Hi,

On Fri, 2 Oct 2020 at 18:24, Maxime Ripard  wrote:
>
> On Fri, Oct 02, 2020 at 06:01:21PM +0200, Clément Péron wrote:
> > Hi Chen-Yu,
> >
> > On Mon, 28 Sep 2020 at 07:42, Chen-Yu Tsai  wrote:
> > >
> > > On Mon, Sep 28, 2020 at 1:32 PM Chen-Yu Tsai  wrote:
> > > >
> > > > On Mon, Sep 28, 2020 at 3:29 AM Clément Péron  
> > > > wrote:
> > > > >
> > > > > From: Jernej Skrabec 
> > > > >
> > > > > Add the I2S node used by the HDMI and a simple-soundcard to
> > > > > link audio between HDMI and I2S.
> > > > >
> > > > > Note that the HDMI codec requires an inverted frame clock and
> > > > > a fixed I2S width. As there is no such option for I2S we use
> > > > > TDM property of the simple-soundcard to do that.
> > > > >
> > > > > Signed-off-by: Jernej Skrabec 
> > > > > Signed-off-by: Marcus Cooper 
> > > > > Signed-off-by: Clément Péron 
> > > > > ---
> > > > >  arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 33 
> > > > > 
> > > > >  1 file changed, 33 insertions(+)
> > > > >
> > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi 
> > > > > b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
> > > > > index 28c77d6872f6..a8853ee7885a 100644
> > > > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
> > > > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
> > > > > @@ -67,6 +67,25 @@ de: display-engine {
> > > > > status = "disabled";
> > > > > };
> > > > >
> > > > > +   hdmi_sound: hdmi-sound {
> > > > > +   compatible = "simple-audio-card";
> > > > > +   simple-audio-card,format = "i2s";
> > > > > +   simple-audio-card,name = "sun50i-h6-hdmi";
> > > > > +   simple-audio-card,mclk-fs = <128>;
> > > > > +   simple-audio-card,frame-inversion;
> > > > > +   status = "disabled";
> > > > > +
> > > > > +   simple-audio-card,codec {
> > > > > +   sound-dai = <>;
> > > > > +   };
> > > > > +
> > > > > +   simple-audio-card,cpu {
> > > > > +   sound-dai = <>;
> > > > > +   dai-tdm-slot-num = <2>;
> > > >
> > > > Doesn't this end up limiting the number of audio channels HDMI can 
> > > > carry?
> > > > AFAICT the TDM properties are all optional, so just leave it out.
> > > >
> > > > Same goes for the other two patches.
> > > >
> > > > > +   dai-tdm-slot-width = <32>;
> > > > > +   };
> > > > > +   };
> > > > > +
> > > > > osc24M: osc24M_clk {
> > > > > #clock-cells = <0>;
> > > > > compatible = "fixed-clock";
> > > > > @@ -609,6 +628,19 @@ mdio: mdio {
> > > > > };
> > > > > };
> > > > >
> > > > > +   i2s1: i2s@5091000 {
> > > > > +   #sound-dai-cells = <0>;
> > > > > +   compatible = "allwinner,sun50i-h6-i2s";
> > > > > +   reg = <0x05091000 0x1000>;
> > > > > +   interrupts = ;
> > > > > +   clocks = < CLK_BUS_I2S1>, < CLK_I2S1>;
> > > > > +   clock-names = "apb", "mod";
> > > > > +   dmas = < 4>, < 4>;
> > > > > +   resets = < RST_BUS_I2S1>;
> > > > > +   dma-names = "rx", "tx";
> > >
> > > Sorry, missed this one.
> > >
> > > Given that usage for this interface is transmt only, and there is no
> > > RX DRQ number assigned to it, you should drop the RX DMA number and name.
> >
> > Indeed if there is no DRQ number assigned we shouldn't have it in the
> > device-tree

After reviewing the H6 User Manual it seems to be assigned :
page 269 3.10.3.3 DRQ TYPE
port 4 => I2S/PCM1-RX /  I2S/PCM1-TX
Same for A64
But indeed it's not mapped for H5.

I will fix the yaml for H3/H5 but not for A64/H6.

Regards,
Clement


> >
> > but Samuel told me that the `make dtbs_check` reports:
> >
> > i2s@1c22800: dma-names:0: 'rx' was expected
> > i2s@1c22800: dma-names: ['tx'] is too short
> > i2s@1c22800: dmas: [[28, 27]] is too short
> >
> > Should I fix the YAML so?
>
> Yep :)
>
> Maxime

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/CAJiuCccfJP4VTrpVN0ez900zWZSUbP703Hx2qa-NKdGrXwiFyQ%40mail.gmail.com.