2017-09-11 09:17:58

by Jagan Teki

[permalink] [raw]
Subject: [PATCH v4 1/6] ARM: dts: imx6qdl-icore: Add Sound card with codec node

From: Jagan Teki <[email protected]>

Add support for Sound card and related codec(via i2c3) nodes
to i.CoreM6 QDL module boards.

Cc: Shawn Guo <[email protected]>
Cc: Matteo Lisi <[email protected]>
Cc: Michael Trimarchi <[email protected]>
Signed-off-by: Jagan Teki <[email protected]>
---
Changes for v4:
- Moved sgtl5000 node into dtsi instead of multiple copies of
same in dts files
Changes for v3:
- Replace fsl,imx-audio-sgtl5000 and use simple-audio-card
Changes for v2:
- Use proper [label:] node-name[@unit-address] for codec

arch/arm/boot/dts/imx6qdl-icore.dtsi | 57 ++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)

diff --git a/arch/arm/boot/dts/imx6qdl-icore.dtsi b/arch/arm/boot/dts/imx6qdl-icore.dtsi
index 56d0c5d..5cdb93a 100644
--- a/arch/arm/boot/dts/imx6qdl-icore.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore.dtsi
@@ -55,6 +55,25 @@
default-brightness-level = <7>;
};

+ reg_1p8v: regulator-1p8v {
+ compatible = "regulator-fixed";
+ regulator-name = "1P8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+
+ reg_2p5v: regulator-3p3v {
+ compatible = "regulator-fixed";
+ regulator-name = "2P5V";
+ regulator-min-microvolt = <2500000>;
+ regulator-max-microvolt = <2500000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
reg_3p3v: regulator-3p3v {
compatible = "regulator-fixed";
regulator-name = "3P3V";
@@ -87,6 +106,31 @@
#clock-cells = <0>;
clock-frequency = <25000000>; /* 25MHz for example */
};
+
+ sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "imx6qdl-icore-sgtl5000";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,bitclock-master = <&dailink_master>;
+ simple-audio-card,frame-master = <&dailink_master>;
+ simple-audio-card,widgets =
+ "Microphone", "Mic Jack",
+ "Line", "Line In",
+ "Line", "Line Out",
+ "Headphone", "Headphone Jack";
+ simple-audio-card,routing =
+ "MIC_IN", "Mic Jack",
+ "Mic Jack", "Mic Bias",
+ "Headphone Jack", "HP_OUT";
+
+ simple-audio-card,cpu {
+ sound-dai = <&ssi1>;
+ };
+
+ dailink_master: simple-audio-card,codec {
+ sound-dai = <&sgtl5000>;
+ };
+ };
};

&can1 {
@@ -141,6 +185,15 @@
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
status = "okay";
+
+ sgtl5000: codec@a {
+ compatible = "fsl,sgtl5000";
+ reg = <0x0a>;
+ clocks = <&clks IMX6QDL_CLK_CKO>;
+ VDDA-supply = <&reg_2p5v>;
+ VDDIO-supply = <&reg_3p3v>;
+ VDDD-supply = <&reg_1p8v>;
+ };
};

&pwm3 {
@@ -149,6 +202,10 @@
status = "okay";
};

+&ssi1 {
+ status = "okay";
+};
+
&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart4>;
--
2.7.4


2017-09-11 09:18:07

by Jagan Teki

[permalink] [raw]
Subject: [PATCH v4 2/6] ARM: dts: imx6qdl-icore-rqs: Move Sound nodes to dtsi

From: Jagan Teki <[email protected]>

imx6q, imx6dl icore-rqs modules share common sound nodes,
so move the sound nodes from imx6q-icore-rqs into dtsi so-that
both can share the common node details.

And also replace codec: sgtl5000@0a => sgtl5000: codec@a
on imx6q-icore-rqs.dts to [label:] node-name[@unit-address]
according to devicetree specification from ePAPER v1.1

Cc: Shawn Guo <[email protected]>
Cc: Matteo Lisi <[email protected]>
Cc: Michael Trimarchi <[email protected]>
Signed-off-by: Jagan Teki <[email protected]>
---
Changes for v4:
- New patch

