]> www.infradead.org Git - linux.git/commitdiff
arm64: dts: ti: k3-j722s-evm: Add support for multiple CAN instances
authorBhavya Kapoor <b-kapoor@ti.com>
Tue, 27 Aug 2024 10:56:43 +0000 (16:26 +0530)
committerNishanth Menon <nm@ti.com>
Wed, 28 Aug 2024 17:31:41 +0000 (12:31 -0500)
CAN instances 0 and 1 in the mcu domain and 0 in the main domain are
brought on the evm through headers J5, J8 and J10 respectively. Thus,
add their respective transceiver's 0, 1 and 2 dt nodes as well as
add the required pinmux to add support for these CAN instances.

Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
Reviewed-by: Judith Mendez <jm@ti.com>
Link: https://lore.kernel.org/r/20240827105644.575862-2-b-kapoor@ti.com
Signed-off-by: Nishanth Menon <nm@ti.com>
arch/arm64/boot/dts/ti/k3-j722s-evm.dts

index ee2bd7d26b9e41e837ea5a0b7c8e02541fdb01dc..41c36f82a3c57599affb66af6384bd22fe0c3263 100644 (file)
                        clocks = <&audio_refclk1>;
                };
        };
+
+       transceiver0: can-phy0 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcu_mcan0_gpio_pins_default>;
+               standby-gpios = <&mcu_gpio0 12 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver1: can-phy1 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+       };
+
+       transceiver2: can-phy2 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               standby-gpios = <&exp1 17 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &main_pmx0 {
 
+       main_mcan0_pins_default: main-mcan0-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x1dc, PIN_INPUT, 0) /* (C22) MCAN0_RX */
+                       J722S_IOPAD(0x1d8, PIN_OUTPUT, 0) /*(D22) MCAN0_TX */
+               >;
+       };
+
        main_i2c0_pins_default: main-i2c0-default-pins {
                pinctrl-single,pins = <
                        J722S_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (D23) I2C0_SCL */
 
 &mcu_pmx0 {
 
+       mcu_mcan0_pins_default: mcu-mcan0-default-pins {
+               pinctrl-single,pins = <
+                       J722S_MCU_IOPAD(0x038, PIN_INPUT, 0) /* (D8) MCU_MCAN0_RX */
+                       J722S_MCU_IOPAD(0x034, PIN_OUTPUT, 0) /* (B2) MCU_MCAN0_TX */
+               >;
+       };
+
+       mcu_mcan1_pins_default: mcu-mcan1-default-pins {
+               pinctrl-single,pins = <
+                       J722S_MCU_IOPAD(0x040, PIN_INPUT, 0) /* (B1) MCU_MCAN1_RX */
+                       J722S_MCU_IOPAD(0x03C, PIN_OUTPUT, 0) /*(C1) MCU_MCAN1_TX */
+               >;
+       };
+
+       mcu_mcan0_gpio_pins_default: mcu-mcan0-gpio-default-pins {
+               pinctrl-single,pins = <
+                       J722S_MCU_IOPAD(0x0030, PIN_OUTPUT, 7) /* (C3) MCU_GPIO0_12 */
+               >;
+       };
+
        wkup_uart0_pins_default: wkup-uart0-default-pins {
                pinctrl-single,pins = <
                        J722S_MCU_IOPAD(0x02c, PIN_INPUT, 0)    /* (C7) WKUP_UART0_CTSn */
               0 0 0 0
        >;
 };
+
+&mcu_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan0_pins_default>;
+       phys = <&transceiver0>;
+       status = "okay";
+};
+
+&mcu_mcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan1_pins_default>;
+       phys = <&transceiver1>;
+       status = "okay";
+};
+
+&main_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan0_pins_default>;
+       phys = <&transceiver2>;
+       status = "okay";
+};
+
+&mcu_gpio0 {
+       status = "okay";
+};