LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH 0/6] CAN: Add support for CAN in AM65,J721e and AM64
@ 2021-07-20 14:16 Aswath Govindraju
  2021-07-20 14:16 ` [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN Aswath Govindraju
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-20 14:16 UTC (permalink / raw)
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Marc Kleine-Budde, Lokesh Vutla,
	Aswath Govindraju

The following series of patches add support for CAN in SoC's AM65, J721e
and AM64.

This patch series is dependent on [1] and I have requested for a immutable
tag from the Marc Kleine-Budde(maintainer of net tree).

[1] - https://lore.kernel.org/patchwork/project/lkml/list/?series=498360&state=%2A&archive=both

Aswath Govindraju (3):
  arm64: dts: ti: am654-base-board: Disable mcan nodes
  arm64: dts: ti: k3-am64-main: Add support for MCAN
  arm64: dts: ti: k3-am642-evm/sk: Add support for main domain mcan
    nodes in EVM and disable them on SK

Faiz Abbas (3):
  arm64: dts: ti: k3-am65-mcu: Add Support for MCAN
  arm64: dts: ti: k3-j721e: Add support for MCAN nodes
  arm64: dts: ti: k3-j721e-common-proc-board: Add support for mcu_mcan
    nodes

 arch/arm64/boot/dts/ti/k3-am64-main.dtsi      |  28 +++
 arch/arm64/boot/dts/ti/k3-am642-evm.dts       |  40 ++++
 arch/arm64/boot/dts/ti/k3-am642-sk.dts        |   8 +
 arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi       |  30 +++
 .../arm64/boot/dts/ti/k3-am654-base-board.dts |   8 +
 .../dts/ti/k3-j721e-common-proc-board.dts     | 116 +++++++++++
 arch/arm64/boot/dts/ti/k3-j721e-main.dtsi     | 196 ++++++++++++++++++
 .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |  28 +++
 8 files changed, 454 insertions(+)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN
  2021-07-20 14:16 [PATCH 0/6] CAN: Add support for CAN in AM65,J721e and AM64 Aswath Govindraju
@ 2021-07-20 14:16 ` Aswath Govindraju
  2021-07-20 14:20   ` Marc Kleine-Budde
  2021-07-20 14:16 ` [PATCH 2/6] arm64: dts: ti: am654-base-board: Disable mcan nodes Aswath Govindraju
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-20 14:16 UTC (permalink / raw)
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Marc Kleine-Budde, Lokesh Vutla,
	Aswath Govindraju

From: Faiz Abbas <faiz_abbas@ti.com>

Add Support for two MCAN controllers present on the am65x SOC. Both support
classic CAN messages as well as CAN-FD.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi | 30 +++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
index c93ff1520a0e..f8fff0a5b127 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
@@ -159,6 +159,36 @@
 		};
 	};
 