arch/arm/boot/dts/imx6q-icore-rqs.dts | 24 ------------------------
arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi | 22 ++++++++++++++++++++++
2 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/arch/arm/boot/dts/imx6q-icore-rqs.dts b/arch/arm/boot/dts/imx6q-icore-rqs.dts
index e451b4c..b81f48c 100644
--- a/arch/arm/boot/dts/imx6q-icore-rqs.dts
+++ b/arch/arm/boot/dts/imx6q-icore-rqs.dts
@@ -47,30 +47,6 @@
/ {
model = "Engicam i.CoreM6 Quad/Dual RQS Starter Kit";
compatible = "engicam,imx6-icore-rqs", "fsl,imx6q";
-
- sound {
- compatible = "fsl,imx-audio-sgtl5000";
- model = "imx-audio-sgtl5000";
- ssi-controller = <&ssi1>;
- audio-codec = <&codec>;
- audio-routing =
- "MIC_IN", "Mic Jack",
- "Mic Jack", "Mic Bias",
- "Headphone Jack", "HP_OUT";
- mux-int-port = <1>;
- mux-ext-port = <4>;
- };
-};
-
-&i2c3 {
- codec: sgtl5000@0a {
- compatible = "fsl,sgtl5000";
- reg = <0x0a>;
- clocks = <&clks IMX6QDL_CLK_CKO>;
- VDDA-supply = <&reg_2p5v>;
- VDDIO-supply = <&reg_3p3v>;
- VDDD-supply = <&reg_1p8v>;
- };
};

&sata {
diff --git a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
index 7ca291e..e196d1b 100644
--- a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
@@ -118,6 +118,19 @@
clocks = <&clks IMX6QDL_CLK_LVDS2_GATE>;
clock-names = "refclk";
};
+
+ sound {
+ compatible = "fsl,imx-audio-sgtl5000";
+ model = "imx-audio-sgtl5000";
+ ssi-controller = <&ssi1>;
+ audio-codec = <&sgtl5000>;
+ audio-routing =
+ "MIC_IN", "Mic Jack",
+ "Mic Jack", "Mic Bias",
+ "Headphone Jack", "HP_OUT";
+ mux-int-port = <1>;
+ mux-ext-port = <4>;
+ };
};

&clks {
@@ -174,6 +187,15 @@
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
status = "okay";
+
+ sgtl5000: codec@a {
+ compatible = "fsl,sgtl5000";
+ reg = <0x0a>;
+ clocks = <&clks IMX6QDL_CLK_CKO>;
+ VDDA-supply = <&reg_2p5v>;
+ VDDIO-supply = <&reg_3p3v>;
+ VDDD-supply = <&reg_1p8v>;
+ };
};

&pcie {
--
2.7.4

2017-09-11 09:18:19

by Jagan Teki

[permalink] [raw]
Subject: [PATCH v4 3/6] ARM: dts: imx6qdl-icore-rqs: Replace to use simple-audio-card

From: Jagan Teki <[email protected]>

This patch replace fsl,imx-audio-sgtl5000 and use simple-audio-card
for Engicam i.CoreM6 RQS QDL platform boards.

Cc: Shawn Guo <[email protected]>
Cc: Matteo Lisi <[email protected]>
Cc: Michael Trimarchi <[email protected]>
Signed-off-by: Jagan Teki <[email protected]>
---
Changes for v4:
- None
Changes for v3:
- Newly added

arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
index e196d1b..6bb722a 100644
--- a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
@@ -120,16 +120,28 @@
};

sound {
- compatible = "fsl,imx-audio-sgtl5000";
- model = "imx-audio-sgtl5000";
- ssi-controller = <&ssi1>;
- audio-codec = <&sgtl5000>;
- audio-routing =
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "imx6qdl-icore-sgtl5000";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,bitclock-master = <&dailink_master>;
+ simple-audio-card,frame-master = <&dailink_master>;
+ simple-audio-card,widgets =
+ "Microphone", "Mic Jack",
+ "Line", "Line In",
+ "Line", "Line Out",
+ "Headphone", "Headphone Jack";
+ simple-audio-card,routing =
"MIC_IN", "Mic Jack",
"Mic Jack", "Mic Bias",
"Headphone Jack", "HP_OUT";
- mux-int-port = <1>;
- mux-ext-port = <4>;
+
+ simple-audio-card,cpu {
+ sound-dai = <&ssi1>;
+ };
+
+ dailink_master: simple-audio-card,codec {
+ sound-dai = <&sgtl5000>;
+ };
};
};

