2017-03-23 16:53:52

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH 0/8] pinctrl: meson: add audio output pins

This patchset adds the pinctrl definition and the related device-tree
bindings of the i2s output and spdif output pins on the meson gxbb and
gxl SoCs.

This is part of the ongoing work to bring audio output suppot on the
meson family. It was tested on the gxbb p200 and gxl p230.

Jerome Brunet (8):
pinctrl: meson: gxbb: add i2s output pins
pinctrl: meson: gxbb: add spdif output pins
pinctrl: meson: gxl: add i2s output pins
pinctrl: meson: gxl: add spdif output pins
ARM64: dts: meson-gxbb: add i2s output pins
ARM64: dts: meson-gxbb: add spdif output pins
ARM64: dts: meson-gxl: add i2s output pins
ARM64: dts: meson-gxl: add spdif output pins

arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 84 +++++++++++++++++++++++++++++
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 83 ++++++++++++++++++++++++++++
drivers/pinctrl/meson/pinctrl-meson-gxbb.c | 49 +++++++++++++++++
drivers/pinctrl/meson/pinctrl-meson-gxl.c | 49 +++++++++++++++++
4 files changed, 265 insertions(+)

--
2.9.3


2017-03-23 16:51:38

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH 1/8] pinctrl: meson: gxbb: add i2s output pins

Signed-off-by: Jerome Brunet <[email protected]>
---
drivers/pinctrl/meson/pinctrl-meson-gxbb.c | 31 ++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
index 7671424d46cb..8d5dd4772042 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
@@ -236,6 +236,10 @@ static const unsigned int hdmi_hpd_pins[] = { PIN(GPIOH_0, EE_OFF) };
static const unsigned int hdmi_sda_pins[] = { PIN(GPIOH_1, EE_OFF) };
static const unsigned int hdmi_scl_pins[] = { PIN(GPIOH_2, EE_OFF) };

