diff mbox

ARM: dts: am57xx-idk: Add DCAN support

Message ID 8981d49e7011a7246ff7dc6a9a9da0a56dfe5621.1487670384.git.nsekhar@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sekhar Nori Feb. 21, 2017, 10 a.m. UTC
From: Schuyler Patton <spatton@ti.com>

AM571x IDK and the AM572x IDK use CAN1 interface.
This patch enables it for both boards.

Tested on AM572x IDK using cansequence.

Signed-off-by: Schuyler Patton <spatton@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
[nsekhar@ti.com: move to use DRA7XX_CORE_IOPAD())
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
 arch/arm/boot/dts/am57xx-idk-common.dtsi | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

Comments

Sekhar Nori Feb. 21, 2017, 10:11 a.m. UTC | #1
On Tuesday 21 February 2017 03:30 PM, Sekhar Nori wrote:
> From: Schuyler Patton <spatton@ti.com>
> 
> AM571x IDK and the AM572x IDK use CAN1 interface.
> This patch enables it for both boards.
> 
> Tested on AM572x IDK using cansequence.
> 
> Signed-off-by: Schuyler Patton <spatton@ti.com>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
> [nsekhar@ti.com: move to use DRA7XX_CORE_IOPAD())
> Signed-off-by: Sekhar Nori <nsekhar@ti.com>

I should have noted that although CAN does function on the IDK with this
patch, there are "omap_hwmod: dcan1: _wait_target_disable failed"
messages that come up due to lack of workaround for errata i893[1]

Roger does have some patches to workaround that errata. If you want to
wait for those patches to be submitted and accepted first, it should be
fine as well.

Thanks,
Sekhar

[1] http://www.ti.com/lit/er/sprz436b/sprz436b.pdf
Tony Lindgren March 6, 2017, 6:41 p.m. UTC | #2
* Sekhar Nori <nsekhar@ti.com> [170221 02:13]:
> On Tuesday 21 February 2017 03:30 PM, Sekhar Nori wrote:
> > From: Schuyler Patton <spatton@ti.com>
> > 
> > AM571x IDK and the AM572x IDK use CAN1 interface.
> > This patch enables it for both boards.
> > 
> > Tested on AM572x IDK using cansequence.
> > 
> > Signed-off-by: Schuyler Patton <spatton@ti.com>
> > Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> > Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
> > [nsekhar@ti.com: move to use DRA7XX_CORE_IOPAD())
> > Signed-off-by: Sekhar Nori <nsekhar@ti.com>
> 
> I should have noted that although CAN does function on the IDK with this
> patch, there are "omap_hwmod: dcan1: _wait_target_disable failed"
> messages that come up due to lack of workaround for errata i893[1]
> 
> Roger does have some patches to workaround that errata. If you want to
> wait for those patches to be submitted and accepted first, it should be
> fine as well.

OK let's wait a bit on this then to avoid introducing extra warnings.

Regards,

Tony

> [1] http://www.ti.com/lit/er/sprz436b/sprz436b.pdf
Sekhar Nori March 30, 2017, 2:23 p.m. UTC | #3
Hi Tony,

On Tuesday 07 March 2017 12:11 AM, Tony Lindgren wrote:
> * Sekhar Nori <nsekhar@ti.com> [170221 02:13]:
>> On Tuesday 21 February 2017 03:30 PM, Sekhar Nori wrote:
>>> From: Schuyler Patton <spatton@ti.com>
>>>
>>> AM571x IDK and the AM572x IDK use CAN1 interface.
>>> This patch enables it for both boards.
>>>
>>> Tested on AM572x IDK using cansequence.
>>>
>>> Signed-off-by: Schuyler Patton <spatton@ti.com>
>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>> Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
>>> [nsekhar@ti.com: move to use DRA7XX_CORE_IOPAD())
>>> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
>>
>> I should have noted that although CAN does function on the IDK with this
>> patch, there are "omap_hwmod: dcan1: _wait_target_disable failed"
>> messages that come up due to lack of workaround for errata i893[1]
>>
>> Roger does have some patches to workaround that errata. If you want to
>> wait for those patches to be submitted and accepted first, it should be
>> fine as well.
> 
> OK let's wait a bit on this then to avoid introducing extra warnings.

Now that Roger's hwmod patches for the DCAN errata are in linux-next,
this patch can be applied safely. Let me know if you need me to resend it.

Thanks,
Sekhar
Tony Lindgren April 4, 2017, 3:56 p.m. UTC | #4
* Sekhar Nori <nsekhar@ti.com> [170330 07:26]:
> Hi Tony,
> 
> On Tuesday 07 March 2017 12:11 AM, Tony Lindgren wrote:
> > * Sekhar Nori <nsekhar@ti.com> [170221 02:13]:
> >> On Tuesday 21 February 2017 03:30 PM, Sekhar Nori wrote:
> >>> From: Schuyler Patton <spatton@ti.com>
> >>>
> >>> AM571x IDK and the AM572x IDK use CAN1 interface.
> >>> This patch enables it for both boards.
> >>>
> >>> Tested on AM572x IDK using cansequence.
> >>>
> >>> Signed-off-by: Schuyler Patton <spatton@ti.com>
> >>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> >>> Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
> >>> [nsekhar@ti.com: move to use DRA7XX_CORE_IOPAD())
> >>> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
> >>
> >> I should have noted that although CAN does function on the IDK with this
> >> patch, there are "omap_hwmod: dcan1: _wait_target_disable failed"
> >> messages that come up due to lack of workaround for errata i893[1]
> >>
> >> Roger does have some patches to workaround that errata. If you want to
> >> wait for those patches to be submitted and accepted first, it should be
> >> fine as well.
> > 
> > OK let's wait a bit on this then to avoid introducing extra warnings.
> 
> Now that Roger's hwmod patches for the DCAN errata are in linux-next,
> this patch can be applied safely. Let me know if you need me to resend it.

No need to resend, applying into omap-for-v4.12/dt-v2.

Thanks,

Tony
diff mbox

Patch

diff --git a/arch/arm/boot/dts/am57xx-idk-common.dtsi b/arch/arm/boot/dts/am57xx-idk-common.dtsi
index 814a720d5c3d..abdee2e7a18e 100644
--- a/arch/arm/boot/dts/am57xx-idk-common.dtsi
+++ b/arch/arm/boot/dts/am57xx-idk-common.dtsi
@@ -97,6 +97,22 @@ 
 	};
 };
 
+&dra7_pmx_core {
+	dcan1_pins_default: dcan1_pins_default {
+		pinctrl-single,pins = <
+			DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0)	/* dcan1_tx */
+			DRA7XX_CORE_IOPAD(0x37d4, PIN_INPUT_PULLUP | MUX_MODE0)		/* dcan1_rx */
+		>;
+	};
+
+	dcan1_pins_sleep: dcan1_pins_sleep {
+		pinctrl-single,pins = <
+			DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP)	/* dcan1_tx.off */
+			DRA7XX_CORE_IOPAD(0x37d4, MUX_MODE15 | PULL_UP)	/* dcan1_rx.off */
+		>;
+	};
+};
+
 &i2c1 {
 	status = "okay";
 	clock-frequency = <400000>;
@@ -387,6 +403,14 @@ 
 	max-frequency = <96000000>;
 };
 
+&dcan1 {
+	status = "okay";
+	pinctrl-names = "default", "sleep", "active";
+	pinctrl-0 = <&dcan1_pins_sleep>;
+	pinctrl-1 = <&dcan1_pins_sleep>;
+	pinctrl-2 = <&dcan1_pins_default>;
+};
+
 &qspi {
 	status = "okay";