--
2.7.4

2017-09-11 09:18:37

by Jagan Teki

[permalink] [raw]
Subject: [PATCH v4 4/6] ARM: dts: imx6dl-icore: Add LVDS support

From: Jagan Teki <[email protected]>

Add LVDS display support for OpenFrame Capacitive touch 7 inc
display which is supported by Engicam i.CoreM6 DualLite/Solo Starter Kit.

Cc: Shawn Guo <[email protected]>
Cc: Matteo Lisi <[email protected]>
Cc: Michael Trimarchi <[email protected]>
Signed-off-by: Jagan Teki <[email protected]>
---
Changes for v4, v3, v2:
- none

arch/arm/boot/dts/imx6dl-icore.dts | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

diff --git a/arch/arm/boot/dts/imx6dl-icore.dts b/arch/arm/boot/dts/imx6dl-icore.dts
index 6de83c7..360c32e 100644
--- a/arch/arm/boot/dts/imx6dl-icore.dts
+++ b/arch/arm/boot/dts/imx6dl-icore.dts
@@ -57,3 +57,28 @@
&can2 {
status = "okay";
};
+
+&ldb {
+ status = "okay";
+
+ lvds-channel@0 {
+ fsl,data-mapping = "spwg";
+ fsl,data-width = <18>;
+ status = "okay";
+
+ display-timings {
+ native-mode = <&timing0>;
+ timing0: timing0 {
+ clock-frequency = <60000000>;
+ hactive = <800>;
+ vactive = <480>;
+ hback-porch = <30>;
+ hfront-porch = <30>;
+ vback-porch = <5>;
+ vfront-porch = <5>;
+ hsync-len = <64>;
+ vsync-len = <20>;
+ };
+ };
+ };
+};
--
2.7.4

2017-09-11 09:18:43

by Jagan Teki

[permalink] [raw]
Subject: [PATCH v4 5/6] ARM: dts: imx6dl-icore: Add touchscreen node

From: Jagan Teki <[email protected]>

max11801 touchscreen on Engicam iCoreM6 DualLite/Solo module is
connected via i2c1, so add max11801: touchscreen@48 on i2c1.

Cc: Shawn Guo <[email protected]>
Cc: Matteo Lisi <[email protected]>
Cc: Michael Trimarchi <[email protected]>
Signed-off-by: Jagan Teki <[email protected]>
---
Changes for v4, v3,v2:
- none

arch/arm/boot/dts/imx6dl-icore.dts | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/arch/arm/boot/dts/imx6dl-icore.dts b/arch/arm/boot/dts/imx6dl-icore.dts
index 360c32e..35211f3 100644
--- a/arch/arm/boot/dts/imx6dl-icore.dts
+++ b/arch/arm/boot/dts/imx6dl-icore.dts
@@ -58,6 +58,15 @@
status = "okay";
};

+&i2c1 {
+ max11801: touchscreen@48 {
+ compatible = "maxim,max11801";
+ reg = <0x48>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
+ };
+};
+
&ldb {
status = "okay";

--
2.7.4

2017-09-11 09:18:48

by Jagan Teki

[permalink] [raw]
Subject: [PATCH v4 6/6] ARM: dts: imx6qdl-icore-rqs: Add CAN nodes

From: Jagan Teki <[email protected]>

Add support for can1 and can2 nodes on Engicam i.CoreM6 RQS
QDL module boards.

Cc: Shawn Guo <[email protected]>
Cc: Matteo Lisi <[email protected]>
Cc: Michael Trimarchi <[email protected]>
Signed-off-by: Jagan Teki <[email protected]>
---
Changes for v4:
- Moved can nodes from dts to dtsi
Changes for v3:
- none
Changes for v2:
- s/flexcan/can

arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

diff --git a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
index 6bb722a..9969e7f3 100644
--- a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
@@ -145,6 +145,20 @@
};
};

+&can1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_can1>;
+ xceiver-supply = <&reg_3p3v>;
+ status = "okay";
+};
+
+&can2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_can2>;
+ xceiver-supply = <&reg_3p3v>;
+ status = "okay";
+};
+
&clks {
assigned-clocks = <&clks IMX6QDL_CLK_LVDS2_SEL>;
assigned-clock-parents = <&clks IMX6QDL_CLK_OSC>;
@@ -304,6 +318,20 @@
>;
};