+static const unsigned int i2s_out_ch23_y_pins[] = { PIN(GPIOY_8, EE_OFF) };
+static const unsigned int i2s_out_ch45_y_pins[] = { PIN(GPIOY_9, EE_OFF) };
+static const unsigned int i2s_out_ch67_y_pins[] = { PIN(GPIOY_10, EE_OFF) };
+
static const struct pinctrl_pin_desc meson_gxbb_aobus_pins[] = {
MESON_PIN(GPIOAO_0, 0),
MESON_PIN(GPIOAO_1, 0),
@@ -274,6 +278,13 @@ static const unsigned int pwm_ao_a_6_pins[] = { PIN(GPIOAO_6, 0) };
static const unsigned int pwm_ao_a_12_pins[] = { PIN(GPIOAO_12, 0) };
static const unsigned int pwm_ao_b_pins[] = { PIN(GPIOAO_13, 0) };

+static const unsigned int i2s_am_clk_pins[] = { PIN(GPIOAO_8, 0) };
+static const unsigned int i2s_out_ao_clk_pins[] = { PIN(GPIOAO_9, 0) };
+static const unsigned int i2s_out_lr_clk_pins[] = { PIN(GPIOAO_10, 0) };
+static const unsigned int i2s_out_ch01_ao_pins[] = { PIN(GPIOAO_11, 0) };
+static const unsigned int i2s_out_ch23_ao_pins[] = { PIN(GPIOAO_12, 0) };
+static const unsigned int i2s_out_ch45_ao_pins[] = { PIN(GPIOAO_13, 0) };
+
static struct meson_pmx_group meson_gxbb_periphs_groups[] = {
GPIO_GROUP(GPIOZ_0, EE_OFF),
GPIO_GROUP(GPIOZ_1, EE_OFF),
@@ -426,6 +437,9 @@ static struct meson_pmx_group meson_gxbb_periphs_groups[] = {
GROUP(uart_rx_c, 1, 16),
GROUP(pwm_a_y, 1, 21),
GROUP(pwm_f_y, 1, 20),
+ GROUP(i2s_out_ch23_y, 1, 5),
+ GROUP(i2s_out_ch45_y, 1, 6),
+ GROUP(i2s_out_ch67_y, 1, 7),

/* Bank Z */
GROUP(eth_mdio, 6, 1),
@@ -523,6 +537,12 @@ static struct meson_pmx_group meson_gxbb_aobus_groups[] = {
GROUP(pwm_ao_a_6, 0, 18),
GROUP(pwm_ao_a_12, 0, 17),
GROUP(pwm_ao_b, 0, 3),
+ GROUP(i2s_am_clk, 0, 30),
+ GROUP(i2s_out_ao_clk, 0, 29),
+ GROUP(i2s_out_lr_clk, 0, 28),
+ GROUP(i2s_out_ch01_ao, 0, 27),
+ GROUP(i2s_out_ch23_ao, 1, 0),
+ GROUP(i2s_out_ch45_ao, 1, 1),
};

static const char * const gpio_periphs_groups[] = {
@@ -652,6 +672,10 @@ static const char * const hdmi_i2c_groups[] = {
"hdmi_sda", "hdmi_scl",
};

+static const char * const i2s_out_groups[] = {
+ "i2s_out_ch23_y", "i2s_out_ch45_y", "i2s_out_ch67_y",
+};
+
static const char * const gpio_aobus_groups[] = {
"GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4",
"GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9",
@@ -694,6 +718,11 @@ static const char * const pwm_ao_b_groups[] = {
"pwm_ao_b",
};

+static const char * const i2s_out_ao_groups[] = {
+ "i2s_am_clk", "i2s_out_ao_clk", "i2s_out_lr_clk",
+ "i2s_out_ch01_ao", "i2s_out_ch23_ao", "i2s_out_ch45_ao",
+};
+
static struct meson_pmx_func meson_gxbb_periphs_functions[] = {
FUNCTION(gpio_periphs),
FUNCTION(emmc),
@@ -717,6 +746,7 @@ static struct meson_pmx_func meson_gxbb_periphs_functions[] = {
FUNCTION(pwm_f_y),
FUNCTION(hdmi_hpd),
FUNCTION(hdmi_i2c),
+ FUNCTION(i2s_out),
};

static struct meson_pmx_func meson_gxbb_aobus_functions[] = {
@@ -730,6 +760,7 @@ static struct meson_pmx_func meson_gxbb_aobus_functions[] = {
FUNCTION(pwm_ao_a_6),
FUNCTION(pwm_ao_a_12),
FUNCTION(pwm_ao_b),
+ FUNCTION(i2s_out_ao),
};

static struct meson_bank meson_gxbb_periphs_banks[] = {
--
2.9.3

2017-03-23 16:51:37

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH 2/8] pinctrl: meson: gxbb: add spdif output pins

Signed-off-by: Jerome Brunet <[email protected]>
---
drivers/pinctrl/meson/pinctrl-meson-gxbb.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
index 8d5dd4772042..9bae2e3968af 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
@@ -240,6 +240,8 @@ static const unsigned int i2s_out_ch23_y_pins[] = { PIN(GPIOY_8, EE_OFF) };
static const unsigned int i2s_out_ch45_y_pins[] = { PIN(GPIOY_9, EE_OFF) };
static const unsigned int i2s_out_ch67_y_pins[] = { PIN(GPIOY_10, EE_OFF) };

+static const unsigned int spdif_out_y_pins[] = { PIN(GPIOY_12, EE_OFF) };
+
static const struct pinctrl_pin_desc meson_gxbb_aobus_pins[] = {
MESON_PIN(GPIOAO_0, 0),
MESON_PIN(GPIOAO_1, 0),
@@ -285,6 +287,9 @@ static const unsigned int i2s_out_ch01_ao_pins[] = { PIN(GPIOAO_11, 0) };
static const unsigned int i2s_out_ch23_ao_pins[] = { PIN(GPIOAO_12, 0) };
static const unsigned int i2s_out_ch45_ao_pins[] = { PIN(GPIOAO_13, 0) };

+static const unsigned int spdif_out_ao_6_pins[] = { PIN(GPIOAO_6, 0) };
+static const unsigned int spdif_out_ao_13_pins[] = { PIN(GPIOAO_13, 0) };
+
static struct meson_pmx_group meson_gxbb_periphs_groups[] = {
GPIO_GROUP(GPIOZ_0, EE_OFF),
GPIO_GROUP(GPIOZ_1, EE_OFF),
@@ -440,6 +445,7 @@ static struct meson_pmx_group meson_gxbb_periphs_groups[] = {
GROUP(i2s_out_ch23_y, 1, 5),
GROUP(i2s_out_ch45_y, 1, 6),
GROUP(i2s_out_ch67_y, 1, 7),
+ GROUP(spdif_out_y, 1, 9),

/* Bank Z */
GROUP(eth_mdio, 6, 1),
@@ -543,6 +549,8 @@ static struct meson_pmx_group meson_gxbb_aobus_groups[] = {
GROUP(i2s_out_ch01_ao, 0, 27),
GROUP(i2s_out_ch23_ao, 1, 0),
GROUP(i2s_out_ch45_ao, 1, 1),
+ GROUP(spdif_out_ao_6, 0, 16),
+ GROUP(spdif_out_ao_13, 0, 4),
};

static const char * const gpio_periphs_groups[] = {
@@ -676,6 +684,10 @@ static const char * const i2s_out_groups[] = {
"i2s_out_ch23_y", "i2s_out_ch45_y", "i2s_out_ch67_y",
};

+static const char * const spdif_out_groups[] = {
+ "spdif_out_y",
+};
+
static const char * const gpio_aobus_groups[] = {
"GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4",
"GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9",
@@ -723,6 +735,10 @@ static const char * const i2s_out_ao_groups[] = {
"i2s_out_ch01_ao", "i2s_out_ch23_ao", "i2s_out_ch45_ao",
};

+static const char * const spdif_out_ao_groups[] = {
+ "spdif_out_ao_6", "spdif_out_ao_13",
+};
+
static struct meson_pmx_func meson_gxbb_periphs_functions[] = {
FUNCTION(gpio_periphs),
FUNCTION(emmc),
@@ -747,6 +763,7 @@ static struct meson_pmx_func meson_gxbb_periphs_functions[] = {
FUNCTION(hdmi_hpd),
FUNCTION(hdmi_i2c),
FUNCTION(i2s_out),
+ FUNCTION(spdif_out),
};

static struct meson_pmx_func meson_gxbb_aobus_functions[] = {
@@ -761,6 +778,7 @@ static struct meson_pmx_func meson_gxbb_aobus_functions[] = {
FUNCTION(pwm_ao_a_12),
FUNCTION(pwm_ao_b),
FUNCTION(i2s_out_ao),
+ FUNCTION(spdif_out_ao),
};

static struct meson_bank meson_gxbb_periphs_banks[] = {
--
2.9.3

2017-03-23 16:51:35

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH 3/8] pinctrl: meson: gxl: add i2s output pins

Signed-off-by: Jerome Brunet <[email protected]>
---
drivers/pinctrl/meson/pinctrl-meson-gxl.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxl.c b/drivers/pinctrl/meson/pinctrl-meson-gxl.c
index a0a7936f8f0d..a022a9e49113 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-gxl.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-gxl.c
@@ -212,6 +212,14 @@ static const unsigned int hdmi_hpd_pins[] = { PIN(GPIOH_0, EE_OFF) };
static const unsigned int hdmi_sda_pins[] = { PIN(GPIOH_1, EE_OFF) };
static const unsigned int hdmi_scl_pins[] = { PIN(GPIOH_2, EE_OFF) };

+static const unsigned int i2s_am_clk_pins[] = { PIN(GPIOH_6, EE_OFF) };
+static const unsigned int i2s_out_ao_clk_pins[] = { PIN(GPIOH_7, EE_OFF) };
+static const unsigned int i2s_out_lr_clk_pins[] = { PIN(GPIOH_8, EE_OFF) };
+static const unsigned int i2s_out_ch01_pins[] = { PIN(GPIOH_9, EE_OFF) };
+static const unsigned int i2s_out_ch23_z_pins[] = { PIN(GPIOZ_5, EE_OFF) };
+static const unsigned int i2s_out_ch45_z_pins[] = { PIN(GPIOZ_6, EE_OFF) };
+static const unsigned int i2s_out_ch67_z_pins[] = { PIN(GPIOZ_7, EE_OFF) };
+
static const struct pinctrl_pin_desc meson_gxl_aobus_pins[] = {
MESON_PIN(GPIOAO_0, 0),
MESON_PIN(GPIOAO_1, 0),
@@ -241,6 +249,9 @@ static const unsigned int pwm_ao_a_8_pins[] = { PIN(GPIOAO_8, 0) };

static const unsigned int pwm_ao_b_pins[] = { PIN(GPIOAO_9, 0) };

+static const unsigned int i2s_out_ch23_ao_pins[] = { PIN(GPIOAO_8, EE_OFF) };
+static const unsigned int i2s_out_ch45_ao_pins[] = { PIN(GPIOAO_9, EE_OFF) };
+
static struct meson_pmx_group meson_gxl_periphs_groups[] = {
GPIO_GROUP(GPIOZ_0, EE_OFF),
GPIO_GROUP(GPIOZ_1, EE_OFF),
@@ -384,11 +395,18 @@ static struct meson_pmx_group meson_gxl_periphs_groups[] = {
GROUP(eth_txd2, 4, 11),
GROUP(eth_txd3, 4, 10),
GROUP(pwm_c, 3, 20),
+ GROUP(i2s_out_ch23_z, 3, 26),
+ GROUP(i2s_out_ch45_z, 3, 25),
+ GROUP(i2s_out_ch67_z, 3, 24),

/* Bank H */
GROUP(hdmi_hpd, 6, 31),
GROUP(hdmi_sda, 6, 30),
GROUP(hdmi_scl, 6, 29),
+ GROUP(i2s_am_clk, 6, 26),
+ GROUP(i2s_out_ao_clk, 6, 25),
+ GROUP(i2s_out_lr_clk, 6, 24),
+ GROUP(i2s_out_ch01, 6, 23),

/* Bank DV */
GROUP(uart_tx_b, 2, 16),
@@ -453,6 +471,8 @@ static struct meson_pmx_group meson_gxl_aobus_groups[] = {
GROUP(pwm_ao_a_3, 0, 22),
GROUP(pwm_ao_a_8, 0, 17),
GROUP(pwm_ao_b, 0, 3),
+ GROUP(i2s_out_ch23_ao, 1, 0),
+ GROUP(i2s_out_ch45_ao, 1, 1),
};

static const char * const gpio_periphs_groups[] = {
@@ -569,6 +589,11 @@ static const char * const hdmi_i2c_groups[] = {
"hdmi_sda", "hdmi_scl",
};

+static const char * const i2s_out_groups[] = {
+ "i2s_am_clk", "i2s_out_ao_clk", "i2s_out_lr_clk",
+ "i2s_out_ch01", "i2s_out_ch23_z", "i2s_out_ch45_z", "i2s_out_ch67_z",
+};
+
static const char * const gpio_aobus_groups[] = {
"GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4",
"GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9",
@@ -594,6 +619,10 @@ static const char * const pwm_ao_b_groups[] = {
"pwm_ao_b",
};

+static const char * const i2s_out_ao_groups[] = {
+ "i2s_out_ch23_ao", "i2s_out_ch45_ao",
+};
+
static struct meson_pmx_func meson_gxl_periphs_functions[] = {
FUNCTION(gpio_periphs),
FUNCTION(emmc),
@@ -615,6 +644,7 @@ static struct meson_pmx_func meson_gxl_periphs_functions[] = {
FUNCTION(pwm_f),
FUNCTION(hdmi_hpd),
FUNCTION(hdmi_i2c),
+ FUNCTION(i2s_out),
};

static struct meson_pmx_func meson_gxl_aobus_functions[] = {
@@ -624,6 +654,7 @@ static struct meson_pmx_func meson_gxl_aobus_functions[] = {
FUNCTION(remote_input_ao),
FUNCTION(pwm_ao_a),
FUNCTION(pwm_ao_b),
+ FUNCTION(i2s_out_ao),
};

static struct meson_bank meson_gxl_periphs_banks[] = {
--
2.9.3

2017-03-23 16:51:35

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH 4/8] pinctrl: meson: gxl: add spdif output pins

Signed-off-by: Jerome Brunet <[email protected]>
---
drivers/pinctrl/meson/pinctrl-meson-gxl.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxl.c b/drivers/pinctrl/meson/pinctrl-meson-gxl.c
index a022a9e49113..a5a9b4f78636 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-gxl.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-gxl.c
@@ -220,6 +220,8 @@ static const unsigned int i2s_out_ch23_z_pins[] = { PIN(GPIOZ_5, EE_OFF) };
static const unsigned int i2s_out_ch45_z_pins[] = { PIN(GPIOZ_6, EE_OFF) };
static const unsigned int i2s_out_ch67_z_pins[] = { PIN(GPIOZ_7, EE_OFF) };

+static const unsigned int spdif_out_h_pins[] = { PIN(GPIOH_4, EE_OFF) };
+
static const struct pinctrl_pin_desc meson_gxl_aobus_pins[] = {
MESON_PIN(GPIOAO_0, 0),
MESON_PIN(GPIOAO_1, 0),
@@ -252,6 +254,9 @@ static const unsigned int pwm_ao_b_pins[] = { PIN(GPIOAO_9, 0) };
static const unsigned int i2s_out_ch23_ao_pins[] = { PIN(GPIOAO_8, EE_OFF) };
static const unsigned int i2s_out_ch45_ao_pins[] = { PIN(GPIOAO_9, EE_OFF) };

+static const unsigned int spdif_out_ao_6_pins[] = { PIN(GPIOAO_6, EE_OFF) };
+static const unsigned int spdif_out_ao_9_pins[] = { PIN(GPIOAO_9, EE_OFF) };
+
static struct meson_pmx_group meson_gxl_periphs_groups[] = {
GPIO_GROUP(GPIOZ_0, EE_OFF),
GPIO_GROUP(GPIOZ_1, EE_OFF),
@@ -407,6 +412,7 @@ static struct meson_pmx_group meson_gxl_periphs_groups[] = {
GROUP(i2s_out_ao_clk, 6, 25),
GROUP(i2s_out_lr_clk, 6, 24),
GROUP(i2s_out_ch01, 6, 23),
+ GROUP(spdif_out_h, 6, 28),

/* Bank DV */
GROUP(uart_tx_b, 2, 16),
@@ -473,6 +479,8 @@ static struct meson_pmx_group meson_gxl_aobus_groups[] = {
GROUP(pwm_ao_b, 0, 3),
GROUP(i2s_out_ch23_ao, 1, 0),
GROUP(i2s_out_ch45_ao, 1, 1),
+ GROUP(spdif_out_ao_6, 0, 16),
+ GROUP(spdif_out_ao_9, 0, 4),
};

static const char * const gpio_periphs_groups[] = {
@@ -594,6 +602,10 @@ static const char * const i2s_out_groups[] = {
"i2s_out_ch01", "i2s_out_ch23_z", "i2s_out_ch45_z", "i2s_out_ch67_z",
};

+static const char * const spdif_out_groups[] = {
+ "spdif_out_h",
+};
+
static const char * const gpio_aobus_groups[] = {
"GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4",
"GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9",
@@ -623,6 +635,10 @@ static const char * const i2s_out_ao_groups[] = {
"i2s_out_ch23_ao", "i2s_out_ch45_ao",
};

+static const char * const spdif_out_ao_groups[] = {
+ "spdif_out_ao_6", "spdif_out_ao_9",
+};
+
static struct meson_pmx_func meson_gxl_periphs_functions[] = {
FUNCTION(gpio_periphs),
FUNCTION(emmc),
@@ -645,6 +661,7 @@ static struct meson_pmx_func meson_gxl_periphs_functions[] = {
FUNCTION(hdmi_hpd),
FUNCTION(hdmi_i2c),
FUNCTION(i2s_out),
+ FUNCTION(spdif_out),
};

static struct meson_pmx_func meson_gxl_aobus_functions[] = {
@@ -655,6 +672,7 @@ static struct meson_pmx_func meson_gxl_aobus_functions[] = {
FUNCTION(pwm_ao_a),
FUNCTION(pwm_ao_b),
FUNCTION(i2s_out_ao),
+ FUNCTION(spdif_out_ao),
};

static struct meson_bank meson_gxl_periphs_banks[] = {
--
2.9.3

2017-03-23 16:51:33

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH 5/8] ARM64: dts: meson-gxbb: add i2s output pins

Signed-off-by: Jerome Brunet <[email protected]>
---
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 63 +++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index 04b3324bc132..5ce70e1ec9ae 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -203,6 +203,48 @@
function = "pwm_ao_b";
};
};
+
+ i2s_am_clk_pins: i2s_am_clk {
+ mux {
+ groups = "i2s_am_clk";
+ function = "i2s_out_ao";
+ };
+ };
+
+ i2s_out_ao_clk_pins: i2s_out_ao_clk {
+ mux {
+ groups = "i2s_out_ao_clk";
+ function = "i2s_out_ao";
+ };
+ };
+
+ i2s_out_lr_clk_pins: i2s_out_lr_clk {
+ mux {
+ groups = "i2s_out_lr_clk";
+ function = "i2s_out_ao";
+ };
+ };
+
+ i2s_out_ch01_ao_pins: i2s_out_ch01_ao {
+ mux {
+ groups = "i2s_out_ch01_ao";
+ function = "i2s_out_ao";
+ };
+ };
+
+ i2s_out_ch23_ao_pins: i2s_out_ch23_ao {
+ mux {
+ groups = "i2s_out_ch23_ao";
+ function = "i2s_out_ao";
+ };
+ };
+
+ i2s_out_ch45_ao_pins: i2s_out_ch45_ao {
+ mux {
+ groups = "i2s_out_ch45_ao";
+ function = "i2s_out_ao";
+ };
+ };
};

clkc_AO: clock-controller@040 {
@@ -467,6 +509,27 @@
function = "hdmi_i2c";
};
};
+
+ i2sout_ch23_y_pins: i2sout_ch23_y {
+ mux {
+ groups = "i2sout_ch23_y";
+ function = "i2s_out";
+ };
+ };
+
+ i2sout_ch45_y_pins: i2sout_ch45_y {
+ mux {
+ groups = "i2sout_ch45_y";
+ function = "i2s_out";
+ };
+ };
+
+ i2sout_ch67_y_pins: i2sout_ch67_y {
+ mux {
+ groups = "i2sout_ch67_y";
+ function = "i2s_out";
+ };
+ };
};
};

--
2.9.3

2017-03-23 16:51:32

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH 6/8] ARM64: dts: meson-gxbb: add spdif output pins

Signed-off-by: Jerome Brunet <[email protected]>
---
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index 5ce70e1ec9ae..e5fd88e2c5f7 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -245,6 +245,20 @@
function = "i2s_out_ao";
};
};
+
+ spdif_out_ao_6_pins: spdif_out_ao_6 {
+ mux {
+ groups = "spdif_out_ao_6";
+ function = "spdif_out_ao";
+ };
+ };
+
+ spdif_out_ao_13_pins: spdif_out_ao_13 {
+ mux {
+ groups = "spdif_out_ao_13";
+ function = "spdif_out_ao";
+ };
+ };
};

clkc_AO: clock-controller@040 {
@@ -530,6 +544,13 @@
function = "i2s_out";
};
};
+
+ spdif_out_y_pins: spdif_out_y {
+ mux {
+ groups = "spdif_out_y";
+ function = "spdif_out";
+ };
+ };
};
};

--
2.9.3

2017-03-23 16:51:31

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH 7/8] ARM64: dts: meson-gxl: add i2s output pins

Signed-off-by: Jerome Brunet <[email protected]>
---
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 62 ++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index fe11b5fc61f7..88ad3490c124 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -124,6 +124,20 @@
function = "pwm_ao_b";
};
};
+
+ i2s_out_ch23_ao_pins: i2s_out_ch23_ao {
+ mux {
+ groups = "i2s_out_ch23_ao";
+ function = "i2s_out_ao";
+ };
+ };
+
+ i2s_out_ch45_ao_pins: i2s_out_ch45_ao {
+ mux {
+ groups = "i2s_out_ch45_ao";
+ function = "i2s_out_ao";
+ };
+ };
};
};

@@ -297,6 +311,54 @@
function = "hdmi_i2c";
};
};
+
+ i2s_am_clk_pins: i2s_am_clk {
+ mux {
+ groups = "i2s_am_clk";
+ function = "i2s_out";
+ };
+ };
+
+ i2s_out_ao_clk_pins: i2s_out_ao_clk {
+ mux {
+ groups = "i2s_out_ao_clk";
+ function = "i2s_out";
+ };
+ };
+
+ i2s_out_lr_clk_pins: i2s_out_lr_clk {
+ mux {
+ groups = "i2s_out_lr_clk";
+ function = "i2s_out";
+ };
+ };
+
+ i2s_out_ch01_pins: i2s_out_ch01 {
+ mux {
+ groups = "i2s_out_ch01";
+ function = "i2s_out";
+ };
+ };
+ i2sout_ch23_z_pins: i2sout_ch23_z {
+ mux {
+ groups = "i2sout_ch23_z";
+ function = "i2s_out";
+ };
+ };
+
+ i2sout_ch45_z_pins: i2sout_ch45_z {
+ mux {
+ groups = "i2sout_ch45_z";
+ function = "i2s_out";
+ };
+ };
+
+ i2sout_ch67_z_pins: i2sout_ch67_z {
+ mux {
+ groups = "i2sout_ch67_z";
+ function = "i2s_out";
+ };
+ };
};

eth-phy-mux {
--
2.9.3

2017-03-23 16:51:29

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH 8/8] ARM64: dts: meson-gxl: add spdif output pins

Signed-off-by: Jerome Brunet <[email protected]>
---
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index 88ad3490c124..8f57e74b719c 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -138,6 +138,20 @@
function = "i2s_out_ao";
};
};
+
+ spdif_out_ao_6_pins: spdif_out_ao_6 {
+ mux {
+ groups = "spdif_out_ao_6";
+ function = "spdif_out_ao";
+ };
+ };
+
+ spdif_out_ao_9_pins: spdif_out_ao_9 {
+ mux {
+ groups = "spdif_out_ao_9";
+ function = "spdif_out_ao";
+ };
+ };
};
};

@@ -359,6 +373,13 @@
function = "i2s_out";
};
};
+
+ spdif_out_h_pins: spdif_out_ao_h {
+ mux {
+ groups = "spdif_out_h";
+ function = "spdif_out";
+ };
+ };
};