+	m_can0: mcan@40528000 {
+		compatible = "bosch,m_can";
+		reg = <0x0 0x40528000 0x0 0x400>,
+		      <0x0 0x40500000 0x0 0x4400>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 102 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 102 0>, <&k3_clks 102 5>;
+		clock-names = "cclk", "hclk";
+		interrupt-parent = <&gic500>;
+		interrupts = <GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 545 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	m_can1: mcan@40568000 {
+		compatible = "bosch,m_can";
+		reg = <0x0 0x40568000 0x0 0x400>,
+		      <0x0 0x40540000 0x0 0x4400>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 103 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 103 0>, <&k3_clks 103 5>;
+		clock-names = "cclk", "hclk";
+		interrupt-parent = <&gic500>;
+		interrupts = <GIC_SPI 547 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 548 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
 	fss: fss@47000000 {
 		compatible = "simple-bus";
 		#address-cells = <2>;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 2/6] arm64: dts: ti: am654-base-board: Disable mcan nodes
  2021-07-20 14:16 [PATCH 0/6] CAN: Add support for CAN in AM65,J721e and AM64 Aswath Govindraju
  2021-07-20 14:16 ` [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN Aswath Govindraju
@ 2021-07-20 14:16 ` Aswath Govindraju
  2021-07-20 14:16 ` [PATCH 3/6] arm64: dts: ti: k3-j721e: Add support for MCAN nodes Aswath Govindraju
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-20 14:16 UTC (permalink / raw)
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Marc Kleine-Budde, Lokesh Vutla,
	Aswath Govindraju

AM654 base board does not have mcan instances pinned out. Therefore,
disable all the mcan instances.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
index cfbcebfa37c1..9043f91c9bec 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
@@ -416,6 +416,14 @@
 	status = "disabled";
 };
 
+&m_can0 {
+	status = "disabled";
+};
+
+&m_can1 {
+	status = "disabled";
+};
+
 &mailbox0_cluster0 {
 	interrupts = <436>;
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 3/6] arm64: dts: ti: k3-j721e: Add support for MCAN nodes
  2021-07-20 14:16 [PATCH 0/6] CAN: Add support for CAN in AM65,J721e and AM64 Aswath Govindraju
  2021-07-20 14:16 ` [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN Aswath Govindraju
  2021-07-20 14:16 ` [PATCH 2/6] arm64: dts: ti: am654-base-board: Disable mcan nodes Aswath Govindraju
@ 2021-07-20 14:16 ` Aswath Govindraju
  2021-07-20 14:54   ` Marc Kleine-Budde
  2021-07-20 14:16 ` [PATCH 4/6] arm64: dts: ti: k3-j721e-common-proc-board: Add support for mcu_mcan nodes Aswath Govindraju
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-20 14:16 UTC (permalink / raw)
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Marc Kleine-Budde, Lokesh Vutla,
	Aswath Govindraju

From: Faiz Abbas <faiz_abbas@ti.com>

Add support for 14 MCAN controllers in main domain and 2 MCAN controllers
present in mcu domain. All the MCAN controllers support classic CAN
messages as well as CAN_FD messages.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
---
 arch/arm64/boot/dts/ti/k3-j721e-main.dtsi     | 196 ++++++++++++++++++
 .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |  28 +++
 2 files changed, 224 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
index cf3482376c1e..4215b8e6785a 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
@@ -1940,4 +1940,200 @@
 			bus_freq = <1000000>;
 		};
 	};
+
+	main_mcan0: can@2701000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02701000 0x00 0x200>,
+		      <0x00 0x02708000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 156 1>, <&k3_clks 156 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan1: can@2711000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02711000 0x00 0x200>,
+		      <0x00 0x02718000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 158 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 158 1>, <&k3_clks 158 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan2: can@2721000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02721000 0x00 0x200>,
+		      <0x00 0x02728000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 160 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 160 1>, <&k3_clks 160 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan3: can@2731000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02731000 0x00 0x200>,
+		      <0x00 0x02738000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 161 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 161 1>, <&k3_clks 161 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan4: can@2741000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02741000 0x00 0x200>,
+		      <0x00 0x02748000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 162 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 162 1>, <&k3_clks 162 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan5: can@2751000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02751000 0x00 0x200>,
+		      <0x00 0x02758000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 163 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 163 1>, <&k3_clks 163 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan6: can@2761000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02761000 0x00 0x200>,
+		      <0x00 0x02768000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 164 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 164 1>, <&k3_clks 164 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan7: can@2771000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02771000 0x00 0x200>,
+		      <0x00 0x02778000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 165 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 165 1>, <&k3_clks 165 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan8: can@2781000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02781000 0x00 0x200>,
+		      <0x00 0x02788000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 166 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 166 1>, <&k3_clks 166 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 576 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 577 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan9: can@2791000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x02791000 0x00 0x200>,
+		      <0x00 0x02798000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 167 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 167 1>, <&k3_clks 167 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 579 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 580 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan10: can@27a1000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x027a1000 0x00 0x200>,
+		      <0x00 0x027a8000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 168 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 168 1>, <&k3_clks 168 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan11: can@27b1000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x027b1000 0x00 0x200>,
+		      <0x00 0x027b8000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 169 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 169 1>, <&k3_clks 169 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan12: can@27c1000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x027c1000 0x00 0x200>,
+		      <0x00 0x027c8000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 170 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 170 1>, <&k3_clks 170 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan13: can@27d1000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x027d1000 0x00 0x200>,
+		      <0x00 0x027d8000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 171 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 171 1>, <&k3_clks 171 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
 };
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
index d2dceda72fe9..e803a2a8742a 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
@@ -390,4 +390,32 @@
 			ti,loczrama = <1>;
 		};
 	};