+ pinctrl_can1: can1grp {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b020
+ MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b020
+ >;
+ };
+
+ pinctrl_can2: can2grp {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b020
+ MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b020
+ >;
+ };
+
pinctrl_i2c1: i2c1grp {
fsl,pins = <
MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
--
2.7.4

2017-09-11 11:25:34

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH v4 4/6] ARM: dts: imx6dl-icore: Add LVDS support

Hi Jagan,

On Mon, Sep 11, 2017 at 6:12 AM, Jagan Teki <[email protected]> wrote:

> +&ldb {
> + status = "okay";
> +
> + lvds-channel@0 {
> + fsl,data-mapping = "spwg";
> + fsl,data-width = <18>;
> + status = "okay";
> +
> + display-timings {
> + native-mode = <&timing0>;
> + timing0: timing0 {
> + clock-frequency = <60000000>;
> + hactive = <800>;
> + vactive = <480>;
> + hback-porch = <30>;
> + hfront-porch = <30>;
> + vback-porch = <5>;
> + vfront-porch = <5>;
> + hsync-len = <64>;
> + vsync-len = <20>;

Please add the support of this panel to drivers/gpu/drm/panel/panel-simple.c.

Then you can refer its compatible in your board dts.

2017-09-19 15:52:23

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH v4 4/6] ARM: dts: imx6dl-icore: Add LVDS support

Hi Jagan,

On Tue, Sep 19, 2017 at 2:06 AM, Jagan Teki <[email protected]> wrote:
> Hi Fabio,
>
>> Please add the support of this panel to drivers/gpu/drm/panel/panel-simple.c.
>>
>> Then you can refer its compatible in your board dts.
>
> Yes, I'm trying to add the display timings but I couldn't find any
> info how to find front_portch, back_porch and sync. I remember
> blanking time = Sync Width + BP + FP so out of which how can we
> determine each one respectively. Please let me know if you have any
> idea, I’ve attached the data-sheet.

Does the existing ampire,am800480r3tmqwa1h binding work for your display?

2017-09-19 19:21:09

by Jagan Teki

[permalink] [raw]
Subject: Re: [PATCH v4 4/6] ARM: dts: imx6dl-icore: Add LVDS support

Hi Fabio,

On Tue, Sep 19, 2017 at 9:22 PM, Fabio Estevam <[email protected]> wrote:
> Hi Jagan,
>
> On Tue, Sep 19, 2017 at 2:06 AM, Jagan Teki <[email protected]> wrote:
>> Hi Fabio,
>>
>>> Please add the support of this panel to drivers/gpu/drm/panel/panel-simple.c.
>>>
>>> Then you can refer its compatible in your board dts.
>>
>> Yes, I'm trying to add the display timings but I couldn't find any
>> info how to find front_portch, back_porch and sync. I remember
>> blanking time = Sync Width + BP + FP so out of which how can we
>> determine each one respectively. Please let me know if you have any
>> idea, I’ve attached the data-sheet.
>
> Does the existing ampire,am800480r3tmqwa1h binding work for your display?

Yes, it is working..but need to understand how these respective
timings were calculated(because I need to add few more) . I tried this
supported ampire but couldn't get the data-sheet. Please point me if
you find any details.

thanks!
--
Jagan Teki
Senior Linux Kernel Engineer | Amarula Solutions
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

2017-09-19 20:11:20

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH v4 4/6] ARM: dts: imx6dl-icore: Add LVDS support

On Tue, Sep 19, 2017 at 4:21 PM, Jagan Teki <[email protected]> wrote:

> Yes, it is working..but need to understand how these respective
> timings were calculated(because I need to add few more) . I tried this
> supported ampire but couldn't get the data-sheet. Please point me if
> you find any details.

I don't have information about this panel.

Maybe you could check with the author from commit:

commit 1c550fa193d08920255240743f57731d4d57cd4d
Author: Philipp Zabel <[email protected]>
Date: Wed Feb 11 18:50:09 2015 +0100

drm/panel: Add support for Ampire AM-800480R3TMQW-A1H 800x480 7" panel

This adds support for the AM-800480R3TMQW-A1H 7" 800x480 panel to the
DRM simple panel driver.

Signed-off-by: Philipp Zabel <[email protected]>
Signed-off-by: Thierry Reding <[email protected]>

via [email protected] list.