eth-phy-mux {
--
2.9.3

2017-03-24 19:52:55

by Kevin Hilman

[permalink] [raw]
Subject: Re: [PATCH 0/8] pinctrl: meson: add audio output pins

Jerome Brunet <[email protected]> writes:

> This patchset adds the pinctrl definition and the related device-tree
> bindings of the i2s output and spdif output pins on the meson gxbb and
> gxl SoCs.
>
> This is part of the ongoing work to bring audio output suppot on the
> meson family. It was tested on the gxbb p200 and gxl p230.

Series looks good to me,

However, I'm not sure about Linus's preference, but most maintainers
(myself included) prefer a small description in the changelog, even if
it restates (with slightly more description) what's already in the
$SUBJECT.

Kevin

2017-03-24 21:30:09

by Jerome Brunet

[permalink] [raw]
Subject: Re: [PATCH 0/8] pinctrl: meson: add audio output pins

On Fri, 2017-03-24 at 12:52 -0700, Kevin Hilman wrote:
> Jerome Brunet <[email protected]> writes:
>
> > This patchset adds the pinctrl definition and the related device-tree
> > bindings of the i2s output and spdif output pins on the meson gxbb and
> > gxl SoCs.
> >
> > This is part of the ongoing work to bring audio output suppot on the
> > meson family. It was tested on the gxbb p200 and gxl p230.
>
> Series looks good to me,
>
> However, I'm not sure about Linus's preference, but most maintainers
> (myself included) prefer a small description in the changelog, even if
> it restates (with slightly more description) what's already in the
> $SUBJECT.

Understood. thanks for pointing it out.
This series was going to clash with Neil's pinctrl fixes anyway.

I'll respin it taking this into account.

>
> Kevin

2017-03-28 13:14:05

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 3/8] pinctrl: meson: gxl: add i2s output pins