+
+	mcu_mcan0: can@40528000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x40528000 0x00 0x200>,
+		      <0x00 0x40500000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 172 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 172 1>, <&k3_clks 172 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 832 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 833 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	mcu_mcan1: can@40568000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x40568000 0x00 0x200>,
+		      <0x00 0x40540000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 173 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 173 1>, <&k3_clks 173 0>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 835 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 836 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 4/6] arm64: dts: ti: k3-j721e-common-proc-board: Add support for mcu_mcan nodes
  2021-07-20 14:16 [PATCH 0/6] CAN: Add support for CAN in AM65,J721e and AM64 Aswath Govindraju
                   ` (2 preceding siblings ...)
  2021-07-20 14:16 ` [PATCH 3/6] arm64: dts: ti: k3-j721e: Add support for MCAN nodes Aswath Govindraju
@ 2021-07-20 14:16 ` Aswath Govindraju
  2021-07-20 14:16 ` [PATCH 5/6] arm64: dts: ti: k3-am64-main: Add support for MCAN Aswath Govindraju
  2021-07-20 14:16 ` [PATCH 6/6] arm64: dts: ti: k3-am642-evm/sk: Add support for main domain mcan nodes in EVM and disable them on SK Aswath Govindraju
  5 siblings, 0 replies; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-20 14:16 UTC (permalink / raw)
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Marc Kleine-Budde, Lokesh Vutla,
	Aswath Govindraju

From: Faiz Abbas <faiz_abbas@ti.com>

Add two MCAN nodes present on the common processor board and set a
maximum data rate of 5 Mbps. Disable all other nodes for now.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
---
 .../dts/ti/k3-j721e-common-proc-board.dts     | 116 ++++++++++++++++++
 1 file changed, 116 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
index 8bd02d9e28ad..d40e282325c9 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
@@ -109,6 +109,25 @@
 			      "cpb-codec-scki",
 			      "cpb-codec-scki-48000", "cpb-codec-scki-44100";
 	};
+
+	transceiver1: can-phy0 {
+		compatible = "ti,tcan1043";
+		#phy-cells = <0>;
+		max-bitrate = <5000000>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&mcu_mcan0_gpio_pins_default>;
+		standby-gpios = <&wkup_gpio0 54 GPIO_ACTIVE_LOW>;
+		enable-gpios = <&wkup_gpio0 0 GPIO_ACTIVE_HIGH>;
+	};
+
+	transceiver2: can-phy1 {
+		compatible = "ti,tcan1042";
+		#phy-cells = <0>;
+		max-bitrate = <5000000>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&mcu_mcan1_gpio_pins_default>;
+		standby-gpios = <&wkup_gpio0 2 GPIO_ACTIVE_HIGH>;
+	};
 };
 
 &main_pmx0 {
@@ -249,6 +268,33 @@
 			J721E_WKUP_IOPAD(0x0088, PIN_INPUT, 0) /* MCU_MDIO0_MDIO */
 		>;
 	};
+
+	mcu_mcan0_pins_default: mcu-mcan0-pins-default {
+		pinctrl-single,pins = <
+			J721E_WKUP_IOPAD(0xac, PIN_INPUT, 0) /* (C29) MCU_MCAN0_RX */
+			J721E_WKUP_IOPAD(0xa8, PIN_OUTPUT, 0) /* (D29) MCU_MCAN0_TX */
+		>;
+	};
+
+	mcu_mcan0_gpio_pins_default: mcu-mcan0-gpio-pins-default {
+		pinctrl-single,pins = <
+			J721E_WKUP_IOPAD(0xb0, PIN_INPUT, 7) /* (F26) WKUP_GPIO0_0 */
+			J721E_WKUP_IOPAD(0x98, PIN_INPUT, 7) /* (E28) MCU_SPI0_D1.WKUP_GPIO0_54 */
+		>;
+	};
+
+	mcu_mcan1_pins_default: mcu-mcan1-pins-default {
+		pinctrl-single,pins = <
+			J721E_WKUP_IOPAD(0xc4, PIN_INPUT, 0) /* (G24) WKUP_GPIO0_5.MCU_MCAN1_RX */
+			J721E_WKUP_IOPAD(0xc0, PIN_OUTPUT, 0) /* (G25) WKUP_GPIO0_4.MCU_MCAN1_TX */
+		>;
+	};
+
+	mcu_mcan1_gpio_pins_default: mcu-mcan1-gpio-pins-default {
+		pinctrl-single,pins = <
+			J721E_WKUP_IOPAD(0xb8, PIN_INPUT, 7) /* (F28) WKUP_GPIO0_2 */
+		>;
+	};
 };
 
 &wkup_uart0 {
@@ -770,3 +816,73 @@
 &icssg1_mdio {
 	status = "disabled";
 };
+
+&mcu_mcan0 {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&mcu_mcan0_pins_default>;
+	phys = <&transceiver1>;
+};
+
+&mcu_mcan1 {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&mcu_mcan1_pins_default>;
+	phys = <&transceiver2>;
+};
+
+&main_mcan0 {
+	status = "disabled";
+};
+
+&main_mcan1 {
+	status = "disabled";
+};
+
+&main_mcan2 {
+	status = "disabled";
+};
+
+&main_mcan3 {
+	status = "disabled";
+};
+
+&main_mcan4 {
+	status = "disabled";
+};
+
+&main_mcan5 {
+	status = "disabled";
+};
+
+&main_mcan6 {
+	status = "disabled";
+};
+
+&main_mcan7 {
+	status = "disabled";
+};
+
+&main_mcan8 {
+	status = "disabled";
+};
+
+&main_mcan9 {
+	status = "disabled";
+};
+
+&main_mcan10 {
+	status = "disabled";
+};
+
+&main_mcan11 {
+	status = "disabled";
+};
+
+&main_mcan12 {
+	status = "disabled";
+};
+
+&main_mcan13 {
+	status = "disabled";
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 5/6] arm64: dts: ti: k3-am64-main: Add support for MCAN
  2021-07-20 14:16 [PATCH 0/6] CAN: Add support for CAN in AM65,J721e and AM64 Aswath Govindraju
                   ` (3 preceding siblings ...)
  2021-07-20 14:16 ` [PATCH 4/6] arm64: dts: ti: k3-j721e-common-proc-board: Add support for mcu_mcan nodes Aswath Govindraju
@ 2021-07-20 14:16 ` Aswath Govindraju
  2021-07-20 14:16 ` [PATCH 6/6] arm64: dts: ti: k3-am642-evm/sk: Add support for main domain mcan nodes in EVM and disable them on SK Aswath Govindraju
  5 siblings, 0 replies; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-20 14:16 UTC (permalink / raw)
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Marc Kleine-Budde, Lokesh Vutla,
	Aswath Govindraju

Add Support for two MCAN controllers present on the am64x SOC. Both support
classic CAN messages as well as CAN-FD.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 28 ++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
index 02c3fdf9cc46..f0113dece6cb 100644
--- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
@@ -859,4 +859,32 @@
 		clock-names = "fck";
 		max-functions = /bits/ 8 <1>;
 	};
+
+	main_mcan0: can@20701000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x20701000 0x00 0x200>,
+		      <0x00 0x20708000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 98 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 98 0>, <&k3_clks 98 5>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
+
+	main_mcan1: can@20711000 {
+		compatible = "bosch,m_can";
+		reg = <0x00 0x20711000 0x00 0x200>,
+		      <0x00 0x20718000 0x00 0x8000>;
+		reg-names = "m_can", "message_ram";
+		power-domains = <&k3_pds 99 TI_SCI_PD_EXCLUSIVE>;
+		clocks =  <&k3_clks 99 0>, <&k3_clks 99 5>;
+		clock-names = "cclk", "hclk";
+		interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "int0", "int1";
+		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+	};
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 6/6] arm64: dts: ti: k3-am642-evm/sk: Add support for main domain mcan nodes in EVM and disable them on SK
  2021-07-20 14:16 [PATCH 0/6] CAN: Add support for CAN in AM65,J721e and AM64 Aswath Govindraju
                   ` (4 preceding siblings ...)
  2021-07-20 14:16 ` [PATCH 5/6] arm64: dts: ti: k3-am64-main: Add support for MCAN Aswath Govindraju
@ 2021-07-20 14:16 ` Aswath Govindraju
  5 siblings, 0 replies; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-20 14:16 UTC (permalink / raw)
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Marc Kleine-Budde, Lokesh Vutla,
	Aswath Govindraju

