[PATCH] arm64: dts: ti: k3-j721s2: Add support for CAN instances 3 and 5 in main domain

Judith Mendez jm at ti.com
Mon May 22 12:34:35 PDT 2023


Hello Bhavya,

On 4/12/23 3:49 AM, Bhavya Kapoor wrote:
> CAN instances 3 and 5 in the main domain are brought on the common
> processor board through header J27 and J28. The CAN High and Low lines
> from the SoC are routed through a mux on the SoM. The select lines need
> to be set for the CAN signals to get connected to the transceivers on
> the common processor board. Threfore, add respective mux, transceiver
> dt nodes to add support for these CAN instances.
> 
> Signed-off-by: Bhavya Kapoor <b-kapoor at ti.com>
> ---
>   .../dts/ti/k3-j721s2-common-proc-board.dts    | 46 +++++++++++++++++++
>   arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi  | 12 +++++
>   2 files changed, 58 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
> index a7aa6cf08acd..f07663bbea16 100644
> --- a/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
> +++ b/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
> @@ -27,6 +27,8 @@ aliases {
>   		can0 = &main_mcan16;
>   		can1 = &mcu_mcan0;
>   		can2 = &mcu_mcan1;
> +		can3 = &main_mcan3;
> +		can4 = &main_mcan5;
>   	};
>   
>   	evm_12v0: fixedregulator-evm12v0 {
> @@ -107,6 +109,22 @@ transceiver2: can-phy2 {
>   		standby-gpios = <&wkup_gpio0 2 GPIO_ACTIVE_HIGH>;
>   	};
>   
> +	transceiver3: can-phy3 {
> +		compatible = "ti,tcan1043";
> +		#phy-cells = <0>;
> +		max-bitrate = <5000000>;
> +		standby-gpios = <&exp2 7 GPIO_ACTIVE_LOW>;
> +		enable-gpios = <&exp2 6 GPIO_ACTIVE_HIGH>;
> +		mux-states = <&mux0 1>;
> +	};
> +
> +	transceiver4: can-phy4 {
> +		compatible = "ti,tcan1042";
> +		#phy-cells = <0>;
> +		max-bitrate = <5000000>;
> +		standby-gpios = <&exp_som 7 GPIO_ACTIVE_HIGH>;
> +		mux-states = <&mux1 1>;
> +	};
>   };
>   
>   &main_pmx0 {
> @@ -144,6 +162,20 @@ vdd_sd_dv_pins_default: vdd-sd-dv-pins-default {
>   			J721S2_IOPAD(0x020, PIN_INPUT, 7) /* (AA23) MCAN15_RX.GPIO0_8 */
>   		>;
>   	};
> +
> +	main_mcan3_pins_default: main-mcan3-pins-default {
> +		pinctrl-single,pins = <
> +			J721S2_IOPAD(0x080, PIN_INPUT, 0) /* (U26) MCASP0_AXR4.MCAN3_RX */
> +			J721S2_IOPAD(0x07c, PIN_OUTPUT, 0) /* (T27) MCASP0_AXR3.MCAN3_TX */
> +		>;
> +	};
> +
> +	main_mcan5_pins_default: main-mcan5-pins-default {
> +		pinctrl-single,pins = <
> +			J721S2_IOPAD(0x03c, PIN_INPUT, 0) /* (U27) MCASP0_AFSX.MCAN5_RX */
> +			J721S2_IOPAD(0x038, PIN_OUTPUT, 0) /* (AB28) MCASP0_ACLKX.MCAN5_TX */
> +		>;
> +	};
>   };
>   
>   &wkup_pmx0 {
> @@ -309,3 +341,17 @@ &mcu_mcan1 {
>   	pinctrl-0 = <&mcu_mcan1_pins_default>;
>   	phys = <&transceiver2>;
>   };
> +
> +&main_mcan3 {
> +	status = "okay";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&main_mcan3_pins_default>;
> +	phys = <&transceiver3>;
> +};
> +
> +&main_mcan5 {
> +	status = "okay";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&main_mcan5_pins_default>;
> +	phys = <&transceiver4>;
> +};
> diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi
> index 6930efff8a5a..0b9926a64382 100644
> --- a/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi
> @@ -31,6 +31,18 @@ secure_ddr: optee at 9e800000 {
>   		};
>   	};
>   
> +	mux0: mux-controller0 {
> +		compatible = "gpio-mux";
> +		#mux-state-cells = <1>;
> +		mux-gpios = <&exp_som 1 GPIO_ACTIVE_HIGH>;
> +	};
> +
> +    mux1: mux-controller1 {

Spacing is different here...

> +		compatible = "gpio-mux";
> +		#mux-state-cells = <1>;
> +		mux-gpios = <&exp_som 2 GPIO_ACTIVE_HIGH>;
> +	};
> +
>   	transceiver0: can-phy0 {
>   		/* standby pin has been grounded by default */
>   		compatible = "ti,tcan1042";

regards,
Judith



More information about the linux-arm-kernel mailing list