On Thu, Mar 23, 2017 at 5:50 PM, Jerome Brunet <[email protected]> wrote:

> Signed-off-by: Jerome Brunet <[email protected]>

Had to fuzz this patch a bit due to another patch from Neil, please check
the result.

Patch applied.

Yours,
Linus Walleij

2017-03-28 13:15:15

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 4/8] pinctrl: meson: gxl: add spdif output pins

On Thu, Mar 23, 2017 at 5:50 PM, Jerome Brunet <[email protected]> wrote:

> Signed-off-by: Jerome Brunet <[email protected]>

Patch applied.

Yours,
Linus Walleij

2017-03-28 13:15:08

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH 3/8] pinctrl: meson: gxl: add i2s output pins

On 03/28/2017 03:13 PM, Linus Walleij wrote:
> On Thu, Mar 23, 2017 at 5:50 PM, Jerome Brunet <[email protected]> wrote:
>
>> Signed-off-by: Jerome Brunet <[email protected]>
>
> Had to fuzz this patch a bit due to another patch from Neil, please check
> the result.
>
> Patch applied.
>
> Yours,
> Linus Walleij
>

Hi Linus,

Indeed, he sent a v2 rebased on my patchset.

Neil

2017-03-28 13:15:54

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 5/8] ARM64: dts: meson-gxbb: add i2s output pins