AM642 EVM has two CAN connecters brought out from the two MCAN instances in
the main domain through transceivers. Add device tree nodes for
transceivers and set the required properties in the mcan device tree nodes,
in EVM device tree file.

On AM642 SK there are no connectors brought out for CAN. Therefore, disable
the mcan device tree nodes in the SK device tree file.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am642-evm.dts | 40 +++++++++++++++++++++++++
 arch/arm64/boot/dts/ti/k3-am642-sk.dts  |  8 +++++
 2 files changed, 48 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
index 030712221188..1c26ca41e6a5 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
@@ -184,6 +184,20 @@
 			};
 		};
 	};
+
+	transceiver1: can-phy0 {
+		compatible = "ti,tcan1042";
+		#phy-cells = <0>;
+		max-bitrate = <5000000>;
+		standby-gpios = <&exp1 8 GPIO_ACTIVE_HIGH>;
+	};
+
+	transceiver2: can-phy1 {
+		compatible = "ti,tcan1042";
+		#phy-cells = <0>;
+		max-bitrate = <5000000>;
+		standby-gpios = <&exp1 9 GPIO_ACTIVE_HIGH>;
+	};
 };
 
 &main_pmx0 {
@@ -288,6 +302,20 @@
 			AM64X_IOPAD(0x0008, PIN_INPUT, 0) /* (N19) OSPI0_DQS */
 		>;
 	};
