From c8dc7855786415b02f0c7f61c6fc5cdaf68af2c1 Mon Sep 17 00:00:00 2001 From: Aziz Sellami Date: Tue, 24 Jun 2025 15:20:34 +0200 Subject: [PATCH 1/2] dts: nxp: imx95-ca55: add dts for SoC 15x15 variant As i.MX 95 19x19 and i.MX 95 15x15 have different pinmux definitions, keep common part in nxp_mimx95_a55.dtsi, and define separate dts file for each variants. These include the common part and their respective pinmux definitions. Signed-off-by: Aziz Sellami --- .../nxp/imx95_evk/imx95_evk_mimx9596_a55.dts | 2 +- .../imx95_evk/imx95_evk_mimx9596_a55_smp.dts | 2 +- dts/arm64/nxp/nxp_mimx95_15x15_a55.dtsi | 153 +++++++++++++++++ dts/arm64/nxp/nxp_mimx95_19x19_a55.dtsi | 156 ++++++++++++++++++ dts/arm64/nxp/nxp_mimx95_a55.dtsi | 151 +---------------- 5 files changed, 313 insertions(+), 151 deletions(-) create mode 100644 dts/arm64/nxp/nxp_mimx95_15x15_a55.dtsi create mode 100644 dts/arm64/nxp/nxp_mimx95_19x19_a55.dtsi diff --git a/boards/nxp/imx95_evk/imx95_evk_mimx9596_a55.dts b/boards/nxp/imx95_evk/imx95_evk_mimx9596_a55.dts index d4aff0f100de9..09cc4fc8c5067 100644 --- a/boards/nxp/imx95_evk/imx95_evk_mimx9596_a55.dts +++ b/boards/nxp/imx95_evk/imx95_evk_mimx9596_a55.dts @@ -6,7 +6,7 @@ /dts-v1/; -#include +#include #include "imx95_evk-pinctrl.dtsi" / { diff --git a/boards/nxp/imx95_evk/imx95_evk_mimx9596_a55_smp.dts b/boards/nxp/imx95_evk/imx95_evk_mimx9596_a55_smp.dts index 3dec65cf98379..5eba5dc2b5ec2 100644 --- a/boards/nxp/imx95_evk/imx95_evk_mimx9596_a55_smp.dts +++ b/boards/nxp/imx95_evk/imx95_evk_mimx9596_a55_smp.dts @@ -6,7 +6,7 @@ /dts-v1/; -#include +#include #include "imx95_evk-pinctrl.dtsi" / { diff --git a/dts/arm64/nxp/nxp_mimx95_15x15_a55.dtsi b/dts/arm64/nxp/nxp_mimx95_15x15_a55.dtsi new file mode 100644 index 0000000000000..22517fbc7e95f --- /dev/null +++ b/dts/arm64/nxp/nxp_mimx95_15x15_a55.dtsi @@ -0,0 +1,153 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/* + * GPIO pinmux options. These options define the pinmux settings + * for GPIO ports on the package, so that the GPIO driver can + * select GPIO mux options during GPIO configuration. + */ + +&gpio1{ + pinmux = <&iomuxc_i2c1_scl_gpio_io_bit_gpio1_io_bit0>, + <&iomuxc_i2c1_sda_gpio_io_bit_gpio1_io_bit1>, + <&iomuxc_i2c2_scl_gpio_io_bit_gpio1_io_bit2>, + <&iomuxc_i2c2_sda_gpio_io_bit_gpio1_io_bit3>, + <&iomuxc_uart1_rxd_gpio_io_bit_gpio1_io_bit4>, + <&iomuxc_uart1_txd_gpio_io_bit_gpio1_io_bit5>, + <&iomuxc_uart2_rxd_gpio_io_bit_gpio1_io_bit6>, + <&iomuxc_uart2_txd_gpio_io_bit_gpio1_io_bit7>, + <&iomuxc_pdm_clk_gpio_io_bit_gpio1_io_bit8>, + <&iomuxc_pdm_bit_stream0_gpio_io_bit_gpio1_io_bit9>, + <&iomuxc_pdm_bit_stream1_gpio_io_bit_gpio1_io_bit10>, + <&iomuxc_sai1_txfs_gpio_io_bit_gpio1_io_bit11>, + <&iomuxc_sai1_txc_gpio_io_bit_gpio1_io_bit12>, + <&iomuxc_sai1_txd0_gpio_io_bit_gpio1_io_bit13>, + <&iomuxc_sai1_rxd0_gpio_io_bit_gpio1_io_bit14>, + <&iomuxc_wdog_any_gpio_io_bit_gpio1_io_bit15>; +}; + +&gpio2{ + pinmux = <&iomuxc_gpio_io00_gpio_io_bit_gpio2_io_bit0>, + <&iomuxc_gpio_io01_gpio_io_bit_gpio2_io_bit1>, + <&iomuxc_gpio_io02_gpio_io_bit_gpio2_io_bit2>, + <&iomuxc_gpio_io03_gpio_io_bit_gpio2_io_bit3>, + <&iomuxc_gpio_io04_gpio_io_bit_gpio2_io_bit4>, + <&iomuxc_gpio_io05_gpio_io_bit_gpio2_io_bit5>, + <&iomuxc_gpio_io06_gpio_io_bit_gpio2_io_bit6>, + <&iomuxc_gpio_io07_gpio_io_bit_gpio2_io_bit7>, + <&iomuxc_gpio_io08_gpio_io_bit_gpio2_io_bit8>, + <&iomuxc_gpio_io09_gpio_io_bit_gpio2_io_bit9>, + <&iomuxc_gpio_io10_gpio_io_bit_gpio2_io_bit10>, + <&iomuxc_gpio_io11_gpio_io_bit_gpio2_io_bit11>, + <&iomuxc_gpio_io12_gpio_io_bit_gpio2_io_bit12>, + <&iomuxc_gpio_io13_gpio_io_bit_gpio2_io_bit13>, + <&iomuxc_gpio_io14_gpio_io_bit_gpio2_io_bit14>, + <&iomuxc_gpio_io15_gpio_io_bit_gpio2_io_bit15>, + <&iomuxc_gpio_io16_gpio_io_bit_gpio2_io_bit16>, + <&iomuxc_gpio_io17_gpio_io_bit_gpio2_io_bit17>, + <&iomuxc_gpio_io18_gpio_io_bit_gpio2_io_bit18>, + <&iomuxc_gpio_io19_gpio_io_bit_gpio2_io_bit19>, + <&iomuxc_gpio_io20_gpio_io_bit_gpio2_io_bit20>, + <&iomuxc_gpio_io21_gpio_io_bit_gpio2_io_bit21>, + <&iomuxc_gpio_io22_gpio_io_bit_gpio2_io_bit22>, + <&iomuxc_gpio_io23_gpio_io_bit_gpio2_io_bit23>, + <&iomuxc_gpio_io24_gpio_io_bit_gpio2_io_bit24>, + <&iomuxc_gpio_io25_gpio_io_bit_gpio2_io_bit25>, + <&iomuxc_gpio_io26_gpio_io_bit_gpio2_io_bit26>, + <&iomuxc_gpio_io27_gpio_io_bit_gpio2_io_bit27>, + <&iomuxc_gpio_io28_gpio_io_bit_gpio2_io_bit28>, + <&iomuxc_gpio_io29_gpio_io_bit_gpio2_io_bit29>, + <&iomuxc_gpio_io30_gpio_io_bit_gpio2_io_bit30>, + <&iomuxc_gpio_io31_gpio_io_bit_gpio2_io_bit31>; +}; + +&gpio3{ + pinmux = <&iomuxc_sd2_cd_b_gpio_io_bit_gpio3_io_bit0>, + <&iomuxc_sd2_clk_gpio_io_bit_gpio3_io_bit1>, + <&iomuxc_sd2_cmd_gpio_io_bit_gpio3_io_bit2>, + <&iomuxc_sd2_data0_gpio_io_bit_gpio3_io_bit3>, + <&iomuxc_sd2_data1_gpio_io_bit_gpio3_io_bit4>, + <&iomuxc_sd2_data2_gpio_io_bit_gpio3_io_bit5>, + <&iomuxc_sd2_data3_gpio_io_bit_gpio3_io_bit6>, + <&iomuxc_sd2_reset_b_gpio_io_bit_gpio3_io_bit7>, + <&iomuxc_sd1_clk_gpio_io_bit_gpio3_io_bit8>, + <&iomuxc_sd1_cmd_gpio_io_bit_gpio3_io_bit9>, + <&iomuxc_sd1_data0_gpio_io_bit_gpio3_io_bit10>, + <&iomuxc_sd1_data1_gpio_io_bit_gpio3_io_bit11>, + <&iomuxc_sd1_data2_gpio_io_bit_gpio3_io_bit12>, + <&iomuxc_sd1_data3_gpio_io_bit_gpio3_io_bit13>, + <&iomuxc_sd1_data4_gpio_io_bit_gpio3_io_bit14>, + <&iomuxc_sd1_data5_gpio_io_bit_gpio3_io_bit15>, + <&iomuxc_sd1_data6_gpio_io_bit_gpio3_io_bit16>, + <&iomuxc_sd1_data7_gpio_io_bit_gpio3_io_bit17>, + <&iomuxc_sd1_strobe_gpio_io_bit_gpio3_io_bit18>, + <&iomuxc_sd2_vselect_gpio_io_bit_gpio3_io_bit19>, + <&iomuxc_sd3_clk_gpio_io_bit_gpio3_io_bit20>, + <&iomuxc_sd3_cmd_gpio_io_bit_gpio3_io_bit21>, + <&iomuxc_sd3_data0_gpio_io_bit_gpio3_io_bit22>, + <&iomuxc_sd3_data1_gpio_io_bit_gpio3_io_bit23>, + <&iomuxc_sd3_data2_gpio_io_bit_gpio3_io_bit24>, + <&iomuxc_sd3_data3_gpio_io_bit_gpio3_io_bit25>, + <&iomuxc_ccm_clko1_gpio_io_bit_gpio3_io_bit26>, + <&iomuxc_ccm_clko2_gpio_io_bit_gpio3_io_bit27>, + <&iomuxc_dap_tdi_gpio_io_bit_gpio3_io_bit28>, + <&iomuxc_dap_tms_swdio_gpio_io_bit_gpio3_io_bit29>, + <&iomuxc_dap_tclk_swclk_gpio_io_bit_gpio3_io_bit30>, + <&iomuxc_dap_tdo_traceswo_gpio_io_bit_gpio3_io_bit31>; +}; + +&gpio4{ + pinmux = <&iomuxc_enet1_mdc_gpio_io_bit_gpio4_io_bit0>, + <&iomuxc_enet1_mdio_gpio_io_bit_gpio4_io_bit1>, + <&iomuxc_enet1_td3_gpio_io_bit_gpio4_io_bit2>, + <&iomuxc_enet1_td2_gpio_io_bit_gpio4_io_bit3>, + <&iomuxc_enet1_td1_gpio_io_bit_gpio4_io_bit4>, + <&iomuxc_enet1_td0_gpio_io_bit_gpio4_io_bit5>, + <&iomuxc_enet1_tx_ctl_gpio_io_bit_gpio4_io_bit6>, + <&iomuxc_enet1_txc_gpio_io_bit_gpio4_io_bit7>, + <&iomuxc_enet1_rx_ctl_gpio_io_bit_gpio4_io_bit8>, + <&iomuxc_enet1_rxc_gpio_io_bit_gpio4_io_bit9>, + <&iomuxc_enet1_rd0_gpio_io_bit_gpio4_io_bit10>, + <&iomuxc_enet1_rd1_gpio_io_bit_gpio4_io_bit11>, + <&iomuxc_enet1_rd2_gpio_io_bit_gpio4_io_bit12>, + <&iomuxc_enet1_rd3_gpio_io_bit_gpio4_io_bit13>, + <&iomuxc_enet2_mdc_gpio_io_bit_gpio4_io_bit14>, + <&iomuxc_enet2_mdio_gpio_io_bit_gpio4_io_bit15>, + <&iomuxc_enet2_td3_gpio_io_bit_gpio4_io_bit16>, + <&iomuxc_enet2_td2_gpio_io_bit_gpio4_io_bit17>, + <&iomuxc_enet2_td1_gpio_io_bit_gpio4_io_bit18>, + <&iomuxc_enet2_td0_gpio_io_bit_gpio4_io_bit19>, + <&iomuxc_enet2_tx_ctl_gpio_io_bit_gpio4_io_bit20>, + <&iomuxc_enet2_txc_gpio_io_bit_gpio4_io_bit21>, + <&iomuxc_enet2_rx_ctl_gpio_io_bit_gpio4_io_bit22>, + <&iomuxc_enet2_rxc_gpio_io_bit_gpio4_io_bit23>, + <&iomuxc_enet2_rd0_gpio_io_bit_gpio4_io_bit24>, + <&iomuxc_enet2_rd1_gpio_io_bit_gpio4_io_bit25>, + <&iomuxc_enet2_rd2_gpio_io_bit_gpio4_io_bit26>, + <&iomuxc_enet2_rd3_gpio_io_bit_gpio4_io_bit27>, + <&iomuxc_ccm_clko3_gpio_io_bit_gpio4_io_bit28>, + <&iomuxc_ccm_clko4_gpio_io_bit_gpio4_io_bit29>; +}; + +&gpio5{ + pinmux = <&iomuxc_xspi1_data0_gpio_io_bit_gpio5_io_bit0>, + <&iomuxc_xspi1_data1_gpio_io_bit_gpio5_io_bit1>, + <&iomuxc_xspi1_data2_gpio_io_bit_gpio5_io_bit2>, + <&iomuxc_xspi1_data3_gpio_io_bit_gpio5_io_bit3>, + <&iomuxc_xspi1_data4_gpio_io_bit_gpio5_io_bit4>, + <&iomuxc_xspi1_data5_gpio_io_bit_gpio5_io_bit5>, + <&iomuxc_xspi1_data6_gpio_io_bit_gpio5_io_bit6>, + <&iomuxc_xspi1_data7_gpio_io_bit_gpio5_io_bit7>, + <&iomuxc_xspi1_dqs_gpio_io_bit_gpio5_io_bit8>, + <&iomuxc_xspi1_sclk_gpio_io_bit_gpio5_io_bit9>, + <&iomuxc_xspi1_ss0_b_gpio_io_bit_gpio5_io_bit10>, + <&iomuxc_xspi1_ss1_b_gpio_io_bit_gpio5_io_bit11>, + <&iomuxc_gpio_io32_gpio_io_bit_gpio5_io_bit12>, + <&iomuxc_gpio_io33_gpio_io_bit_gpio5_io_bit13>, + <&iomuxc_gpio_io34_gpio_io_bit_gpio5_io_bit14>; +}; diff --git a/dts/arm64/nxp/nxp_mimx95_19x19_a55.dtsi b/dts/arm64/nxp/nxp_mimx95_19x19_a55.dtsi new file mode 100644 index 0000000000000..27db955645c52 --- /dev/null +++ b/dts/arm64/nxp/nxp_mimx95_19x19_a55.dtsi @@ -0,0 +1,156 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/* + * GPIO pinmux options. These options define the pinmux settings + * for GPIO ports on the package, so that the GPIO driver can + * select GPIO mux options during GPIO configuration. + */ + +&gpio1{ + pinmux = <&iomuxc_i2c1_scl_gpio_io_bit_gpio1_io_bit0>, + <&iomuxc_i2c1_sda_gpio_io_bit_gpio1_io_bit1>, + <&iomuxc_i2c2_scl_gpio_io_bit_gpio1_io_bit2>, + <&iomuxc_i2c2_sda_gpio_io_bit_gpio1_io_bit3>, + <&iomuxc_uart1_rxd_gpio_io_bit_gpio1_io_bit4>, + <&iomuxc_uart1_txd_gpio_io_bit_gpio1_io_bit5>, + <&iomuxc_uart2_rxd_gpio_io_bit_gpio1_io_bit6>, + <&iomuxc_uart2_txd_gpio_io_bit_gpio1_io_bit7>, + <&iomuxc_pdm_clk_gpio_io_bit_gpio1_io_bit8>, + <&iomuxc_pdm_bit_stream0_gpio_io_bit_gpio1_io_bit9>, + <&iomuxc_pdm_bit_stream1_gpio_io_bit_gpio1_io_bit10>, + <&iomuxc_sai1_txfs_gpio_io_bit_gpio1_io_bit11>, + <&iomuxc_sai1_txc_gpio_io_bit_gpio1_io_bit12>, + <&iomuxc_sai1_txd0_gpio_io_bit_gpio1_io_bit13>, + <&iomuxc_sai1_rxd0_gpio_io_bit_gpio1_io_bit14>, + <&iomuxc_wdog_any_gpio_io_bit_gpio1_io_bit15>; +}; + +&gpio2{ + pinmux = <&iomuxc_gpio_io00_gpio_io_bit_gpio2_io_bit0>, + <&iomuxc_gpio_io01_gpio_io_bit_gpio2_io_bit1>, + <&iomuxc_gpio_io02_gpio_io_bit_gpio2_io_bit2>, + <&iomuxc_gpio_io03_gpio_io_bit_gpio2_io_bit3>, + <&iomuxc_gpio_io04_gpio_io_bit_gpio2_io_bit4>, + <&iomuxc_gpio_io05_gpio_io_bit_gpio2_io_bit5>, + <&iomuxc_gpio_io06_gpio_io_bit_gpio2_io_bit6>, + <&iomuxc_gpio_io07_gpio_io_bit_gpio2_io_bit7>, + <&iomuxc_gpio_io08_gpio_io_bit_gpio2_io_bit8>, + <&iomuxc_gpio_io09_gpio_io_bit_gpio2_io_bit9>, + <&iomuxc_gpio_io10_gpio_io_bit_gpio2_io_bit10>, + <&iomuxc_gpio_io11_gpio_io_bit_gpio2_io_bit11>, + <&iomuxc_gpio_io12_gpio_io_bit_gpio2_io_bit12>, + <&iomuxc_gpio_io13_gpio_io_bit_gpio2_io_bit13>, + <&iomuxc_gpio_io14_gpio_io_bit_gpio2_io_bit14>, + <&iomuxc_gpio_io15_gpio_io_bit_gpio2_io_bit15>, + <&iomuxc_gpio_io16_gpio_io_bit_gpio2_io_bit16>, + <&iomuxc_gpio_io17_gpio_io_bit_gpio2_io_bit17>, + <&iomuxc_gpio_io18_gpio_io_bit_gpio2_io_bit18>, + <&iomuxc_gpio_io19_gpio_io_bit_gpio2_io_bit19>, + <&iomuxc_gpio_io20_gpio_io_bit_gpio2_io_bit20>, + <&iomuxc_gpio_io21_gpio_io_bit_gpio2_io_bit21>, + <&iomuxc_gpio_io22_gpio_io_bit_gpio2_io_bit22>, + <&iomuxc_gpio_io23_gpio_io_bit_gpio2_io_bit23>, + <&iomuxc_gpio_io24_gpio_io_bit_gpio2_io_bit24>, + <&iomuxc_gpio_io25_gpio_io_bit_gpio2_io_bit25>, + <&iomuxc_gpio_io26_gpio_io_bit_gpio2_io_bit26>, + <&iomuxc_gpio_io27_gpio_io_bit_gpio2_io_bit27>, + <&iomuxc_gpio_io28_gpio_io_bit_gpio2_io_bit28>, + <&iomuxc_gpio_io29_gpio_io_bit_gpio2_io_bit29>, + <&iomuxc_gpio_io30_gpio_io_bit_gpio2_io_bit30>, + <&iomuxc_gpio_io31_gpio_io_bit_gpio2_io_bit31>; +}; + +&gpio3{ + pinmux = <&iomuxc_sd2_cd_b_gpio_io_bit_gpio3_io_bit0>, + <&iomuxc_sd2_clk_gpio_io_bit_gpio3_io_bit1>, + <&iomuxc_sd2_cmd_gpio_io_bit_gpio3_io_bit2>, + <&iomuxc_sd2_data0_gpio_io_bit_gpio3_io_bit3>, + <&iomuxc_sd2_data1_gpio_io_bit_gpio3_io_bit4>, + <&iomuxc_sd2_data2_gpio_io_bit_gpio3_io_bit5>, + <&iomuxc_sd2_data3_gpio_io_bit_gpio3_io_bit6>, + <&iomuxc_sd2_reset_b_gpio_io_bit_gpio3_io_bit7>, + <&iomuxc_sd1_clk_gpio_io_bit_gpio3_io_bit8>, + <&iomuxc_sd1_cmd_gpio_io_bit_gpio3_io_bit9>, + <&iomuxc_sd1_data0_gpio_io_bit_gpio3_io_bit10>, + <&iomuxc_sd1_data1_gpio_io_bit_gpio3_io_bit11>, + <&iomuxc_sd1_data2_gpio_io_bit_gpio3_io_bit12>, + <&iomuxc_sd1_data3_gpio_io_bit_gpio3_io_bit13>, + <&iomuxc_sd1_data4_gpio_io_bit_gpio3_io_bit14>, + <&iomuxc_sd1_data5_gpio_io_bit_gpio3_io_bit15>, + <&iomuxc_sd1_data6_gpio_io_bit_gpio3_io_bit16>, + <&iomuxc_sd1_data7_gpio_io_bit_gpio3_io_bit17>, + <&iomuxc_sd1_strobe_gpio_io_bit_gpio3_io_bit18>, + <&iomuxc_sd2_vselect_gpio_io_bit_gpio3_io_bit19>, + <&iomuxc_sd3_clk_gpio_io_bit_gpio3_io_bit20>, + <&iomuxc_sd3_cmd_gpio_io_bit_gpio3_io_bit21>, + <&iomuxc_sd3_data0_gpio_io_bit_gpio3_io_bit22>, + <&iomuxc_sd3_data1_gpio_io_bit_gpio3_io_bit23>, + <&iomuxc_sd3_data2_gpio_io_bit_gpio3_io_bit24>, + <&iomuxc_sd3_data3_gpio_io_bit_gpio3_io_bit25>, + <&iomuxc_ccm_clko1_gpio_io_bit_gpio3_io_bit26>, + <&iomuxc_ccm_clko2_gpio_io_bit_gpio3_io_bit27>, + <&iomuxc_dap_tdi_gpio_io_bit_gpio3_io_bit28>, + <&iomuxc_dap_tms_swdio_gpio_io_bit_gpio3_io_bit29>, + <&iomuxc_dap_tclk_swclk_gpio_io_bit_gpio3_io_bit30>, + <&iomuxc_dap_tdo_traceswo_gpio_io_bit_gpio3_io_bit31>; +}; + +&gpio4{ + pinmux = <&iomuxc_enet1_mdc_gpio_io_bit_gpio4_io_bit0>, + <&iomuxc_enet1_mdio_gpio_io_bit_gpio4_io_bit1>, + <&iomuxc_enet1_td3_gpio_io_bit_gpio4_io_bit2>, + <&iomuxc_enet1_td2_gpio_io_bit_gpio4_io_bit3>, + <&iomuxc_enet1_td1_gpio_io_bit_gpio4_io_bit4>, + <&iomuxc_enet1_td0_gpio_io_bit_gpio4_io_bit5>, + <&iomuxc_enet1_tx_ctl_gpio_io_bit_gpio4_io_bit6>, + <&iomuxc_enet1_txc_gpio_io_bit_gpio4_io_bit7>, + <&iomuxc_enet1_rx_ctl_gpio_io_bit_gpio4_io_bit8>, + <&iomuxc_enet1_rxc_gpio_io_bit_gpio4_io_bit9>, + <&iomuxc_enet1_rd0_gpio_io_bit_gpio4_io_bit10>, + <&iomuxc_enet1_rd1_gpio_io_bit_gpio4_io_bit11>, + <&iomuxc_enet1_rd2_gpio_io_bit_gpio4_io_bit12>, + <&iomuxc_enet1_rd3_gpio_io_bit_gpio4_io_bit13>, + <&iomuxc_enet2_mdc_gpio_io_bit_gpio4_io_bit14>, + <&iomuxc_enet2_mdio_gpio_io_bit_gpio4_io_bit15>, + <&iomuxc_enet2_td3_gpio_io_bit_gpio4_io_bit16>, + <&iomuxc_enet2_td2_gpio_io_bit_gpio4_io_bit17>, + <&iomuxc_enet2_td1_gpio_io_bit_gpio4_io_bit18>, + <&iomuxc_enet2_td0_gpio_io_bit_gpio4_io_bit19>, + <&iomuxc_enet2_tx_ctl_gpio_io_bit_gpio4_io_bit20>, + <&iomuxc_enet2_txc_gpio_io_bit_gpio4_io_bit21>, + <&iomuxc_enet2_rx_ctl_gpio_io_bit_gpio4_io_bit22>, + <&iomuxc_enet2_rxc_gpio_io_bit_gpio4_io_bit23>, + <&iomuxc_enet2_rd0_gpio_io_bit_gpio4_io_bit24>, + <&iomuxc_enet2_rd1_gpio_io_bit_gpio4_io_bit25>, + <&iomuxc_enet2_rd2_gpio_io_bit_gpio4_io_bit26>, + <&iomuxc_enet2_rd3_gpio_io_bit_gpio4_io_bit27>, + <&iomuxc_ccm_clko3_gpio_io_bit_gpio4_io_bit28>, + <&iomuxc_ccm_clko4_gpio_io_bit_gpio4_io_bit29>; +}; + +&gpio5{ + pinmux = <&iomuxc_xspi1_data0_gpio_io_bit_gpio5_io_bit0>, + <&iomuxc_xspi1_data1_gpio_io_bit_gpio5_io_bit1>, + <&iomuxc_xspi1_data2_gpio_io_bit_gpio5_io_bit2>, + <&iomuxc_xspi1_data3_gpio_io_bit_gpio5_io_bit3>, + <&iomuxc_xspi1_data4_gpio_io_bit_gpio5_io_bit4>, + <&iomuxc_xspi1_data5_gpio_io_bit_gpio5_io_bit5>, + <&iomuxc_xspi1_data6_gpio_io_bit_gpio5_io_bit6>, + <&iomuxc_xspi1_data7_gpio_io_bit_gpio5_io_bit7>, + <&iomuxc_xspi1_dqs_gpio_io_bit_gpio5_io_bit8>, + <&iomuxc_xspi1_sclk_gpio_io_bit_gpio5_io_bit9>, + <&iomuxc_xspi1_ss0_b_gpio_io_bit_gpio5_io_bit10>, + <&iomuxc_xspi1_ss1_b_gpio_io_bit_gpio5_io_bit11>, + <&iomuxc_gpio_io32_gpio_io_bit_gpio5_io_bit12>, + <&iomuxc_gpio_io33_gpio_io_bit_gpio5_io_bit13>, + <&iomuxc_gpio_io34_gpio_io_bit_gpio5_io_bit14>, + <&iomuxc_gpio_io35_gpio_io_bit_gpio5_io_bit15>, + <&iomuxc_gpio_io36_gpio_io_bit_gpio5_io_bit16>, + <&iomuxc_gpio_io37_gpio_io_bit_gpio5_io_bit17>; +}; diff --git a/dts/arm64/nxp/nxp_mimx95_a55.dtsi b/dts/arm64/nxp/nxp_mimx95_a55.dtsi index 37df069d3dd0c..bae6313aea45a 100644 --- a/dts/arm64/nxp/nxp_mimx95_a55.dtsi +++ b/dts/arm64/nxp/nxp_mimx95_a55.dtsi @@ -4,6 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ +/* Common SoC nodes for i.MX 95 15x15 and i.MX 95 19x19 */ + #include #include #include @@ -469,152 +471,3 @@ status = "disabled"; }; }; - -/* - * GPIO pinmux options. These options define the pinmux settings - * for GPIO ports on the package, so that the GPIO driver can - * select GPIO mux options during GPIO configuration. - */ - -&gpio1{ - pinmux = <&iomuxc_i2c1_scl_gpio_io_bit_gpio1_io_bit0>, - <&iomuxc_i2c1_sda_gpio_io_bit_gpio1_io_bit1>, - <&iomuxc_i2c2_scl_gpio_io_bit_gpio1_io_bit2>, - <&iomuxc_i2c2_sda_gpio_io_bit_gpio1_io_bit3>, - <&iomuxc_uart1_rxd_gpio_io_bit_gpio1_io_bit4>, - <&iomuxc_uart1_txd_gpio_io_bit_gpio1_io_bit5>, - <&iomuxc_uart2_rxd_gpio_io_bit_gpio1_io_bit6>, - <&iomuxc_uart2_txd_gpio_io_bit_gpio1_io_bit7>, - <&iomuxc_pdm_clk_gpio_io_bit_gpio1_io_bit8>, - <&iomuxc_pdm_bit_stream0_gpio_io_bit_gpio1_io_bit9>, - <&iomuxc_pdm_bit_stream1_gpio_io_bit_gpio1_io_bit10>, - <&iomuxc_sai1_txfs_gpio_io_bit_gpio1_io_bit11>, - <&iomuxc_sai1_txc_gpio_io_bit_gpio1_io_bit12>, - <&iomuxc_sai1_txd0_gpio_io_bit_gpio1_io_bit13>, - <&iomuxc_sai1_rxd0_gpio_io_bit_gpio1_io_bit14>, - <&iomuxc_wdog_any_gpio_io_bit_gpio1_io_bit15>; -}; - -&gpio2{ - pinmux = <&iomuxc_gpio_io00_gpio_io_bit_gpio2_io_bit0>, - <&iomuxc_gpio_io01_gpio_io_bit_gpio2_io_bit1>, - <&iomuxc_gpio_io02_gpio_io_bit_gpio2_io_bit2>, - <&iomuxc_gpio_io03_gpio_io_bit_gpio2_io_bit3>, - <&iomuxc_gpio_io04_gpio_io_bit_gpio2_io_bit4>, - <&iomuxc_gpio_io05_gpio_io_bit_gpio2_io_bit5>, - <&iomuxc_gpio_io06_gpio_io_bit_gpio2_io_bit6>, - <&iomuxc_gpio_io07_gpio_io_bit_gpio2_io_bit7>, - <&iomuxc_gpio_io08_gpio_io_bit_gpio2_io_bit8>, - <&iomuxc_gpio_io09_gpio_io_bit_gpio2_io_bit9>, - <&iomuxc_gpio_io10_gpio_io_bit_gpio2_io_bit10>, - <&iomuxc_gpio_io11_gpio_io_bit_gpio2_io_bit11>, - <&iomuxc_gpio_io12_gpio_io_bit_gpio2_io_bit12>, - <&iomuxc_gpio_io13_gpio_io_bit_gpio2_io_bit13>, - <&iomuxc_gpio_io14_gpio_io_bit_gpio2_io_bit14>, - <&iomuxc_gpio_io15_gpio_io_bit_gpio2_io_bit15>, - <&iomuxc_gpio_io16_gpio_io_bit_gpio2_io_bit16>, - <&iomuxc_gpio_io17_gpio_io_bit_gpio2_io_bit17>, - <&iomuxc_gpio_io18_gpio_io_bit_gpio2_io_bit18>, - <&iomuxc_gpio_io19_gpio_io_bit_gpio2_io_bit19>, - <&iomuxc_gpio_io20_gpio_io_bit_gpio2_io_bit20>, - <&iomuxc_gpio_io21_gpio_io_bit_gpio2_io_bit21>, - <&iomuxc_gpio_io22_gpio_io_bit_gpio2_io_bit22>, - <&iomuxc_gpio_io23_gpio_io_bit_gpio2_io_bit23>, - <&iomuxc_gpio_io24_gpio_io_bit_gpio2_io_bit24>, - <&iomuxc_gpio_io25_gpio_io_bit_gpio2_io_bit25>, - <&iomuxc_gpio_io26_gpio_io_bit_gpio2_io_bit26>, - <&iomuxc_gpio_io27_gpio_io_bit_gpio2_io_bit27>, - <&iomuxc_gpio_io28_gpio_io_bit_gpio2_io_bit28>, - <&iomuxc_gpio_io29_gpio_io_bit_gpio2_io_bit29>, - <&iomuxc_gpio_io30_gpio_io_bit_gpio2_io_bit30>, - <&iomuxc_gpio_io31_gpio_io_bit_gpio2_io_bit31>; -}; - -&gpio3{ - pinmux = <&iomuxc_sd2_cd_b_gpio_io_bit_gpio3_io_bit0>, - <&iomuxc_sd2_clk_gpio_io_bit_gpio3_io_bit1>, - <&iomuxc_sd2_cmd_gpio_io_bit_gpio3_io_bit2>, - <&iomuxc_sd2_data0_gpio_io_bit_gpio3_io_bit3>, - <&iomuxc_sd2_data1_gpio_io_bit_gpio3_io_bit4>, - <&iomuxc_sd2_data2_gpio_io_bit_gpio3_io_bit5>, - <&iomuxc_sd2_data3_gpio_io_bit_gpio3_io_bit6>, - <&iomuxc_sd2_reset_b_gpio_io_bit_gpio3_io_bit7>, - <&iomuxc_sd1_clk_gpio_io_bit_gpio3_io_bit8>, - <&iomuxc_sd1_cmd_gpio_io_bit_gpio3_io_bit9>, - <&iomuxc_sd1_data0_gpio_io_bit_gpio3_io_bit10>, - <&iomuxc_sd1_data1_gpio_io_bit_gpio3_io_bit11>, - <&iomuxc_sd1_data2_gpio_io_bit_gpio3_io_bit12>, - <&iomuxc_sd1_data3_gpio_io_bit_gpio3_io_bit13>, - <&iomuxc_sd1_data4_gpio_io_bit_gpio3_io_bit14>, - <&iomuxc_sd1_data5_gpio_io_bit_gpio3_io_bit15>, - <&iomuxc_sd1_data6_gpio_io_bit_gpio3_io_bit16>, - <&iomuxc_sd1_data7_gpio_io_bit_gpio3_io_bit17>, - <&iomuxc_sd1_strobe_gpio_io_bit_gpio3_io_bit18>, - <&iomuxc_sd2_vselect_gpio_io_bit_gpio3_io_bit19>, - <&iomuxc_sd3_clk_gpio_io_bit_gpio3_io_bit20>, - <&iomuxc_sd3_cmd_gpio_io_bit_gpio3_io_bit21>, - <&iomuxc_sd3_data0_gpio_io_bit_gpio3_io_bit22>, - <&iomuxc_sd3_data1_gpio_io_bit_gpio3_io_bit23>, - <&iomuxc_sd3_data2_gpio_io_bit_gpio3_io_bit24>, - <&iomuxc_sd3_data3_gpio_io_bit_gpio3_io_bit25>, - <&iomuxc_ccm_clko1_gpio_io_bit_gpio3_io_bit26>, - <&iomuxc_ccm_clko2_gpio_io_bit_gpio3_io_bit27>, - <&iomuxc_dap_tdi_gpio_io_bit_gpio3_io_bit28>, - <&iomuxc_dap_tms_swdio_gpio_io_bit_gpio3_io_bit29>, - <&iomuxc_dap_tclk_swclk_gpio_io_bit_gpio3_io_bit30>, - <&iomuxc_dap_tdo_traceswo_gpio_io_bit_gpio3_io_bit31>; -}; - -&gpio4{ - pinmux = <&iomuxc_enet1_mdc_gpio_io_bit_gpio4_io_bit0>, - <&iomuxc_enet1_mdio_gpio_io_bit_gpio4_io_bit1>, - <&iomuxc_enet1_td3_gpio_io_bit_gpio4_io_bit2>, - <&iomuxc_enet1_td2_gpio_io_bit_gpio4_io_bit3>, - <&iomuxc_enet1_td1_gpio_io_bit_gpio4_io_bit4>, - <&iomuxc_enet1_td0_gpio_io_bit_gpio4_io_bit5>, - <&iomuxc_enet1_tx_ctl_gpio_io_bit_gpio4_io_bit6>, - <&iomuxc_enet1_txc_gpio_io_bit_gpio4_io_bit7>, - <&iomuxc_enet1_rx_ctl_gpio_io_bit_gpio4_io_bit8>, - <&iomuxc_enet1_rxc_gpio_io_bit_gpio4_io_bit9>, - <&iomuxc_enet1_rd0_gpio_io_bit_gpio4_io_bit10>, - <&iomuxc_enet1_rd1_gpio_io_bit_gpio4_io_bit11>, - <&iomuxc_enet1_rd2_gpio_io_bit_gpio4_io_bit12>, - <&iomuxc_enet1_rd3_gpio_io_bit_gpio4_io_bit13>, - <&iomuxc_enet2_mdc_gpio_io_bit_gpio4_io_bit14>, - <&iomuxc_enet2_mdio_gpio_io_bit_gpio4_io_bit15>, - <&iomuxc_enet2_td3_gpio_io_bit_gpio4_io_bit16>, - <&iomuxc_enet2_td2_gpio_io_bit_gpio4_io_bit17>, - <&iomuxc_enet2_td1_gpio_io_bit_gpio4_io_bit18>, - <&iomuxc_enet2_td0_gpio_io_bit_gpio4_io_bit19>, - <&iomuxc_enet2_tx_ctl_gpio_io_bit_gpio4_io_bit20>, - <&iomuxc_enet2_txc_gpio_io_bit_gpio4_io_bit21>, - <&iomuxc_enet2_rx_ctl_gpio_io_bit_gpio4_io_bit22>, - <&iomuxc_enet2_rxc_gpio_io_bit_gpio4_io_bit23>, - <&iomuxc_enet2_rd0_gpio_io_bit_gpio4_io_bit24>, - <&iomuxc_enet2_rd1_gpio_io_bit_gpio4_io_bit25>, - <&iomuxc_enet2_rd2_gpio_io_bit_gpio4_io_bit26>, - <&iomuxc_enet2_rd3_gpio_io_bit_gpio4_io_bit27>, - <&iomuxc_ccm_clko3_gpio_io_bit_gpio4_io_bit28>, - <&iomuxc_ccm_clko4_gpio_io_bit_gpio4_io_bit29>; -}; - -&gpio5{ - pinmux = <&iomuxc_xspi1_data0_gpio_io_bit_gpio5_io_bit0>, - <&iomuxc_xspi1_data1_gpio_io_bit_gpio5_io_bit1>, - <&iomuxc_xspi1_data2_gpio_io_bit_gpio5_io_bit2>, - <&iomuxc_xspi1_data3_gpio_io_bit_gpio5_io_bit3>, - <&iomuxc_xspi1_data4_gpio_io_bit_gpio5_io_bit4>, - <&iomuxc_xspi1_data5_gpio_io_bit_gpio5_io_bit5>, - <&iomuxc_xspi1_data6_gpio_io_bit_gpio5_io_bit6>, - <&iomuxc_xspi1_data7_gpio_io_bit_gpio5_io_bit7>, - <&iomuxc_xspi1_dqs_gpio_io_bit_gpio5_io_bit8>, - <&iomuxc_xspi1_sclk_gpio_io_bit_gpio5_io_bit9>, - <&iomuxc_xspi1_ss0_b_gpio_io_bit_gpio5_io_bit10>, - <&iomuxc_xspi1_ss1_b_gpio_io_bit_gpio5_io_bit11>, - <&iomuxc_gpio_io32_gpio_io_bit_gpio5_io_bit12>, - <&iomuxc_gpio_io33_gpio_io_bit_gpio5_io_bit13>, - <&iomuxc_gpio_io34_gpio_io_bit_gpio5_io_bit14>, - <&iomuxc_gpio_io35_gpio_io_bit_gpio5_io_bit15>, - <&iomuxc_gpio_io36_gpio_io_bit_gpio5_io_bit16>, - <&iomuxc_gpio_io37_gpio_io_bit_gpio5_io_bit17>; -}; From 01f7953d62f0320771532ae70fb64da1b4fb668e Mon Sep 17 00:00:00 2001 From: Aziz Sellami Date: Mon, 3 Feb 2025 10:43:52 +0100 Subject: [PATCH 2/2] boards: nxp: imx95_evk_15x15: add i.MX 95 15x15 LPDDR4x EVK variant Add initial support for i.MX 95 15x15 LPDDR4x EVK board. This board uses the i.MX 95 15x15 SoC that shares many similarities to the already supported i.MX 95 19x19 SoC used for the i.MX 95 19x19 LPDDR5 EVK. This enables Zephyr to boot and run on the i.MX 95 15x15 EVK and provides a foundation for further peripheral enablement and application development. Signed-off-by: Aziz Sellami --- .../imx95_evk_15x15/Kconfig.imx95_evk_15x15 | 6 + boards/nxp/imx95_evk_15x15/board.yml | 6 + boards/nxp/imx95_evk_15x15/doc/index.rst | 138 ++++++++++++++++++ .../imx95_evk_15x15-pinctrl.dtsi | 29 ++++ .../imx95_evk_15x15_mimx9596_a55.dts | 55 +++++++ .../imx95_evk_15x15_mimx9596_a55.yaml | 18 +++ .../imx95_evk_15x15_mimx9596_a55_defconfig | 35 +++++ soc/nxp/imx/imx9/imx95/Kconfig.soc | 4 + west.yml | 2 +- 9 files changed, 292 insertions(+), 1 deletion(-) create mode 100644 boards/nxp/imx95_evk_15x15/Kconfig.imx95_evk_15x15 create mode 100644 boards/nxp/imx95_evk_15x15/board.yml create mode 100644 boards/nxp/imx95_evk_15x15/doc/index.rst create mode 100644 boards/nxp/imx95_evk_15x15/imx95_evk_15x15-pinctrl.dtsi create mode 100644 boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55.dts create mode 100644 boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55.yaml create mode 100644 boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55_defconfig diff --git a/boards/nxp/imx95_evk_15x15/Kconfig.imx95_evk_15x15 b/boards/nxp/imx95_evk_15x15/Kconfig.imx95_evk_15x15 new file mode 100644 index 0000000000000..7ec64a53b836b --- /dev/null +++ b/boards/nxp/imx95_evk_15x15/Kconfig.imx95_evk_15x15 @@ -0,0 +1,6 @@ +# Copyright 2025 NXP +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_IMX95_EVK_15X15 + select SOC_MIMX9596_A55 if BOARD_IMX95_EVK_15X15_MIMX9596_A55 + select SOC_PART_NUMBER_MIMX9596AVTXN diff --git a/boards/nxp/imx95_evk_15x15/board.yml b/boards/nxp/imx95_evk_15x15/board.yml new file mode 100644 index 0000000000000..88f587e65ff24 --- /dev/null +++ b/boards/nxp/imx95_evk_15x15/board.yml @@ -0,0 +1,6 @@ +board: + name: imx95_evk_15x15 + full_name: i.MX95 15x15 EVK + vendor: nxp + socs: + - name: mimx9596 diff --git a/boards/nxp/imx95_evk_15x15/doc/index.rst b/boards/nxp/imx95_evk_15x15/doc/index.rst new file mode 100644 index 0000000000000..d8cd50dc668c9 --- /dev/null +++ b/boards/nxp/imx95_evk_15x15/doc/index.rst @@ -0,0 +1,138 @@ +.. zephyr:board:: imx95_evk_15x15 + +Overview +******** + +The i.MX95 EVK (IMX95LP4XEVK-15) board is a platform designed to show the +most commonly used features of the i.MX 95 applications processor. +It is an entry-level development board, which helps developers to get familiar +with the processor before investing a large amount of resources in more +specific designs. The i.MX 95 device on the board comes in a compact +15 x 15 mm package. + +Hardware +******** + +- i.MX 95 applications processor + + - The processor integrates up to six Arm Cortex-A55 cores, and supports + functional safety with built-in Arm Cortex-M33 and -M7 cores + +- DRAM memory: 8-Gbit LPDDR4x DRAM +- eMMC: 64 GB Micron eMMC +- USB interface: Two USB ports: Type-A and Type-C +- Audio codec interface + + - One audio codec WM8962B + - One 3.5 mm 4-pole CTIA standard audio jack + - One 4-pin connector to connect speaker + +- Ethernet interface + + - ENET2 controller + + - Supports 100 Mbit/s or 1000 Mbit/s RGMII Ethernet with one RJ45 + connector connected with an external PHY, RTL8211 + + - ENET1 controller + + - Supports 100 Mbit/s or 1000 Mbit/s RGMII Ethernet with one RJ45 + connector connected with an external PHY, RTL8211 + +- M.2 interface: One Wi-Fi/Bluetooth Murata Type-2EL module based on NXP AW612 + chip supporting 1x1 Wi-Fi 6 and Bluetooth 5.3 + +- MIPI CSI interface: Connects to one 22-pin or 36-pin miniSAS connector using x4 lane + configuration +- MIPI CSIDSI interface: Connects to one 36-pin miniSAS connector using x4 lane + configuration +- LVDS interface: two mini-SAS connectors each with x4-lane configuration +- CAN interface: One 4-pin CAN headers for external connection +- SD card interface: one 4-bit SD3.0 microSD card +- I2C interface: I2C1 to I2C6 controllers +- FT4232H I2C interface: PCT2075 temperature sensor and current monitoring devices +- ADC interface: two 4-channel ADC header +- Debug interface + + - One USB-to-UART/MPSSE device, FT4232H + - One USB 2.0 Type-C connector (J31) for FT4232H provides quad serial ports + +Supported Features +================== + +.. zephyr:board-supported-hw:: + +System Clock +------------ + +This board configuration uses a system clock frequency of 24 MHz for Cortex-A55. +Cortex-A55 Core runs up to 1.8 GHz. + +Serial Port +----------- + +This board configuration uses a single serial communication channel with the +CPU's UART1 for Cortex-A55. + +Programming and Debugging (A55) +******************************* + +Use this configuration to run basic Zephyr applications and kernel tests, +for example, with the :zephyr:code-sample:`synchronization` sample: + +1. Build and run the Non-SMP application + +.. zephyr-app-commands:: + :zephyr-app: samples/synchronization + :host-os: unix + :board: imx95_evk_15x15/mimx9596/a55 + :goals: build + +This will build an image (zephyr.bin) with the synchronization sample app. + +Copy the compiled ``zephyr.bin`` to the first FAT partition of the SD card and +plug the SD card into the board. Power it up and stop the u-boot execution at +prompt. + +Use U-Boot to load and kick zephyr.bin to Cortex-A55 Core1: + +.. code-block:: console + + fatload mmc 1:1 0xd0000000 zephyr.bin; dcache flush; icache flush; cpu 1 release 0xd0000000 + + +Or use the following command to kick zephyr.bin to Cortex-A55 Core0: + +.. code-block:: console + + fatload mmc 1:1 0xd0000000 zephyr.bin; dcache flush; icache flush; go 0xd0000000 + + +It will display the following console output: + +.. code-block:: console + + *** Booting Zephyr OS build v3.6.0-4569-g483c01ca11a7 *** + thread_a: Hello World from cpu 0 on imx95_evk_15x15! + thread_b: Hello World from cpu 0 on imx95_evk_15x15! + thread_a: Hello World from cpu 0 on imx95_evk_15x15! + thread_b: Hello World from cpu 0 on imx95_evk_15x15! + thread_a: Hello World from cpu 0 on imx95_evk_15x15! + +.. _System Control and Management Interface (SCMI): + https://developer.arm.com/documentation/den0056/latest/ + +.. _i.MX Linux BSP release: + https://www.nxp.com/design/design-center/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX + +.. _MCUX SDK release: + https://mcuxpresso.nxp.com/ + +References +========== + +More information can refer to NXP official website: +`NXP website`_. + +.. _NXP website: + https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-9-processors/i-mx-95-applications-processor-family-high-performance-safety-enabled-platform-with-eiq-neutron-npu:iMX95 diff --git a/boards/nxp/imx95_evk_15x15/imx95_evk_15x15-pinctrl.dtsi b/boards/nxp/imx95_evk_15x15/imx95_evk_15x15-pinctrl.dtsi new file mode 100644 index 0000000000000..cfe6eebb51c1e --- /dev/null +++ b/boards/nxp/imx95_evk_15x15/imx95_evk_15x15-pinctrl.dtsi @@ -0,0 +1,29 @@ +/* + * Copyright 2025 NXP + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +&pinctrl { + + lpuart1_default: lpuart1_default { + group0 { + pinmux = <&iomuxc_uart1_rxd_lpuart_rx_lpuart1_rx>, + <&iomuxc_uart1_txd_lpuart_tx_lpuart1_tx>; + bias-pull-up; + slew-rate = "slightly_fast"; + drive-strength = "x4"; + }; + }; + + lpuart3_default: lpuart3_default { + group0 { + pinmux = <&iomuxc_gpio_io15_lpuart_rx_lpuart3_rx>, + <&iomuxc_gpio_io14_lpuart_tx_lpuart3_tx>; + bias-pull-up; + slew-rate = "slightly_fast"; + drive-strength = "x4"; + }; + }; +}; diff --git a/boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55.dts b/boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55.dts new file mode 100644 index 0000000000000..38e28f41ce70f --- /dev/null +++ b/boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55.dts @@ -0,0 +1,55 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include "imx95_evk_15x15-pinctrl.dtsi" + +/ { + model = "NXP i.MX95 15x15 A55"; + compatible = "fsl,mimx95"; + + chosen { + zephyr,console = &lpuart1; + zephyr,shell-uart = &lpuart1; + /* sram node actually locates at DDR DRAM */ + zephyr,sram = &dram; + }; + + cpus { + cpu@0 { + status = "disabled"; + }; + + cpu@100 { + status = "disabled"; + }; + + cpu@200 { + status = "disabled"; + }; + + cpu@300 { + status = "disabled"; + }; + + cpu@400 { + status = "disabled"; + }; + }; + + dram: memory@d0000000 { + reg = <0xd0000000 DT_SIZE_M(1)>; + }; +}; + +&lpuart1 { + status = "okay"; + current-speed = <115200>; + pinctrl-0 = <&lpuart1_default>; + pinctrl-names = "default"; +}; diff --git a/boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55.yaml b/boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55.yaml new file mode 100644 index 0000000000000..2d7f8c3559701 --- /dev/null +++ b/boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55.yaml @@ -0,0 +1,18 @@ +# +# Copyright 2025 NXP +# +# SPDX-License-Identifier: Apache-2.0 +# + +identifier: imx95_evk_15x15/mimx9596/a55 +name: NXP i.MX95 15x15 EVK A55 +type: mcu +arch: arm64 +toolchain: + - zephyr + - cross-compile +ram: 1024 +supported: + - uart + - counter +vendor: nxp diff --git a/boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55_defconfig b/boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55_defconfig new file mode 100644 index 0000000000000..962f30006cffa --- /dev/null +++ b/boards/nxp/imx95_evk_15x15/imx95_evk_15x15_mimx9596_a55_defconfig @@ -0,0 +1,35 @@ +# +# Copyright 2025 NXP +# +# SPDX-License-Identifier: Apache-2.0 + +# ARM Options +CONFIG_AARCH64_IMAGE_HEADER=y +CONFIG_ARMV8_A_NS=y + +# MMU Options +CONFIG_MAX_XLAT_TABLES=64 + +# Cache Options +CONFIG_CACHE_MANAGEMENT=y +CONFIG_DCACHE_LINE_SIZE_DETECT=y +CONFIG_ICACHE_LINE_SIZE_DETECT=y + +# Zephyr Kernel Configuration +CONFIG_XIP=n +CONFIG_KERNEL_DIRECT_MAP=y + +# Serial Drivers +CONFIG_SERIAL=y +CONFIG_UART_INTERRUPT_DRIVEN=y + +# Enable Console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +CONFIG_CLOCK_CONTROL=y + +CONFIG_MBOX=y +CONFIG_ARM_SCMI=y +CONFIG_INTC_INIT_PRIORITY=2 +CONFIG_MBOX_INIT_PRIORITY=3 diff --git a/soc/nxp/imx/imx9/imx95/Kconfig.soc b/soc/nxp/imx/imx9/imx95/Kconfig.soc index b7a1dec0fed21..eb58c0603022e 100644 --- a/soc/nxp/imx/imx9/imx95/Kconfig.soc +++ b/soc/nxp/imx/imx9/imx95/Kconfig.soc @@ -20,8 +20,12 @@ config SOC_MIMX9596_A55 config SOC default "mimx9596" if SOC_MIMX9596 +config SOC_PART_NUMBER_MIMX9596AVTXN + bool + config SOC_PART_NUMBER_MIMX9596AVZXN bool config SOC_PART_NUMBER + default "MIMX9596AVTXN" if SOC_PART_NUMBER_MIMX9596AVTXN default "MIMX9596AVZXN" if SOC_PART_NUMBER_MIMX9596AVZXN diff --git a/west.yml b/west.yml index fe8253bfa2f22..86c3c6d6745f1 100644 --- a/west.yml +++ b/west.yml @@ -210,7 +210,7 @@ manifest: groups: - hal - name: hal_nxp - revision: 7a52cbb7cb56db3a276cbd617db3ea7cc3435d12 + revision: refs/pull/553/head path: modules/hal/nxp groups: - hal