On Thu, Mar 23, 2017 at 5:50 PM, Jerome Brunet <[email protected]> wrote:

> Signed-off-by: Jerome Brunet <[email protected]>

Acked-by: Linus Walleij <[email protected]>

For this and the other Meson DTS patches.

Please funnel these through the apropriate ARM SoC-feed tree.

Yours,
Linus Walleij

2017-03-28 13:19:28

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 1/8] pinctrl: meson: gxbb: add i2s output pins

On Thu, Mar 23, 2017 at 5:50 PM, Jerome Brunet <[email protected]> wrote:

> Signed-off-by: Jerome Brunet <[email protected]>

Patch applied.

Yours,
Linus Walleij

2017-03-28 13:19:36

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 2/8] pinctrl: meson: gxbb: add spdif output pins

On Thu, Mar 23, 2017 at 5:50 PM, Jerome Brunet <[email protected]> wrote:

> Signed-off-by: Jerome Brunet <[email protected]>

Patch applied.

Yours,
Linus Walleij

2017-03-28 13:31:13

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 3/8] pinctrl: meson: gxl: add i2s output pins

On Tue, Mar 28, 2017 at 3:14 PM, Neil Armstrong <[email protected]> wrote:
> On 03/28/2017 03:13 PM, Linus Walleij wrote:
>> On Thu, Mar 23, 2017 at 5:50 PM, Jerome Brunet <[email protected]> wrote:
>>
>>> Signed-off-by: Jerome Brunet <[email protected]>
>>
>> Had to fuzz this patch a bit due to another patch from Neil, please check
>> the result.
>>
>> Patch applied.
>>
>> Yours,
>> Linus Walleij
>>
>
> Hi Linus,
>
> Indeed, he sent a v2 rebased on my patchset.