+
+	main_mcan0_pins_default: main-mcan0-pins-default {
+		pinctrl-single,pins = <
+			AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* (B17) MCAN0_RX */
+			AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* (A17) MCAN0_TX */
+		>;
+	};
+
+	main_mcan1_pins_default: main-mcan1-pins-default {
+		pinctrl-single,pins = <
+			AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
+			AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
+		>;
+	};
 };
 
 &main_uart0 {
@@ -574,3 +602,15 @@
 	num-lanes = <1>;
 	status = "disabled";
 };
+
+&main_mcan0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_mcan0_pins_default>;
+	phys = <&transceiver1>;
+};
+
+&main_mcan1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_mcan1_pins_default>;
+	phys = <&transceiver2>;
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
index d3aa2901e6fd..15cde862f62c 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
@@ -453,3 +453,11 @@
 &pcie0_ep {
 	status = "disabled";
 };
+
+&main_mcan0 {
+	status = "disabled";
+};
+
+&main_mcan1 {
+	status = "disabled";
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN
  2021-07-20 14:16 ` [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN Aswath Govindraju
@ 2021-07-20 14:20   ` Marc Kleine-Budde
  2021-07-20 14:30     ` Aswath Govindraju
  0 siblings, 1 reply; 14+ messages in thread
From: Marc Kleine-Budde @ 2021-07-20 14:20 UTC (permalink / raw)
  To: Aswath Govindraju
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Lokesh Vutla

[-- Attachment #1: Type: text/plain, Size: 593 bytes --]

On 20.07.2021 19:46:37, Aswath Govindraju wrote:
> From: Faiz Abbas <faiz_abbas@ti.com>
> 
> Add Support for two MCAN controllers present on the am65x SOC. Both support
> classic CAN messages as well as CAN-FD.

Thanks for the patch!

Why don't you disable the CAN cores by default in the dtsi?

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN
  2021-07-20 14:20   ` Marc Kleine-Budde
@ 2021-07-20 14:30     ` Aswath Govindraju
  2021-07-20 14:39       ` Nishanth Menon
  2021-07-20 14:49       ` Marc Kleine-Budde
  0 siblings, 2 replies; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-20 14:30 UTC (permalink / raw)
  To: Marc Kleine-Budde
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Lokesh Vutla

Hi Marc,

On 20/07/21 7:50 pm, Marc Kleine-Budde wrote:
> On 20.07.2021 19:46:37, Aswath Govindraju wrote:
>> From: Faiz Abbas <faiz_abbas@ti.com>
>>
>> Add Support for two MCAN controllers present on the am65x SOC. Both support
>> classic CAN messages as well as CAN-FD.
> 
> Thanks for the patch!
> 
> Why don't you disable the CAN cores by default in the dtsi?

As far as I know, in the dtsi file we mention all the subsystems or
periherals present in the SoC and in the specific board dts file we
enable or disable the DT nodes depending on whether the  pins are
brought out.

Thanks,
Aswath

> 
> regards,
> Marc
> 


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN
  2021-07-20 14:30     ` Aswath Govindraju
@ 2021-07-20 14:39       ` Nishanth Menon
  2021-07-20 14:49       ` Marc Kleine-Budde
  1 sibling, 0 replies; 14+ messages in thread
From: Nishanth Menon @ 2021-07-20 14:39 UTC (permalink / raw)
  To: Aswath Govindraju
  Cc: Marc Kleine-Budde, linux-arm-kernel, devicetree, linux-kernel,
	Tero Kristo, Rob Herring, Lokesh Vutla

On 20:00-20210720, Aswath Govindraju wrote:
> Hi Marc,
> 
> On 20/07/21 7:50 pm, Marc Kleine-Budde wrote:
> > On 20.07.2021 19:46:37, Aswath Govindraju wrote:
> >> From: Faiz Abbas <faiz_abbas@ti.com>
> >>
> >> Add Support for two MCAN controllers present on the am65x SOC. Both support
> >> classic CAN messages as well as CAN-FD.
> > 
> > Thanks for the patch!
> > 
> > Why don't you disable the CAN cores by default in the dtsi?
> 
> As far as I know, in the dtsi file we mention all the subsystems or
> periherals present in the SoC and in the specific board dts file we
> enable or disable the DT nodes depending on whether the  pins are
> brought out.


There is a long history on this. You should be able to look the
discussion up in lore archives. The nutshell is the dtsi files should
maintain DT standard which is "default, status if not explicitly
provided is enabled" and the board dts files will explicitly disable
OR reserve the nodes that are not pinned out / used / reserved (due to
firmware usage) etc. There is the entire string parsing, size arguments
that run around this topic, but, anyways.

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN
  2021-07-20 14:30     ` Aswath Govindraju
  2021-07-20 14:39       ` Nishanth Menon
@ 2021-07-20 14:49       ` Marc Kleine-Budde
  1 sibling, 0 replies; 14+ messages in thread
From: Marc Kleine-Budde @ 2021-07-20 14:49 UTC (permalink / raw)
  To: Aswath Govindraju
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Lokesh Vutla

[-- Attachment #1: Type: text/plain, Size: 1206 bytes --]

On 20.07.2021 20:00:32, Aswath Govindraju wrote:
> Hi Marc,
> 
> On 20/07/21 7:50 pm, Marc Kleine-Budde wrote:
> > On 20.07.2021 19:46:37, Aswath Govindraju wrote:
> >> From: Faiz Abbas <faiz_abbas@ti.com>
> >>
> >> Add Support for two MCAN controllers present on the am65x SOC. Both support
> >> classic CAN messages as well as CAN-FD.
> > 
> > Thanks for the patch!
> > 
> > Why don't you disable the CAN cores by default in the dtsi?
> 
> As far as I know, in the dtsi file we mention all the subsystems or
> periherals present in the SoC and in the specific board dts file we
> enable or disable the DT nodes depending on whether the  pins are
> brought out.

If you disable the subsystems (that need pins) by default, you only have
to list and configure only the used subsystems and not disable the
unused ones. But it seems in the TI land you're following the rule you
outlined above, so go ahead.

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 3/6] arm64: dts: ti: k3-j721e: Add support for MCAN nodes
  2021-07-20 14:16 ` [PATCH 3/6] arm64: dts: ti: k3-j721e: Add support for MCAN nodes Aswath Govindraju
@ 2021-07-20 14:54   ` Marc Kleine-Budde
  2021-07-21  7:48     ` Aswath Govindraju
  0 siblings, 1 reply; 14+ messages in thread
From: Marc Kleine-Budde @ 2021-07-20 14:54 UTC (permalink / raw)
  To: Aswath Govindraju
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Lokesh Vutla

[-- Attachment #1: Type: text/plain, Size: 1756 bytes --]

On 20.07.2021 19:46:39, Aswath Govindraju wrote:
> From: Faiz Abbas <faiz_abbas@ti.com>
> 
> Add support for 14 MCAN controllers in main domain and 2 MCAN controllers
> present in mcu domain. All the MCAN controllers support classic CAN
> messages as well as CAN_FD messages.
> 
> Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
> ---
>  arch/arm64/boot/dts/ti/k3-j721e-main.dtsi     | 196 ++++++++++++++++++
>  .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |  28 +++
>  2 files changed, 224 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
> index cf3482376c1e..4215b8e6785a 100644
> --- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
> @@ -1940,4 +1940,200 @@
>  			bus_freq = <1000000>;
>  		};
>  	};
> +
> +	main_mcan0: can@2701000 {
> +		compatible = "bosch,m_can";
> +		reg = <0x00 0x02701000 0x00 0x200>,
> +		      <0x00 0x02708000 0x00 0x8000>;
> +		reg-names = "m_can", "message_ram";
> +		power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
> +		clocks = <&k3_clks 156 1>, <&k3_clks 156 0>;
> +		clock-names = "cclk", "hclk";
> +		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
> +			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
> +		interrupt-names = "int0", "int1";
> +		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;

Are you intentionally only enabling 1 TX buffer?

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 3/6] arm64: dts: ti: k3-j721e: Add support for MCAN nodes
  2021-07-20 14:54   ` Marc Kleine-Budde
@ 2021-07-21  7:48     ` Aswath Govindraju
  2021-07-26  7:43       ` Aswath Govindraju
  0 siblings, 1 reply; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-21  7:48 UTC (permalink / raw)
  To: Marc Kleine-Budde
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Lokesh Vutla

Hi Marc,

On 20/07/21 8:24 pm, Marc Kleine-Budde wrote:
> On 20.07.2021 19:46:39, Aswath Govindraju wrote:
>> From: Faiz Abbas <faiz_abbas@ti.com>
>>
>> Add support for 14 MCAN controllers in main domain and 2 MCAN controllers
>> present in mcu domain. All the MCAN controllers support classic CAN
>> messages as well as CAN_FD messages.
>>
>> Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
>> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
>> ---
>>  arch/arm64/boot/dts/ti/k3-j721e-main.dtsi     | 196 ++++++++++++++++++
>>  .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |  28 +++
>>  2 files changed, 224 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
>> index cf3482376c1e..4215b8e6785a 100644
>> --- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
>> +++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
>> @@ -1940,4 +1940,200 @@
>>  			bus_freq = <1000000>;
>>  		};
>>  	};
>> +
>> +	main_mcan0: can@2701000 {
>> +		compatible = "bosch,m_can";
>> +		reg = <0x00 0x02701000 0x00 0x200>,
>> +		      <0x00 0x02708000 0x00 0x8000>;
>> +		reg-names = "m_can", "message_ram";
>> +		power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
>> +		clocks = <&k3_clks 156 1>, <&k3_clks 156 0>;
>> +		clock-names = "cclk", "hclk";
>> +		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
>> +			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
>> +		interrupt-names = "int0", "int1";
>> +		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
> 
> Are you intentionally only enabling 1 TX buffer?
> 

I have used this configuration for testing. It can be increased to 32 if
required. Is it better to set it to the maximum number of buffers ?

Thanks,
Aswath

> Marc
> 


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 3/6] arm64: dts: ti: k3-j721e: Add support for MCAN nodes
  2021-07-21  7:48     ` Aswath Govindraju
