From 07f132b1b50ac803ab775a578a0890c1e46b4ed8 Mon Sep 17 00:00:00 2001 From: Chekhov Ma Date: Fri, 24 May 2024 13:56:16 +0800 Subject: [PATCH] boards: imx93_evk: enable flexcan driver Add pinctrl for flexcan2 Add EXP_SEL gpio hog for board mux selection during boot. Add TJA1057 CAN PHY driver. Update supported features in board document Signed-off-by: Chekhov Ma --- boards/nxp/imx93_evk/Kconfig.defconfig | 14 ++++++++++++ boards/nxp/imx93_evk/doc/index.rst | 8 +++++++ boards/nxp/imx93_evk/imx93_evk-pinctrl.dtsi | 18 +++++++++++++++ .../nxp/imx93_evk/imx93_evk_mimx9352_a55.dts | 22 +++++++++++++++++-- .../nxp/imx93_evk/imx93_evk_mimx9352_a55.yaml | 1 + 5 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 boards/nxp/imx93_evk/Kconfig.defconfig diff --git a/boards/nxp/imx93_evk/Kconfig.defconfig b/boards/nxp/imx93_evk/Kconfig.defconfig new file mode 100644 index 00000000000..556fd451cfc --- /dev/null +++ b/boards/nxp/imx93_evk/Kconfig.defconfig @@ -0,0 +1,14 @@ +# MIMX93 EVK board defconfig + +# Copyright 2024 NXP +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_IMX93_EVK_MIMX9352_A55 + +if CAN +# CAN Phy must be enabled after mfd0 gpio expander is ready +config CAN_TRANSCEIVER_INIT_PRIORITY + default 75 +endif + +endif # BOARD_IMX93_EVK_MIMX9352_A55 diff --git a/boards/nxp/imx93_evk/doc/index.rst b/boards/nxp/imx93_evk/doc/index.rst index 0fdeb237ec2..2c1f742efa4 100644 --- a/boards/nxp/imx93_evk/doc/index.rst +++ b/boards/nxp/imx93_evk/doc/index.rst @@ -58,8 +58,16 @@ features: +-----------+------------+-------------------------------------+ | ARM TIMER | on-chip | system clock | +-----------+------------+-------------------------------------+ +| GPIO | on-chip | gpio | ++-----------+------------+-------------------------------------+ | UART | on-chip | serial port | +-----------+------------+-------------------------------------+ +| I2C | on-chip | i2c | ++-----------+------------+-------------------------------------+ +| SPI | on-chip | spi | ++-----------+------------+-------------------------------------+ +| CAN | on-chip | can | ++-----------+------------+-------------------------------------+ Devices ======== diff --git a/boards/nxp/imx93_evk/imx93_evk-pinctrl.dtsi b/boards/nxp/imx93_evk/imx93_evk-pinctrl.dtsi index 31e35907f86..5f19f1f63a4 100644 --- a/boards/nxp/imx93_evk/imx93_evk-pinctrl.dtsi +++ b/boards/nxp/imx93_evk/imx93_evk-pinctrl.dtsi @@ -83,4 +83,22 @@ }; }; + flexcan1_default: flexcan1_default { + group0 { + pinmux = <&iomuxc1_sai1_txd0_can_tx_can1_tx>, + <&iomuxc1_sai1_txc_can_rx_can1_rx>; + slew-rate = "slightly_fast"; + drive-strength = "x5"; + }; + }; + + flexcan2_default: flexcan2_default { + group0 { + pinmux = <&iomuxc1_gpio_io25_can_tx_can2_tx>, + <&iomuxc1_gpio_io27_can_rx_can2_rx>; + slew-rate = "slightly_fast"; + drive-strength = "x5"; + }; + }; + }; diff --git a/boards/nxp/imx93_evk/imx93_evk_mimx9352_a55.dts b/boards/nxp/imx93_evk/imx93_evk_mimx9352_a55.dts index cd025a547e7..f68fb209466 100644 --- a/boards/nxp/imx93_evk/imx93_evk_mimx9352_a55.dts +++ b/boards/nxp/imx93_evk/imx93_evk_mimx9352_a55.dts @@ -17,6 +17,7 @@ zephyr,console = &lpuart2; zephyr,shell-uart = &lpuart2; zephyr,sram = &sram0; + zephyr,canbus = &flexcan2; }; cpus { @@ -64,6 +65,14 @@ gpios = <&gpio2 24 GPIO_ACTIVE_LOW>; }; }; + + can_phy0: can-phy0 { + compatible = "nxp,tja1057", "can-transceiver-gpio"; + max-bitrate = <8000000>; + standby-gpios = <&gpio_exp0 8 GPIO_ACTIVE_HIGH>; + #phy-cells = <0>; + status = "okay"; + }; }; &lpuart1 { @@ -91,7 +100,7 @@ }; &lpi2c2 { - status = "disabled"; + status = "okay"; clock-frequency = ; pinctrl-0 = <&i2c2_default>; pinctrl-names = "default"; @@ -99,7 +108,7 @@ mfd0:adp5585@34 { compatible = "adi,adp5585"; reg = <0x34>; - status = "disabled"; + status = "okay"; gpio_exp0: adp5585_gpio { compatible = "adi,adp5585-gpio"; @@ -146,3 +155,12 @@ &gpio4{ status = "okay"; }; + +&flexcan2 { + pinctrl-0 = <&flexcan2_default>; + pinctrl-names = "default"; + bus-speed = <125000>; + bus-speed-data = <1000000>; + phys = <&can_phy0>; + status = "okay"; +}; diff --git a/boards/nxp/imx93_evk/imx93_evk_mimx9352_a55.yaml b/boards/nxp/imx93_evk/imx93_evk_mimx9352_a55.yaml index 3a045828f84..d40b613b391 100644 --- a/boards/nxp/imx93_evk/imx93_evk_mimx9352_a55.yaml +++ b/boards/nxp/imx93_evk/imx93_evk_mimx9352_a55.yaml @@ -17,6 +17,7 @@ supported: - uart - i2c - spi + - can testing: ignore_tags: - net