Yeah, sorry I'm drowning in patches. Hope this works.

Yours,
Linus Walleij

2017-03-28 14:11:29

by Jerome Brunet

[permalink] [raw]
Subject: Re: [PATCH 3/8] pinctrl: meson: gxl: add i2s output pins

On Tue, 2017-03-28 at 15:30 +0200, Linus Walleij wrote:
> On Tue, Mar 28, 2017 at 3:14 PM, Neil Armstrong <[email protected]>
> wrote:
> > On 03/28/2017 03:13 PM, Linus Walleij wrote:
> > > On Thu, Mar 23, 2017 at 5:50 PM, Jerome Brunet <[email protected]>
> > > wrote:
> > >
> > > > Signed-off-by: Jerome Brunet <[email protected]>
> > >
> > > Had to fuzz this patch a bit due to another patch from Neil, please check
> > > the result.
> > >
> > > Patch applied.
> > >
> > > Yours,
> > > Linus Walleij
> > >
> >
> > Hi Linus,
> >
> > Indeed, he sent a v2 rebased on my patchset.
>
> Yeah, sorry I'm drowning in patches. Hope this works.
>

Result looks good. Thx Linus.

> Yours,
> Linus Walleij

2017-03-28 15:34:58

by Jerome Brunet

[permalink] [raw]
Subject: Re: [PATCH 5/8] ARM64: dts: meson-gxbb: add i2s output pins

On Tue, 2017-03-28 at 15:15 +0200, Linus Walleij wrote:
> On Thu, Mar 23, 2017 at 5:50 PM, Jerome Brunet <[email protected]> wrote:
>
> > Signed-off-by: Jerome Brunet <[email protected]>
>
> Acked-by: Linus Walleij <[email protected]>
>
> For this and the other Meson DTS patches.
>
> Please funnel these through the apropriate ARM SoC-feed tree.

Kevin,
You may want to take the ones from the v2 I sent later. There is less chance of
conflict with Neil's patches.

Cheers
Jerome

>
> Yours,
> Linus Walleij