@ 2021-07-26  7:43       ` Aswath Govindraju
  0 siblings, 0 replies; 14+ messages in thread
From: Aswath Govindraju @ 2021-07-26  7:43 UTC (permalink / raw)
  To: Marc Kleine-Budde
  Cc: linux-arm-kernel, devicetree, linux-kernel, Nishanth Menon,
	Tero Kristo, Rob Herring, Lokesh Vutla

Hi Marc,

On 21/07/21 1:18 pm, Aswath Govindraju wrote:
> Hi Marc,
> 
> On 20/07/21 8:24 pm, Marc Kleine-Budde wrote:
>> On 20.07.2021 19:46:39, Aswath Govindraju wrote:
>>> From: Faiz Abbas <faiz_abbas@ti.com>
>>>
>>> Add support for 14 MCAN controllers in main domain and 2 MCAN controllers
>>> present in mcu domain. All the MCAN controllers support classic CAN
>>> messages as well as CAN_FD messages.
>>>
>>> Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
>>> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
>>> ---
>>>  arch/arm64/boot/dts/ti/k3-j721e-main.dtsi     | 196 ++++++++++++++++++
>>>  .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |  28 +++
>>>  2 files changed, 224 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
>>> index cf3482376c1e..4215b8e6785a 100644
>>> --- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
>>> +++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
>>> @@ -1940,4 +1940,200 @@
>>>  			bus_freq = <1000000>;
>>>  		};
>>>  	};
>>> +
>>> +	main_mcan0: can@2701000 {
>>> +		compatible = "bosch,m_can";
>>> +		reg = <0x00 0x02701000 0x00 0x200>,
>>> +		      <0x00 0x02708000 0x00 0x8000>;
>>> +		reg-names = "m_can", "message_ram";
>>> +		power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
>>> +		clocks = <&k3_clks 156 1>, <&k3_clks 156 0>;
>>> +		clock-names = "cclk", "hclk";
>>> +		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
>>> +			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
>>> +		interrupt-names = "int0", "int1";
>>> +		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
>>
>> Are you intentionally only enabling 1 TX buffer?
>>
> 
> I have used this configuration for testing. It can be increased to 32 if
> required. Is it better to set it to the maximum number of buffers ?
> 

I have now set all the parameters that can be configured, to the their
max values.

"bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;"

Earlier while setting only one tx buffer I was unintentionally limiting
it. As far as I was able to search, the only constraint in setting them
to max values is the memory space allocated for message ram. As in this
case there is enough memory for configuring the message ram with max
values for all parameters, I see that memory space wouldn't be an issue.

After setting the above mentioned configuration I was able to perform a
few tests and they were passing.

I will fix this configuration and send a respin for this series.

Thanks,
Aswath

> Thanks,
> Aswath
> 
>> Marc
>>
> 


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-07-26  7:43 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-20 14:16 [PATCH 0/6] CAN: Add support for CAN in AM65,J721e and AM64 Aswath Govindraju
2021-07-20 14:16 ` [PATCH 1/6] arm64: dts: ti: k3-am65-mcu: Add Support for MCAN Aswath Govindraju
2021-07-20 14:20   ` Marc Kleine-Budde
2021-07-20 14:30     ` Aswath Govindraju
2021-07-20 14:39       ` Nishanth Menon
2021-07-20 14:49       ` Marc Kleine-Budde
2021-07-20 14:16 ` [PATCH 2/6] arm64: dts: ti: am654-base-board: Disable mcan nodes Aswath Govindraju
2021-07-20 14:16 ` [PATCH 3/6] arm64: dts: ti: k3-j721e: Add support for MCAN nodes Aswath Govindraju
2021-07-20 14:54   ` Marc Kleine-Budde
2021-07-21  7:48     ` Aswath Govindraju
2021-07-26  7:43       ` Aswath Govindraju
2021-07-20 14:16 ` [PATCH 4/6] arm64: dts: ti: k3-j721e-common-proc-board: Add support for mcu_mcan nodes Aswath Govindraju
2021-07-20 14:16 ` [PATCH 5/6] arm64: dts: ti: k3-am64-main: Add support for MCAN Aswath Govindraju
2021-07-20 14:16 ` [PATCH 6/6] arm64: dts: ti: k3-am642-evm/sk: Add support for main domain mcan nodes in EVM and disable them on SK Aswath Govindraju

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).