diff --git a/boards/arm/mimxrt1010_evk/mimxrt1010_evk-pinctrl.dtsi b/boards/arm/mimxrt1010_evk/mimxrt1010_evk-pinctrl.dtsi new file mode 100644 index 00000000000..65b31812349 --- /dev/null +++ b/boards/arm/mimxrt1010_evk/mimxrt1010_evk-pinctrl.dtsi @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mimxrt1010_evk.mex + */ + +#include + +&pinctrl { + /* ADC Channels 1 and 2, exposed as pins 10 and 12 on J26 of EVK */ + pinmux_adc1: pinmux_adc1 { + group0 { + pinmux = <&iomuxc_gpio_ad_01_adc1_in1>, + <&iomuxc_gpio_ad_02_adc1_in2>; + drive-strength = "r0-4"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_01_lpi2c1_sda>; + drive-strength = "r0-4"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_02_lpi2c1_scl>; + drive-strength = "r0-4"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpspi1: pinmux_lpspi1 { + group0 { + pinmux = <&iomuxc_gpio_ad_06_lpspi1_sck>, + <&iomuxc_gpio_ad_05_lpspi1_pcs0>, + <&iomuxc_gpio_ad_04_lpspi1_sdo>, + <&iomuxc_gpio_ad_03_lpspi1_sdi>; + drive-strength = "r0-4"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* MCUX SDK sets the drive strength of pins on RT1010 to 4 by default */ + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_09_lpuart1_rxd>, + <&iomuxc_gpio_10_lpuart1_txd>; + drive-strength = "r0-4"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_09_gpiomux_io09>; + drive-strength = "r0-4"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_10_lpuart1_txd>; + drive-strength = "r0-4"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with adc1 */ + pinmux_lpuart4: pinmux_lpuart4 { + group0 { + pinmux = <&iomuxc_gpio_ad_01_lpuart4_rxd>, + <&iomuxc_gpio_ad_02_lpuart4_txd>; + drive-strength = "r0-4"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with adc1 */ + pinmux_lpuart4_sleep: pinmux_lpuart4_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_01_gpiomux_io15>; + drive-strength = "r0-4"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_02_lpuart4_txd>; + drive-strength = "r0-4"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_sai1: pinmux_sai1 { + group0 { + pinmux = <&iomuxc_gpio_08_sai1_mclk>, + <&iomuxc_gpio_03_sai1_rx_data0>, + <&iomuxc_gpio_04_sai1_tx_data0>, + <&iomuxc_gpio_07_sai1_tx_sync>, + <&iomuxc_gpio_06_sai1_tx_bclk>; + drive-strength = "r0-4"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + +}; + diff --git a/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts b/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts index c9a7c3610f6..83f532b6cd7 100644 --- a/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts +++ b/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include "mimxrt1010_evk-pinctrl.dtsi" / { model = "NXP MIMXRT1010-EVK board"; @@ -43,6 +44,12 @@ arduino_serial: &lpuart1 {}; +&lpuart4 { + pinctrl-0 = <&pinmux_lpuart4>; + pinctrl-1 = <&pinmux_lpuart4_sleep>; + pinctrl-names = "default", "sleep"; +}; + &flexspi { reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(16)>; at25sf128a: at25sf128a@0 { @@ -58,11 +65,16 @@ arduino_serial: &lpuart1 {}; &lpi2c1 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; }; &lpuart1 { status = "okay"; current-speed = <115200>; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; }; &lpspi1 { @@ -70,6 +82,8 @@ arduino_serial: &lpuart1 {}; /* DMA channels 0 and 1, muxed to LPSPI1 RX and TX */ dmas = <&edma0 0 13>, <&edma0 1 14>; dma-names = "rx", "tx"; + pinctrl-0 = <&pinmux_lpspi1>; + pinctrl-names = "default"; }; zephyr_udc0: &usb1 { @@ -78,6 +92,13 @@ zephyr_udc0: &usb1 { &adc1 { status = "okay"; + pinctrl-0 = <&pinmux_adc1>; + pinctrl-names = "default"; +}; + +&sai1 { + pinctrl-0 = <&pinmux_sai1>; + pinctrl-names = "default"; }; &edma0 { diff --git a/boards/arm/mimxrt1015_evk/mimxrt1015_evk-pinctrl.dtsi b/boards/arm/mimxrt1015_evk/mimxrt1015_evk-pinctrl.dtsi new file mode 100644 index 00000000000..412eeeb0e4c --- /dev/null +++ b/boards/arm/mimxrt1015_evk/mimxrt1015_evk-pinctrl.dtsi @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mimxrt1015_evk.mex + */ + +#include + +&pinctrl { + /* adc1 inputs 1 and 13 */ + pinmux_adc1: pinmux_adc1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_14_adc1_in1>, + <&iomuxc_gpio_ad_b1_13_adc1_in13>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_14_lpi2c1_scl>, + <&iomuxc_gpio_ad_b1_15_lpi2c1_sda>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + pinmux_lpspi1: pinmux_lpspi1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_10_lpspi1_sck>, + <&iomuxc_gpio_ad_b0_11_lpspi1_pcs0>, + <&iomuxc_gpio_ad_b0_12_lpspi1_sdo>, + <&iomuxc_gpio_ad_b0_13_lpspi1_sdi>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_07_lpuart1_rx>, + <&iomuxc_gpio_ad_b0_06_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_07_gpio1_io07>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_06_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart4: pinmux_lpuart4 { + group0 { + pinmux = <&iomuxc_gpio_emc_33_lpuart4_rx>, + <&iomuxc_gpio_emc_32_lpuart4_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart4_sleep: pinmux_lpuart4_sleep { + group0 { + pinmux = <&iomuxc_gpio_emc_33_gpio3_io01>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_emc_32_lpuart4_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_sai1: pinmux_sai1 { + group0 { + pinmux = <&iomuxc_gpio_emc_20_sai1_mclk>, + <&iomuxc_gpio_emc_26_sai1_tx_bclk>, + <&iomuxc_gpio_emc_25_sai1_tx_data0>, + <&iomuxc_gpio_emc_21_sai1_rx_data0>, + <&iomuxc_gpio_emc_27_sai1_tx_sync>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* user led and board SW4 */ + pinmux_user: pinmux_user { + group0 { + pinmux = <&iomuxc_gpio_emc_09_gpio2_io09>; + drive-strength = "r0-4"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b1_01_gpio3_io21>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + +}; + diff --git a/boards/arm/mimxrt1015_evk/mimxrt1015_evk.dts b/boards/arm/mimxrt1015_evk/mimxrt1015_evk.dts index 6f693555811..669d51f1626 100644 --- a/boards/arm/mimxrt1015_evk/mimxrt1015_evk.dts +++ b/boards/arm/mimxrt1015_evk/mimxrt1015_evk.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include "mimxrt1015_evk-pinctrl.dtsi" / { model = "NXP MIMXRT1015-EVK board"; @@ -70,7 +71,11 @@ }; }; -arduino_serial: &lpuart4 {}; +arduino_serial: &lpuart4 { + pinctrl-0 = <&pinmux_lpuart4>; + pinctrl-1 = <&pinmux_lpuart4_sleep>; + pinctrl-names = "default", "sleep"; +}; &flexspi { reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(16)>; @@ -87,11 +92,16 @@ arduino_serial: &lpuart4 {}; &lpi2c1 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; }; &lpuart1 { status = "okay"; current-speed = <115200>; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; }; &lpspi1 { @@ -99,6 +109,8 @@ arduino_serial: &lpuart4 {}; /* DMA channels 0 and 1, muxed to LPSPI1 RX and TX */ dmas = <&edma0 0 13>, <&edma0 1 14>; dma-names = "rx", "tx"; + pinctrl-0 = <&pinmux_lpspi1>; + pinctrl-names = "default"; }; zephyr_udc0: &usb1 { @@ -107,12 +119,19 @@ zephyr_udc0: &usb1 { &adc1 { status = "okay"; + pinctrl-0 = <&pinmux_adc1>; + pinctrl-names = "default"; }; &edma0 { status = "okay"; }; +&sai1 { + pinctrl-0 = <&pinmux_sai1>; + pinctrl-names = "default"; +}; + /* Enable GPT for use as a hardware timer. This disables Cortex Systick. * to use systick, change this node from "gpt_hw_timer" to "systick" */ diff --git a/boards/arm/mimxrt1020_evk/mimxrt1020_evk-pinctrl.dtsi b/boards/arm/mimxrt1020_evk/mimxrt1020_evk-pinctrl.dtsi new file mode 100644 index 00000000000..8da66d34084 --- /dev/null +++ b/boards/arm/mimxrt1020_evk/mimxrt1020_evk-pinctrl.dtsi @@ -0,0 +1,327 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mimxrt1020_evk.mex + */ + +#include + +&pinctrl { + /* ADC1 inputs 10 and 11 */ + pinmux_adc1: pinmux_adc1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_10_adc1_in10>, + <&iomuxc_gpio_ad_b1_11_adc1_in11>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* Note: USER_LED conflicts with ENET_RST */ + pinmux_enet: pinmux_enet { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_08_enet_ref_clk>; + bias-disable; + drive-strength = "r0-6"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_04_gpio1_io04>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_ad_b0_09_enet_rx_data1>, + <&iomuxc_gpio_ad_b0_11_enet_rx_en>, + <&iomuxc_gpio_ad_b0_14_enet_tx_data0>, + <&iomuxc_gpio_ad_b0_15_enet_tx_data1>, + <&iomuxc_gpio_ad_b0_13_enet_tx_en>, + <&iomuxc_gpio_ad_b0_12_enet_rx_er>, + <&iomuxc_gpio_emc_40_enet_mdio>, + <&iomuxc_gpio_emc_41_enet_mdc>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_b1_06_gpio1_io22>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group4 { + pinmux = <&iomuxc_gpio_ad_b0_10_enet_rx_data0>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_flexcan1: pinmux_flexcan1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_00_flexcan1_tx>, + <&iomuxc_gpio_sd_b1_01_flexcan1_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_14_lpi2c1_scl>, + <&iomuxc_gpio_ad_b1_15_lpi2c1_sda>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + pinmux_lpi2c4: pinmux_lpi2c4 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_03_lpi2c4_sda>, + <&iomuxc_gpio_sd_b1_02_lpi2c4_scl>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* conflicts with enet pinmux */ + pinmux_lpspi1: pinmux_lpspi1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_10_lpspi1_sck>, + <&iomuxc_gpio_ad_b0_11_lpspi1_pcs0>, + <&iomuxc_gpio_ad_b0_12_lpspi1_sdo>, + <&iomuxc_gpio_ad_b0_13_lpspi1_sdi>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_07_lpuart1_rx>, + <&iomuxc_gpio_ad_b0_06_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_07_gpio1_io07>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_06_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with user led */ + pinmux_lpuart2: pinmux_lpuart2 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_09_lpuart2_rx>, + <&iomuxc_gpio_ad_b1_08_lpuart2_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with user led */ + pinmux_lpuart2_sleep: pinmux_lpuart2_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_09_gpio1_io25>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b1_08_lpuart2_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* intentionally left empty */ + pinmux_ptp: pinmux_ptp { + }; + + pinmux_sai3: pinmux_sai3 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_06_sai3_tx_bclk>, + <&iomuxc_gpio_sd_b1_07_sai3_tx_sync>, + <&iomuxc_gpio_sd_b1_08_sai3_tx_data>, + <&iomuxc_gpio_sd_b1_11_sai3_rx_data>, + <&iomuxc_gpio_emc_28_sai3_mclk>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_usdhc1: pinmux_usdhc1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_03_usdhc1_clk>; + bias-disable; + drive-strength = "r0"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_02_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_00_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_01_usdhc1_data3>, + <&iomuxc_gpio_sd_b0_06_gpio3_io19>; + drive-strength = "r0"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_ad_b1_07_usdhc1_vselect>; + drive-strength = "r0-4"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group3 { + pinmux = <&iomuxc_gpio_sd_b1_04_gpio3_io24>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* fast pinmux settings for USDHC (over 100 Mhz) */ + pinmux_usdhc1_fast: pinmux_usdhc1_fast { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_03_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_02_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_00_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_01_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* medium pinmux settings for USDHC (under 100 Mhz) */ + pinmux_usdhc1_med: pinmux_usdhc1_med { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_03_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_02_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_00_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_01_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + }; + + /* slow pinmux settings for USDHC (under 50 Mhz) */ + pinmux_usdhc1_slow: pinmux_usdhc1_slow { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_03_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_02_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_00_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_01_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + }; + + /* user led and board SW0 */ + pinmux_user: pinmux_user { + group0 { + pinmux = <&iomuxc_snvs_wakeup_gpio5_io00>; + drive-strength = "r0-4"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_05_gpio1_io05>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + +}; + diff --git a/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts b/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts index aee07d9f7f1..b4e2872d70b 100644 --- a/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts +++ b/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include "mimxrt1020_evk-pinctrl.dtsi" / { model = "NXP MIMXRT1020-EVK board"; @@ -80,7 +81,11 @@ }; }; -arduino_serial: &lpuart2 {}; +arduino_serial: &lpuart2 { + pinctrl-0 = <&pinmux_lpuart2>; + pinctrl-1 = <&pinmux_lpuart2_sleep>; + pinctrl-names = "default", "sleep"; +}; &flexspi { status = "okay"; @@ -127,15 +132,22 @@ arduino_serial: &lpuart2 {}; &lpi2c1 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; }; &lpi2c4 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c4>; + pinctrl-names = "default"; }; &lpuart1 { status = "okay"; current-speed = <115200>; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; }; &lpspi1 { @@ -143,12 +155,18 @@ arduino_serial: &lpuart2 {}; /* DMA channels 0 and 1, muxed to LPSPI1 RX and TX */ dmas = <&edma0 0 13>, <&edma0 1 14>; dma-names = "rx", "tx"; + pinctrl-0 = <&pinmux_lpspi1>; + pinctrl-names = "default"; }; &enet { status = "okay"; + pinctrl-0 = <&pinmux_enet>; + pinctrl-names = "default"; ptp { status = "okay"; + pinctrl-0 = <&pinmux_ptp>; + pinctrl-names = "default"; }; }; @@ -160,10 +178,22 @@ zephyr_udc0: &usb1 { status = "okay"; cd-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; no-1-8-v; + pinctrl-0 = <&pinmux_usdhc1>; + pinctrl-1 = <&pinmux_usdhc1_slow>; + pinctrl-2 = <&pinmux_usdhc1_med>; + pinctrl-3 = <&pinmux_usdhc1_fast>; + pinctrl-names = "default", "slow", "med", "fast"; }; &adc1 { status = "okay"; + pinctrl-0 = <&pinmux_adc1>; + pinctrl-names = "default"; +}; + +&sai3 { + pinctrl-0 = <&pinmux_sai3>; + pinctrl-names = "default"; }; &edma0 { diff --git a/boards/arm/mimxrt1024_evk/mimxrt1024_evk-pinctrl.dtsi b/boards/arm/mimxrt1024_evk/mimxrt1024_evk-pinctrl.dtsi new file mode 100644 index 00000000000..60cf68d6a3f --- /dev/null +++ b/boards/arm/mimxrt1024_evk/mimxrt1024_evk-pinctrl.dtsi @@ -0,0 +1,309 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mimxrt1024_evk.mex + */ + +#include + +&pinctrl { + /* ADC1 inputs 10 and 11 */ + pinmux_adc1: pinmux_adc1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_10_adc1_in10>, + <&iomuxc_gpio_ad_b1_11_adc1_in11>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* Note: USER_LED conflicts with ENET_RST */ + pinmux_enet: pinmux_enet { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_08_enet_ref_clk>; + bias-disable; + drive-strength = "r0-6"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_04_gpio1_io04>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_ad_b0_09_enet_rx_data1>, + <&iomuxc_gpio_ad_b0_11_enet_rx_en>, + <&iomuxc_gpio_ad_b0_14_enet_tx_data0>, + <&iomuxc_gpio_ad_b0_15_enet_tx_data1>, + <&iomuxc_gpio_ad_b0_13_enet_tx_en>, + <&iomuxc_gpio_ad_b0_12_enet_rx_er>, + <&iomuxc_gpio_emc_40_enet_mdio>, + <&iomuxc_gpio_emc_41_enet_mdc>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_b1_06_gpio1_io22>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group4 { + pinmux = <&iomuxc_gpio_ad_b0_10_enet_rx_data0>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_flexcan1: pinmux_flexcan1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_00_flexcan1_tx>, + <&iomuxc_gpio_sd_b1_01_flexcan1_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_14_lpi2c1_scl>, + <&iomuxc_gpio_ad_b1_15_lpi2c1_sda>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + pinmux_lpi2c4: pinmux_lpi2c4 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_03_lpi2c4_sda>, + <&iomuxc_gpio_sd_b1_02_lpi2c4_scl>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* conflicts with enet pinmux */ + pinmux_lpspi1: pinmux_lpspi1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_10_lpspi1_sck>, + <&iomuxc_gpio_ad_b0_11_lpspi1_pcs0>, + <&iomuxc_gpio_ad_b0_12_lpspi1_sdo>, + <&iomuxc_gpio_ad_b0_13_lpspi1_sdi>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_07_lpuart1_rx>, + <&iomuxc_gpio_ad_b0_06_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_07_gpio1_io07>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_06_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with user led */ + pinmux_lpuart2: pinmux_lpuart2 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_09_lpuart2_rx>, + <&iomuxc_gpio_ad_b1_08_lpuart2_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with user led */ + pinmux_lpuart2_sleep: pinmux_lpuart2_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_09_gpio1_io25>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b1_08_lpuart2_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* intentionally left empty */ + pinmux_ptp: pinmux_ptp { + }; + + pinmux_sai3: pinmux_sai3 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_06_sai3_tx_bclk>, + <&iomuxc_gpio_sd_b1_07_sai3_tx_sync>, + <&iomuxc_gpio_sd_b1_08_sai3_tx_data>, + <&iomuxc_gpio_sd_b1_11_sai3_rx_data>, + <&iomuxc_gpio_emc_28_sai3_mclk>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_usdhc1: pinmux_usdhc1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_03_usdhc1_clk>; + bias-disable; + drive-strength = "r0"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_02_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_00_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_01_usdhc1_data3>, + <&iomuxc_gpio_sd_b0_06_gpio3_io19>; + drive-strength = "r0"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_ad_b1_07_usdhc1_vselect>; + drive-strength = "r0-4"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group3 { + pinmux = <&iomuxc_gpio_sd_b1_10_gpio3_io30>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* fast pinmux settings for USDHC (over 100 Mhz) */ + pinmux_usdhc1_fast: pinmux_usdhc1_fast { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_03_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_02_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_00_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_01_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* medium pinmux settings for USDHC (under 100 Mhz) */ + pinmux_usdhc1_med: pinmux_usdhc1_med { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_03_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_02_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_00_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_01_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + }; + + /* slow pinmux settings for USDHC (under 50 Mhz) */ + pinmux_usdhc1_slow: pinmux_usdhc1_slow { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_03_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_02_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_00_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_01_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + }; + +}; + diff --git a/boards/arm/mimxrt1024_evk/mimxrt1024_evk.dts b/boards/arm/mimxrt1024_evk/mimxrt1024_evk.dts index 5b119185e04..61d9bc5dc88 100644 --- a/boards/arm/mimxrt1024_evk/mimxrt1024_evk.dts +++ b/boards/arm/mimxrt1024_evk/mimxrt1024_evk.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include "mimxrt1024_evk-pinctrl.dtsi" / { model = "NXP MIMXRT1024-EVK board"; @@ -84,19 +85,28 @@ &enet { status = "okay"; + pinctrl-0 = <&pinmux_enet>; + pinctrl-names = "default"; ptp { status = "okay"; + pinctrl-0 = <&pinmux_ptp>; + pinctrl-names = "default"; }; }; &lpuart1 { status = "okay"; current-speed = <115200>; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; }; &flexcan1 { status = "okay"; bus-speed = <125000>; + pinctrl-0 = <&pinmux_flexcan1>; + pinctrl-names = "default"; can-transceiver { max-bitrate = <5000000>; @@ -109,6 +119,8 @@ &lpi2c4 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c4>; + pinctrl-names = "default"; fxos8700: fxos8700@1f { compatible = "nxp,fxos8700"; @@ -126,10 +138,14 @@ /* DMA channels 0 and 1, muxed to LPSPI1 RX and TX */ dmas = <&edma0 0 13>, <&edma0 1 14>; dma-names = "rx", "tx"; + pinctrl-0 = <&pinmux_lpspi1>; + pinctrl-names = "default"; }; &adc1 { status = "okay"; + pinctrl-0 = <&pinmux_adc1>; + pinctrl-names = "default"; }; /* Enable GPT for use as a hardware timer. This disables Cortex Systick. diff --git a/boards/arm/mimxrt1050_evk/mimxrt1050_evk-pinctrl.dtsi b/boards/arm/mimxrt1050_evk/mimxrt1050_evk-pinctrl.dtsi new file mode 100644 index 00000000000..281574474b6 --- /dev/null +++ b/boards/arm/mimxrt1050_evk/mimxrt1050_evk-pinctrl.dtsi @@ -0,0 +1,452 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mimxrt1050_evk.mex + */ + +#include + +&pinctrl { + /* ADC1 inputs 0 and 15 */ + pinmux_adc1: pinmux_adc1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_11_adc1_in0>, + <&iomuxc_gpio_ad_b1_10_adc1_in15>; + bias-disable; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with lpuart3 and flexcan1 */ + pinmux_csi: pinmux_csi { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_04_gpio1_io04>; + drive-strength = "r0-6"; + bias-pull-down; + bias-pull-down-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b1_04_csi_pixclk>, + <&iomuxc_gpio_ad_b1_05_csi_mclk>, + <&iomuxc_gpio_ad_b1_06_csi_vsync>, + <&iomuxc_gpio_ad_b1_07_csi_hsync>, + <&iomuxc_gpio_ad_b1_08_csi_data09>, + <&iomuxc_gpio_ad_b1_09_csi_data08>, + <&iomuxc_gpio_ad_b1_10_csi_data07>, + <&iomuxc_gpio_ad_b1_11_csi_data06>, + <&iomuxc_gpio_ad_b1_12_csi_data05>, + <&iomuxc_gpio_ad_b1_13_csi_data04>, + <&iomuxc_gpio_ad_b1_14_csi_data03>, + <&iomuxc_gpio_ad_b1_15_csi_data02>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* Note: USER_LED conflicts with ENET_RST */ + pinmux_enet: pinmux_enet { + group0 { + pinmux = <&iomuxc_gpio_b1_10_enet_ref_clk>; + bias-disable; + drive-strength = "r0-6"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_10_gpio1_io10>, + <&iomuxc_gpio_ad_b0_09_gpio1_io09>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_b1_04_enet_rx_data0>, + <&iomuxc_gpio_b1_05_enet_rx_data1>, + <&iomuxc_gpio_b1_06_enet_rx_en>, + <&iomuxc_gpio_b1_07_enet_tx_data0>, + <&iomuxc_gpio_b1_08_enet_tx_data1>, + <&iomuxc_gpio_b1_09_enet_tx_en>, + <&iomuxc_gpio_b1_11_enet_rx_er>, + <&iomuxc_gpio_emc_40_enet_mdc>, + <&iomuxc_gpio_emc_41_enet_mdio>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* conflicts with SAI1 */ + pinmux_flexcan1: pinmux_flexcan1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_08_flexcan1_tx>, + <&iomuxc_gpio_ad_b1_09_flexcan1_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_flexcan2: pinmux_flexcan2 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_14_flexcan2_tx>, + <&iomuxc_gpio_ad_b0_15_flexcan2_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* flexpwm output for board LED */ + pinmux_flexpwm2: pinmux_flexpwm2 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_09_flexpwm2_pwma3>; + drive-strength = "r0-4"; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_flexspi1: pinmux_flexspi1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_05_flexspi_a_dqs>; + drive-strength = "r0-6"; + input-schmitt-enable; + bias-pull-down; + bias-pull-down-value = "100k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b1_03_flexspi_b_data0>, + <&iomuxc_gpio_sd_b1_00_flexspi_b_data3>, + <&iomuxc_gpio_sd_b1_01_flexspi_b_data2>, + <&iomuxc_gpio_sd_b1_02_flexspi_b_data1>, + <&iomuxc_gpio_sd_b1_04_flexspi_b_sclk>, + <&iomuxc_gpio_sd_b1_06_flexspi_a_ss0_b>, + <&iomuxc_gpio_sd_b1_07_flexspi_a_sclk>, + <&iomuxc_gpio_sd_b1_08_flexspi_a_data0>, + <&iomuxc_gpio_sd_b1_09_flexspi_a_data1>, + <&iomuxc_gpio_sd_b1_10_flexspi_a_data2>, + <&iomuxc_gpio_sd_b1_11_flexspi_a_data3>; + drive-strength = "r0-6"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + input-enable; + }; + }; + + /* FLEXSPI A is connected to external flash */ + pinmux_flexspia: pinmux_flexspia { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_05_flexspi_a_dqs>, + <&iomuxc_gpio_sd_b1_06_flexspi_a_ss0_b>, + <&iomuxc_gpio_sd_b1_07_flexspi_a_sclk>, + <&iomuxc_gpio_sd_b1_08_flexspi_a_data0>, + <&iomuxc_gpio_sd_b1_09_flexspi_a_data1>, + <&iomuxc_gpio_sd_b1_10_flexspi_a_data2>, + <&iomuxc_gpio_sd_b1_11_flexspi_a_data3>; + drive-strength = "r0-6"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* Configures pin routing and optionally pin electrical features. */ + pinmux_lcdif: pinmux_lcdif { + group0 { + pinmux = <&iomuxc_gpio_b0_00_lcdif_clk>, + <&iomuxc_gpio_b0_01_lcdif_enable>, + <&iomuxc_gpio_b0_02_lcdif_hsync>, + <&iomuxc_gpio_b0_03_lcdif_vsync>, + <&iomuxc_gpio_b0_04_lcdif_data00>, + <&iomuxc_gpio_b0_05_lcdif_data01>, + <&iomuxc_gpio_b0_06_lcdif_data02>, + <&iomuxc_gpio_b0_07_lcdif_data03>, + <&iomuxc_gpio_b0_08_lcdif_data04>, + <&iomuxc_gpio_b0_09_lcdif_data05>, + <&iomuxc_gpio_b0_10_lcdif_data06>, + <&iomuxc_gpio_b0_11_lcdif_data07>, + <&iomuxc_gpio_b0_12_lcdif_data08>, + <&iomuxc_gpio_b0_13_lcdif_data09>, + <&iomuxc_gpio_b0_14_lcdif_data10>, + <&iomuxc_gpio_b0_15_lcdif_data11>, + <&iomuxc_gpio_b1_00_lcdif_data12>, + <&iomuxc_gpio_b1_01_lcdif_data13>, + <&iomuxc_gpio_b1_02_lcdif_data14>, + <&iomuxc_gpio_b1_03_lcdif_data15>; + drive-strength = "r0-6"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_02_gpio1_io02>, + <&iomuxc_gpio_b1_15_gpio2_io31>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_01_lpi2c1_sda>, + <&iomuxc_gpio_ad_b1_00_lpi2c1_scl>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* Conflicts with USDHC pins. Connect R278, R279, R280, and R281 on evk board */ + pinmux_lpspi1: pinmux_lpspi1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_lpspi1_pcs0>, + <&iomuxc_gpio_sd_b0_00_lpspi1_sck>, + <&iomuxc_gpio_sd_b0_03_lpspi1_sdi>, + <&iomuxc_gpio_sd_b0_02_lpspi1_sdo>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with lcdif pins */ + pinmux_lpspi3: pinmux_lpspi3 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_03_lpspi3_pcs0>, + <&iomuxc_gpio_ad_b0_00_lpspi3_sck>, + <&iomuxc_gpio_ad_b0_02_lpspi3_sdi>, + <&iomuxc_gpio_ad_b0_01_lpspi3_sdo>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_lpuart1_rx>, + <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_gpio1_io13>; + drive-strength = "r0"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "50-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart3: pinmux_lpuart3 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_06_lpuart3_tx>, + <&iomuxc_gpio_ad_b1_07_lpuart3_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* Flow control for lpuart3 */ + pinmux_lpuart3_flow_control: pinmux_lpuart3_flow_control { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_06_lpuart3_tx>, + <&iomuxc_gpio_ad_b1_07_lpuart3_rx>, + <&iomuxc_gpio_ad_b1_04_lpuart3_cts_b>, + <&iomuxc_gpio_ad_b1_05_lpuart3_rts_b>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart3_sleep: pinmux_lpuart3_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_06_gpio1_io22>; + drive-strength = "r0"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b1_07_lpuart3_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_ptp: pinmux_ptp { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_02_enet_1588_event2_out>, + <&iomuxc_gpio_ad_b1_03_enet_1588_event2_in>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_sai1: pinmux_sai1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_09_sai1_mclk>, + <&iomuxc_gpio_ad_b1_13_sai1_tx_data0>, + <&iomuxc_gpio_ad_b1_12_sai1_rx_data0>, + <&iomuxc_gpio_ad_b1_14_sai1_tx_bclk>, + <&iomuxc_gpio_ad_b1_15_sai1_tx_sync>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_usdhc1: pinmux_usdhc1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_b1_12_gpio2_io28>, + <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_b1_14_usdhc1_vselect>; + drive-strength = "r0-4"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_b0_05_gpio1_io05>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* fast pinmux settings for USDHC (over 100 Mhz) */ + pinmux_usdhc1_fast: pinmux_usdhc1_fast { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* medium pinmux settings for USDHC (under 100 Mhz) */ + pinmux_usdhc1_med: pinmux_usdhc1_med { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + }; + + /* slow pinmux settings for USDHC (under 50 Mhz) */ + pinmux_usdhc1_slow: pinmux_usdhc1_slow { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + }; + +}; + diff --git a/boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts b/boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts index d585aef6532..e44779517d6 100644 --- a/boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts +++ b/boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include "mimxrt1050_evk-pinctrl.dtsi" / { model = "NXP MIMXRT1050-EVK board"; @@ -92,16 +93,24 @@ }; }; -arduino_serial: &lpuart3 {}; +arduino_serial: &lpuart3 { + pinctrl-0 = <&pinmux_lpuart3>; + pinctrl-1 = <&pinmux_lpuart3_sleep>; + pinctrl-names = "default", "sleep"; +}; &adc1 { status = "okay"; + pinctrl-0 = <&pinmux_adc1>; + pinctrl-names = "default"; }; &flexspi { status = "okay"; ahb-prefetch; ahb-read-addr-opt; + pinctrl-0 = <&pinmux_flexspi1>; + pinctrl-names = "default"; ahb-bufferable; ahb-cacheable; sck-differential-clock; @@ -167,6 +176,8 @@ arduino_serial: &lpuart3 {}; polarity = <3>; pixel-format = "bgr-565"; data-buswidth = "16-bit"; + pinctrl-0 = <&pinmux_lcdif>; + pinctrl-names = "default"; port { lcd_panel_out: endpoint { remote-endpoint = <&lcd_panel_in>; @@ -176,6 +187,8 @@ arduino_serial: &lpuart3 {}; &lpi2c1 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; fxos8700@1f { compatible = "nxp,fxos8700"; @@ -202,6 +215,9 @@ arduino_serial: &lpuart3 {}; &lpuart1 { status = "okay"; current-speed = <115200>; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; }; &lpspi1 { @@ -209,6 +225,8 @@ arduino_serial: &lpuart3 {}; /* DMA channels 0 and 1, muxed to LPSPI1 RX and TX */ dmas = <&edma0 0 13>, <&edma0 1 14>; dma-names = "rx", "tx"; + pinctrl-0 = <&pinmux_lpspi1>; + pinctrl-names = "default"; }; &lpspi3 { @@ -216,11 +234,17 @@ arduino_serial: &lpuart3 {}; /* DMA channels 2 and 3, muxed to LPSPI3 RX and TX */ dmas = <&edma0 2 15>, <&edma0 3 16>; dma-names = "rx", "tx"; + pinctrl-0 = <&pinmux_lpspi3>; + pinctrl-names = "default"; }; &enet { status = "okay"; + pinctrl-0 = <&pinmux_enet>; + pinctrl-names = "default"; ptp { + pinctrl-0 = <&pinmux_ptp>; + pinctrl-names = "default"; status = "okay"; }; }; @@ -234,6 +258,11 @@ zephyr_udc0: &usb1 { no-1-8-v; pwr-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&pinmux_usdhc1>; + pinctrl-1 = <&pinmux_usdhc1_slow>; + pinctrl-2 = <&pinmux_usdhc1_med>; + pinctrl-3 = <&pinmux_usdhc1_fast>; + pinctrl-names = "default", "slow", "med", "fast"; }; &wdog0 { diff --git a/boards/arm/mimxrt1060_evk/mimxrt1060_evk-pinctrl.dtsi b/boards/arm/mimxrt1060_evk/mimxrt1060_evk-pinctrl.dtsi index 9b630aaff84..aa64c222d33 100644 --- a/boards/arm/mimxrt1060_evk/mimxrt1060_evk-pinctrl.dtsi +++ b/boards/arm/mimxrt1060_evk/mimxrt1060_evk-pinctrl.dtsi @@ -6,14 +6,14 @@ * from mimxrt1060_evk.mex */ -#include +#include &pinctrl { /* ADC1 inputs 0 and 15 */ pinmux_adc1: pinmux_adc1 { group0 { - pinmux = <&iomuxc_gpio_ad_b1_11_gpio1_io27>, - <&iomuxc_gpio_ad_b1_10_gpio1_io26>; + pinmux = <&iomuxc_gpio_ad_b1_11_adc1_in0>, + <&iomuxc_gpio_ad_b1_10_adc1_in15>; bias-disable; drive-strength = "r0-6"; slew-rate = "slow"; @@ -70,11 +70,11 @@ nxp,speed = "100-mhz"; }; group2 { - pinmux = <&iomuxc_gpio_b1_04_enet_rx_data00>, - <&iomuxc_gpio_b1_05_enet_rx_data01>, + pinmux = <&iomuxc_gpio_b1_04_enet_rx_data0>, + <&iomuxc_gpio_b1_05_enet_rx_data1>, <&iomuxc_gpio_b1_06_enet_rx_en>, - <&iomuxc_gpio_b1_07_enet_tx_data00>, - <&iomuxc_gpio_b1_08_enet_tx_data01>, + <&iomuxc_gpio_b1_07_enet_tx_data0>, + <&iomuxc_gpio_b1_08_enet_tx_data1>, <&iomuxc_gpio_b1_09_enet_tx_en>, <&iomuxc_gpio_b1_11_enet_rx_er>, <&iomuxc_gpio_emc_40_enet_mdc>, @@ -100,8 +100,8 @@ pinmux_flexcan2: pinmux_flexcan2 { group0 { - pinmux = <&iomuxc_gpio_ad_b0_14_flexcan3_tx>, - <&iomuxc_gpio_ad_b0_15_flexcan3_rx>; + pinmux = <&iomuxc_gpio_ad_b0_14_flexcan2_tx>, + <&iomuxc_gpio_ad_b0_15_flexcan2_rx>; drive-strength = "r0-6"; slew-rate = "slow"; nxp,speed = "100-mhz"; @@ -118,38 +118,71 @@ }; }; - pinmux_ft5336_int: pinmux_ft5336_int { + /* flexpwm output for board LED */ + pinmux_flexpwm2: pinmux_flexpwm2 { group0 { - pinmux = <&iomuxc_gpio_ad_b0_11_gpio1_io11>; - drive-strength = "r0-6"; + pinmux = <&iomuxc_gpio_ad_b0_09_flexpwm2_pwma3>; + drive-strength = "r0-4"; + bias-pull-up; + bias-pull-up-value = "47k"; slew-rate = "slow"; nxp,speed = "100-mhz"; }; }; + pinmux_flexspi1: pinmux_flexspi1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_05_flexspi_a_dqs>; + drive-strength = "r0-6"; + input-schmitt-enable; + bias-pull-down; + bias-pull-down-value = "100k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b1_03_flexspi_b_data0>, + <&iomuxc_gpio_sd_b1_00_flexspi_b_data3>, + <&iomuxc_gpio_sd_b1_01_flexspi_b_data2>, + <&iomuxc_gpio_sd_b1_02_flexspi_b_data1>, + <&iomuxc_gpio_sd_b1_04_flexspi_b_sclk>, + <&iomuxc_gpio_sd_b1_06_flexspi_a_ss0_b>, + <&iomuxc_gpio_sd_b1_07_flexspi_a_sclk>, + <&iomuxc_gpio_sd_b1_08_flexspi_a_data0>, + <&iomuxc_gpio_sd_b1_09_flexspi_a_data1>, + <&iomuxc_gpio_sd_b1_10_flexspi_a_data2>, + <&iomuxc_gpio_sd_b1_11_flexspi_a_data3>; + drive-strength = "r0-6"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + input-enable; + }; + }; + /* Configures pin routing and optionally pin electrical features. */ pinmux_lcdif: pinmux_lcdif { group0 { - pinmux = <&iomuxc_gpio_b0_00_lcd_clk>, - <&iomuxc_gpio_b0_01_lcd_enable>, - <&iomuxc_gpio_b0_02_lcd_hsync>, - <&iomuxc_gpio_b0_03_lcd_vsync>, - <&iomuxc_gpio_b0_04_lcd_data00>, - <&iomuxc_gpio_b0_05_lcd_data01>, - <&iomuxc_gpio_b0_06_lcd_data02>, - <&iomuxc_gpio_b0_07_lcd_data03>, - <&iomuxc_gpio_b0_08_lcd_data04>, - <&iomuxc_gpio_b0_09_lcd_data05>, - <&iomuxc_gpio_b0_10_lcd_data06>, - <&iomuxc_gpio_b0_11_lcd_data07>, - <&iomuxc_gpio_b0_12_lcd_data08>, - <&iomuxc_gpio_b0_13_lcd_data09>, - <&iomuxc_gpio_b0_14_lcd_data10>, - <&iomuxc_gpio_b0_15_lcd_data11>, - <&iomuxc_gpio_b1_00_lcd_data12>, - <&iomuxc_gpio_b1_01_lcd_data13>, - <&iomuxc_gpio_b1_02_lcd_data14>, - <&iomuxc_gpio_b1_03_lcd_data15>; + pinmux = <&iomuxc_gpio_b0_00_lcdif_clk>, + <&iomuxc_gpio_b0_01_lcdif_enable>, + <&iomuxc_gpio_b0_02_lcdif_hsync>, + <&iomuxc_gpio_b0_03_lcdif_vsync>, + <&iomuxc_gpio_b0_04_lcdif_data00>, + <&iomuxc_gpio_b0_05_lcdif_data01>, + <&iomuxc_gpio_b0_06_lcdif_data02>, + <&iomuxc_gpio_b0_07_lcdif_data03>, + <&iomuxc_gpio_b0_08_lcdif_data04>, + <&iomuxc_gpio_b0_09_lcdif_data05>, + <&iomuxc_gpio_b0_10_lcdif_data06>, + <&iomuxc_gpio_b0_11_lcdif_data07>, + <&iomuxc_gpio_b0_12_lcdif_data08>, + <&iomuxc_gpio_b0_13_lcdif_data09>, + <&iomuxc_gpio_b0_14_lcdif_data10>, + <&iomuxc_gpio_b0_15_lcdif_data11>, + <&iomuxc_gpio_b1_00_lcdif_data12>, + <&iomuxc_gpio_b1_01_lcdif_data13>, + <&iomuxc_gpio_b1_02_lcdif_data14>, + <&iomuxc_gpio_b1_03_lcdif_data15>; drive-strength = "r0-6"; input-schmitt-enable; bias-pull-up; @@ -284,8 +317,8 @@ pinmux_sai1: pinmux_sai1 { group0 { pinmux = <&iomuxc_gpio_ad_b1_09_sai1_mclk>, - <&iomuxc_gpio_ad_b1_13_sai1_tx_data00>, - <&iomuxc_gpio_ad_b1_12_sai1_rx_data00>, + <&iomuxc_gpio_ad_b1_13_sai1_tx_data0>, + <&iomuxc_gpio_ad_b1_12_sai1_rx_data0>, <&iomuxc_gpio_ad_b1_14_sai1_tx_bclk>, <&iomuxc_gpio_ad_b1_15_sai1_tx_sync>; drive-strength = "r0-6"; @@ -409,22 +442,5 @@ }; }; - /* enable user led and SW0. Conflicts with ENET pinmux */ - pinmux_user: pinmux_user { - group0 { - pinmux = <&iomuxc_snvs_wakeup_gpio5_io00>; - drive-strength = "r0-4"; - input-schmitt-enable; - bias-pull-up; - bias-pull-up-value = "100k"; - slew-rate = "slow"; - }; - group1 { - pinmux = <&iomuxc_gpio_ad_b0_09_gpio1_io09>; - drive-strength = "r0-6"; - slew-rate = "slow"; - nxp,speed = "100-mhz"; - }; - }; - }; + diff --git a/boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts b/boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts index 780632af7ad..f6367716142 100644 --- a/boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts +++ b/boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts @@ -94,10 +94,16 @@ }; }; -arduino_serial: &lpuart3 {}; +arduino_serial: &lpuart3 { + pinctrl-0 = <&pinmux_lpuart3>; + pinctrl-1 = <&pinmux_lpuart3_sleep>; + pinctrl-names = "default", "sleep"; +}; &flexspi { status = "okay"; + pinctrl-0 = <&pinmux_flexspi1>; + pinctrl-names = "default"; ahb-prefetch; ahb-read-addr-opt; rx-clock-source = <1>; @@ -155,6 +161,8 @@ arduino_serial: &lpuart3 {}; polarity = <3>; pixel-format = "bgr-565"; data-buswidth = "16-bit"; + pinctrl-0 = <&pinmux_lcdif>; + pinctrl-names = "default"; port { lcd_panel_out: endpoint { remote-endpoint = <&lcd_panel_in>; @@ -164,6 +172,8 @@ arduino_serial: &lpuart3 {}; &lpi2c1 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; touch_controller: ft5336@38 { compatible = "focaltech,ft5336"; @@ -194,6 +204,8 @@ arduino_serial: &lpuart3 {}; &adc1 { status = "okay"; + pinctrl-0 = <&pinmux_adc1>; + pinctrl-names = "default"; }; zephyr_udc0: &usb1 { @@ -206,6 +218,11 @@ zephyr_udc0: &usb1 { cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; no-1-8-v; status = "okay"; + pinctrl-0 = <&pinmux_usdhc1>; + pinctrl-1 = <&pinmux_usdhc1_slow>; + pinctrl-2 = <&pinmux_usdhc1_med>; + pinctrl-3 = <&pinmux_usdhc1_fast>; + pinctrl-names = "default", "slow", "med", "fast"; }; &edma0 { diff --git a/boards/arm/mimxrt1064_evk/mimxrt1064_evk-pinctrl.dtsi b/boards/arm/mimxrt1064_evk/mimxrt1064_evk-pinctrl.dtsi new file mode 100644 index 00000000000..e6e7cf514fc --- /dev/null +++ b/boards/arm/mimxrt1064_evk/mimxrt1064_evk-pinctrl.dtsi @@ -0,0 +1,433 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mimxrt1064_evk.mex + */ + +#include + +&pinctrl { + /* ADC1 inputs 0 and 15 */ + pinmux_adc1: pinmux_adc1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_11_adc1_in0>, + <&iomuxc_gpio_ad_b1_10_adc1_in15>; + bias-disable; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with lpuart3 and flexcan1 */ + pinmux_csi: pinmux_csi { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_04_gpio1_io04>; + drive-strength = "r0-6"; + bias-pull-down; + bias-pull-down-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b1_04_csi_pixclk>, + <&iomuxc_gpio_ad_b1_05_csi_mclk>, + <&iomuxc_gpio_ad_b1_06_csi_vsync>, + <&iomuxc_gpio_ad_b1_07_csi_hsync>, + <&iomuxc_gpio_ad_b1_08_csi_data09>, + <&iomuxc_gpio_ad_b1_09_csi_data08>, + <&iomuxc_gpio_ad_b1_10_csi_data07>, + <&iomuxc_gpio_ad_b1_11_csi_data06>, + <&iomuxc_gpio_ad_b1_12_csi_data05>, + <&iomuxc_gpio_ad_b1_13_csi_data04>, + <&iomuxc_gpio_ad_b1_14_csi_data03>, + <&iomuxc_gpio_ad_b1_15_csi_data02>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* Note: USER_LED conflicts with ENET_RST */ + pinmux_enet: pinmux_enet { + group0 { + pinmux = <&iomuxc_gpio_b1_10_enet_ref_clk>; + bias-disable; + drive-strength = "r0-6"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_10_gpio1_io10>, + <&iomuxc_gpio_ad_b0_09_gpio1_io09>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_b1_04_enet_rx_data0>, + <&iomuxc_gpio_b1_05_enet_rx_data1>, + <&iomuxc_gpio_b1_06_enet_rx_en>, + <&iomuxc_gpio_b1_07_enet_tx_data0>, + <&iomuxc_gpio_b1_08_enet_tx_data1>, + <&iomuxc_gpio_b1_09_enet_tx_en>, + <&iomuxc_gpio_b1_11_enet_rx_er>, + <&iomuxc_gpio_emc_40_enet_mdc>, + <&iomuxc_gpio_emc_41_enet_mdio>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* conflicts with SAI1 */ + pinmux_flexcan1: pinmux_flexcan1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_08_flexcan1_tx>, + <&iomuxc_gpio_ad_b1_09_flexcan1_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_flexcan2: pinmux_flexcan2 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_14_flexcan2_tx>, + <&iomuxc_gpio_ad_b0_15_flexcan2_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_flexcan3: pinmux_flexcan3 { + group0 { + pinmux = <&iomuxc_gpio_emc_36_flexcan3_tx>, + <&iomuxc_gpio_emc_37_flexcan3_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* flexpwm output for board LED */ + pinmux_flexpwm2: pinmux_flexpwm2 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_09_flexpwm2_pwma3>; + drive-strength = "r0-4"; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* FLEXSPI1 is connected to external flash */ + pinmux_flexspi1: pinmux_flexspi1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_05_flexspi_a_dqs>, + <&iomuxc_gpio_sd_b1_06_flexspi_a_ss0_b>, + <&iomuxc_gpio_sd_b1_07_flexspi_a_sclk>, + <&iomuxc_gpio_sd_b1_08_flexspi_a_data0>, + <&iomuxc_gpio_sd_b1_09_flexspi_a_data1>, + <&iomuxc_gpio_sd_b1_10_flexspi_a_data2>, + <&iomuxc_gpio_sd_b1_11_flexspi_a_data3>; + drive-strength = "r0-6"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + input-enable; + }; + }; + + /* Configures pin routing and optionally pin electrical features. */ + pinmux_lcdif: pinmux_lcdif { + group0 { + pinmux = <&iomuxc_gpio_b0_00_lcdif_clk>, + <&iomuxc_gpio_b0_01_lcdif_enable>, + <&iomuxc_gpio_b0_02_lcdif_hsync>, + <&iomuxc_gpio_b0_03_lcdif_vsync>, + <&iomuxc_gpio_b0_04_lcdif_data00>, + <&iomuxc_gpio_b0_05_lcdif_data01>, + <&iomuxc_gpio_b0_06_lcdif_data02>, + <&iomuxc_gpio_b0_07_lcdif_data03>, + <&iomuxc_gpio_b0_08_lcdif_data04>, + <&iomuxc_gpio_b0_09_lcdif_data05>, + <&iomuxc_gpio_b0_10_lcdif_data06>, + <&iomuxc_gpio_b0_11_lcdif_data07>, + <&iomuxc_gpio_b0_12_lcdif_data08>, + <&iomuxc_gpio_b0_13_lcdif_data09>, + <&iomuxc_gpio_b0_14_lcdif_data10>, + <&iomuxc_gpio_b0_15_lcdif_data11>, + <&iomuxc_gpio_b1_00_lcdif_data12>, + <&iomuxc_gpio_b1_01_lcdif_data13>, + <&iomuxc_gpio_b1_02_lcdif_data14>, + <&iomuxc_gpio_b1_03_lcdif_data15>; + drive-strength = "r0-6"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_02_gpio1_io02>, + <&iomuxc_gpio_b1_15_gpio2_io31>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_01_lpi2c1_sda>, + <&iomuxc_gpio_ad_b1_00_lpi2c1_scl>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* Conflicts with USDHC pins. Connect R278, R279, R280, and R281 on evk board */ + pinmux_lpspi1: pinmux_lpspi1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_lpspi1_pcs0>, + <&iomuxc_gpio_sd_b0_00_lpspi1_sck>, + <&iomuxc_gpio_sd_b0_03_lpspi1_sdi>, + <&iomuxc_gpio_sd_b0_02_lpspi1_sdo>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* conflicts with lcdif pins */ + pinmux_lpspi3: pinmux_lpspi3 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_03_lpspi3_pcs0>, + <&iomuxc_gpio_ad_b0_00_lpspi3_sck>, + <&iomuxc_gpio_ad_b0_02_lpspi3_sdi>, + <&iomuxc_gpio_ad_b0_01_lpspi3_sdo>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_lpuart1_rx>, + <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_gpio1_io13>; + drive-strength = "r0"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "50-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart3: pinmux_lpuart3 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_06_lpuart3_tx>, + <&iomuxc_gpio_ad_b1_07_lpuart3_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* Flow control for lpuart3 */ + pinmux_lpuart3_flow_control: pinmux_lpuart3_flow_control { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_06_lpuart3_tx>, + <&iomuxc_gpio_ad_b1_07_lpuart3_rx>, + <&iomuxc_gpio_ad_b1_04_lpuart3_cts_b>, + <&iomuxc_gpio_ad_b1_05_lpuart3_rts_b>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart3_sleep: pinmux_lpuart3_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_06_gpio1_io22>; + drive-strength = "r0"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b1_07_lpuart3_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_ptp: pinmux_ptp { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_02_enet_1588_event2_out>, + <&iomuxc_gpio_ad_b1_03_enet_1588_event2_in>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_sai1: pinmux_sai1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_09_sai1_mclk>, + <&iomuxc_gpio_ad_b1_13_sai1_tx_data0>, + <&iomuxc_gpio_ad_b1_12_sai1_rx_data0>, + <&iomuxc_gpio_ad_b1_14_sai1_tx_bclk>, + <&iomuxc_gpio_ad_b1_15_sai1_tx_sync>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_usdhc1: pinmux_usdhc1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_b1_12_gpio2_io28>, + <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_b1_14_usdhc1_vselect>; + drive-strength = "r0-4"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_b0_05_gpio1_io05>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* fast pinmux settings for USDHC (over 100 Mhz) */ + pinmux_usdhc1_fast: pinmux_usdhc1_fast { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* medium pinmux settings for USDHC (under 100 Mhz) */ + pinmux_usdhc1_med: pinmux_usdhc1_med { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + }; + + /* slow pinmux settings for USDHC (under 50 Mhz) */ + pinmux_usdhc1_slow: pinmux_usdhc1_slow { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + }; + +}; + diff --git a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts index a27ccaee206..2689b625b7c 100644 --- a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts +++ b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include "mimxrt1064_evk-pinctrl.dtsi" / { model = "NXP MIMXRT1064-EVK board"; @@ -136,6 +137,8 @@ arduino_i2c: &lpi2c1 {}; polarity = <3>; pixel-format = "bgr-565"; data-buswidth = "16-bit"; + pinctrl-0 = <&pinmux_lcdif>; + pinctrl-names = "default"; port { lcd_panel_out: endpoint { remote-endpoint = <&lcd_panel_in>; @@ -146,6 +149,9 @@ arduino_i2c: &lpi2c1 {}; &lpi2c1 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; + mt9m114@48 { compatible = "aptina,mt9m114"; reg = <0x48>; @@ -169,6 +175,8 @@ arduino_i2c: &lpi2c1 {}; &flexspi { status = "okay"; + pinctrl-0 = <&pinmux_flexspi1>; + pinctrl-names = "default"; ahb-prefetch; ahb-read-addr-opt; rx-clock-source = <1>; @@ -226,16 +234,26 @@ arduino_i2c: &lpi2c1 {}; &lpuart1 { status = "okay"; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; current-speed = <115200>; }; arduino_serial: &lpuart3 { current-speed = <115200>; + pinctrl-0 = <&pinmux_lpuart3>; + pinctrl-1 = <&pinmux_lpuart3_sleep>; + pinctrl-names = "default", "sleep"; }; &enet { status = "okay"; + pinctrl-0 = <&pinmux_enet>; + pinctrl-names = "default"; ptp { + pinctrl-0 = <&pinmux_ptp>; + pinctrl-names = "default"; status = "okay"; }; }; @@ -247,6 +265,8 @@ zephyr_udc0: &usb1 { &csi { status = "okay"; sensor-label = "MT9M114"; + pinctrl-0 = <&pinmux_csi>; + pinctrl-names = "default"; port { csi_ep_in: endpoint { @@ -257,6 +277,8 @@ zephyr_udc0: &usb1 { &flexpwm2_pwm3 { status = "okay"; + pinctrl-0 = <&pinmux_flexpwm2>; + pinctrl-names = "default"; }; &usdhc1 { @@ -264,6 +286,11 @@ zephyr_udc0: &usb1 { no-1-8-v; pwr-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&pinmux_usdhc1>; + pinctrl-1 = <&pinmux_usdhc1_slow>; + pinctrl-2 = <&pinmux_usdhc1_med>; + pinctrl-3 = <&pinmux_usdhc1_fast>; + pinctrl-names = "default", "slow", "med", "fast"; }; &edma0 { @@ -273,6 +300,8 @@ zephyr_udc0: &usb1 { &flexcan2 { status = "okay"; bus-speed = <125000>; + pinctrl-0 = <&pinmux_flexcan2>; + pinctrl-names = "default"; can-transceiver { max-bitrate = <5000000>; @@ -288,6 +317,8 @@ zephyr_udc0: &usb1 { /* DMA channels 0 and 1, muxed to LPSPI1 RX and TX */ dmas = <&edma0 0 13>, <&edma0 1 14>; dma-names = "rx", "tx"; + pinctrl-0 = <&pinmux_lpspi1>; + pinctrl-names = "default"; }; &lpspi3 { @@ -295,10 +326,14 @@ zephyr_udc0: &usb1 { /* DMA channels 2 and 3, muxed to LPSPI3 RX and TX */ dmas = <&edma0 2 15>, <&edma0 3 16>; dma-names = "rx", "tx"; + pinctrl-0 = <&pinmux_lpspi3>; + pinctrl-names = "default"; }; &adc1 { status = "okay"; + pinctrl-0 = <&pinmux_adc1>; + pinctrl-names = "default"; }; /* Enable GPT for use as a hardware timer. This disables Cortex Systick. diff --git a/boards/arm/mimxrt1160_evk/mimxrt1160_evk-pinctrl.dtsi b/boards/arm/mimxrt1160_evk/mimxrt1160_evk-pinctrl.dtsi new file mode 100644 index 00000000000..f2a3c4ff9dd --- /dev/null +++ b/boards/arm/mimxrt1160_evk/mimxrt1160_evk-pinctrl.dtsi @@ -0,0 +1,298 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mimxrt1160_evk.mex + */ + +#include + +&pinctrl { + /* conflicts with fxos8700 sensor */ + pinmux_csi: pinmux_csi { + group0 { + pinmux = <&iomuxc_gpio_disp_b2_14_gpio11_io15>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_26_gpio9_io25>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + group2 { + pinmux = <&iomuxc_lpsr_gpio_lpsr_07_lpi2c6_scl>, + <&iomuxc_lpsr_gpio_lpsr_06_lpi2c6_sda>; + drive-strength = "high"; + slew-rate = "fast"; + input-enable; + }; + }; + + pinmux_enet: pinmux_enet { + group0 { + pinmux = <&iomuxc_gpio_ad_12_gpio9_io11>, + <&iomuxc_gpio_disp_b2_08_enet_rx_en>, + <&iomuxc_gpio_disp_b2_09_enet_rx_er>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_disp_b2_06_enet_rdata00>, + <&iomuxc_gpio_disp_b2_07_enet_rdata01>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + input-enable; + }; + group2 { + pinmux = <&iomuxc_lpsr_gpio_lpsr_12_gpio12_io12>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_32_enet_mdc>, + <&iomuxc_gpio_ad_33_enet_mdio>, + <&iomuxc_gpio_disp_b2_02_enet_tdata00>, + <&iomuxc_gpio_disp_b2_03_enet_tdata01>, + <&iomuxc_gpio_disp_b2_04_enet_tx_en>; + drive-strength = "high"; + slew-rate = "fast"; + }; + group4 { + pinmux = <&iomuxc_gpio_disp_b2_05_enet_ref_clk>; + drive-strength = "high"; + slew-rate = "slow"; + input-enable; + }; + }; + + pinmux_flexcan3: pinmux_flexcan3 { + group0 { + pinmux = <&iomuxc_lpsr_gpio_lpsr_01_can3_rx>, + <&iomuxc_lpsr_gpio_lpsr_00_can3_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_flexpwm1: pinmux_flexpwm1 { + group0 { + pinmux = <&iomuxc_gpio_ad_04_flexpwm1_pwm2_a>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + }; + + pinmux_flexspi1: pinmux_flexspi1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b2_05_flexspi1_a_dqs>, + <&iomuxc_gpio_sd_b2_06_flexspi1_a_ss0_b>, + <&iomuxc_gpio_sd_b2_07_flexspi1_a_sclk>, + <&iomuxc_gpio_sd_b2_08_flexspi1_a_data00>, + <&iomuxc_gpio_sd_b2_09_flexspi1_a_data01>, + <&iomuxc_gpio_sd_b2_10_flexspi1_a_data02>, + <&iomuxc_gpio_sd_b2_11_flexspi1_a_data03>; + bias-pull-down; + input-enable; + }; + }; + + /* interrupt gpios for fxos8700 */ + pinmux_fxos8700_int: pinmux_fxos8700_int { + group0 { + pinmux = <&iomuxc_gpio_disp_b2_14_gpio11_io15>, + <&iomuxc_gpio_disp_b2_13_gpio11_io14>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + /* conflicts with lpspi1 */ + pinmux_lcdif: pinmux_lcdif { + group0 { + pinmux = <&iomuxc_gpio_ad_30_gpio9_io29>, + <&iomuxc_gpio_ad_02_gpio9_io01>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_disp_b2_15_gpio11_io16>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + }; + + pinmux_lpadc0: pinmux_lpadc0 { + group0 { + pinmux = <&iomuxc_gpio_ad_06_adc1_ch0a>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + }; + + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_08_lpi2c1_scl>, + <&iomuxc_gpio_ad_09_lpi2c1_sda>; + drive-strength = "normal"; + drive-open-drain; + slew-rate = "fast"; + input-enable; + }; + }; + + /* Connected to FXOS8700 */ + pinmux_lpi2c5: pinmux_lpi2c5 { + group0 { + pinmux = <&iomuxc_lpsr_gpio_lpsr_05_lpi2c5_scl>, + <&iomuxc_lpsr_gpio_lpsr_04_lpi2c5_sda>; + drive-strength = "normal"; + drive-open-drain; + slew-rate = "fast"; + }; + }; + + pinmux_lpspi1: pinmux_lpspi1 { + group0 { + pinmux = <&iomuxc_gpio_ad_29_lpspi1_pcs0>, + <&iomuxc_gpio_ad_28_lpspi1_sck>, + <&iomuxc_gpio_ad_31_lpspi1_sdi>, + <&iomuxc_gpio_ad_30_lpspi1_sdo>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_25_lpuart1_rx>, + <&iomuxc_gpio_ad_24_lpuart1_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_25_gpio_mux3_io24>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_24_lpuart1_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_lpuart2: pinmux_lpuart2 { + group0 { + pinmux = <&iomuxc_gpio_disp_b2_11_lpuart2_rx>, + <&iomuxc_gpio_disp_b2_10_lpuart2_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_lpuart2_sleep: pinmux_lpuart2_sleep { + group0 { + pinmux = <&iomuxc_gpio_disp_b2_11_gpio_mux5_io12>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_disp_b2_10_lpuart2_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + /* intentionally left empty */ + pinmux_ptp: pinmux_ptp { + }; + + pinmux_sai1: pinmux_sai1 { + group0 { + pinmux = <&iomuxc_gpio_ad_17_sai1_mclk>, + <&iomuxc_gpio_ad_20_sai1_rx_data00>, + <&iomuxc_gpio_ad_21_sai1_tx_data00>, + <&iomuxc_gpio_ad_22_sai1_tx_bclk>, + <&iomuxc_gpio_ad_23_sai1_tx_sync>; + drive-strength = "high"; + slew-rate = "fast"; + input-enable; + }; + }; + + /* conflicts with enet pins */ + pinmux_usdhc1: pinmux_usdhc1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b1_01_usdhc1_clk>, + <&iomuxc_gpio_sd_b1_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b1_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b1_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b1_05_usdhc1_data3>; + bias-pull-up; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_34_usdhc1_vselect>, + <&iomuxc_gpio_ad_32_gpio_mux3_io31_cm7>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group2 { + pinmux = <&iomuxc_gpio_ad_35_gpio10_io02>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + }; + + /* removes pull on dat3 for card detect */ + pinmux_usdhc1_dat3_nopull: pinmux_usdhc1_dat3_nopull { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_05_usdhc1_data3>; + bias-disable; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b1_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b1_01_usdhc1_clk>, + <&iomuxc_gpio_sd_b1_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b1_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b1_04_usdhc1_data2>; + bias-pull-up; + input-enable; + }; + group2 { + pinmux = <&iomuxc_gpio_ad_34_usdhc1_vselect>, + <&iomuxc_gpio_ad_32_gpio_mux3_io31_cm7>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_35_gpio10_io02>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + }; + +}; + diff --git a/boards/arm/mimxrt1160_evk/mimxrt1160_evk.dtsi b/boards/arm/mimxrt1160_evk/mimxrt1160_evk.dtsi index 30cabb51015..6cb40d29529 100644 --- a/boards/arm/mimxrt1160_evk/mimxrt1160_evk.dtsi +++ b/boards/arm/mimxrt1160_evk/mimxrt1160_evk.dtsi @@ -4,6 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ +#include "mimxrt1160_evk-pinctrl.dtsi" + / { aliases { led0 = &green_led; @@ -38,6 +40,9 @@ &lpuart1 { status = "okay"; current-speed = <115200>; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; }; &user_button { @@ -50,6 +55,8 @@ &lpi2c5 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; fxos8700@1f { compatible = "nxp,fxos8700"; @@ -68,4 +75,67 @@ &flexpwm1_pwm2 { status = "okay"; + pinctrl-0 = <&pinmux_flexpwm1>; + pinctrl-names = "default"; +}; + +&enet { + pinctrl-0 = <&pinmux_enet>; + pinctrl-names = "default"; + ptp { + pinctrl-0 = <&pinmux_ptp>; + pinctrl-names = "default"; + }; +}; + +&csi { + pinctrl-0 = <&pinmux_csi>; + pinctrl-names = "default"; +}; + +&flexcan3 { + pinctrl-0 = <&pinmux_flexcan3>; + pinctrl-names = "default"; +}; + +&lcdif { + pinctrl-0 = <&pinmux_lcdif>; + pinctrl-names = "default"; +}; + +&lpi2c1 { + pinctrl-0 =<&pinmux_lpi2c5>; + pinctrl-names = "default"; +}; + +&lpspi1 { + pinctrl-0 = <&pinmux_lpspi1>; + pinctrl-names = "default"; +}; + +&lpuart2 { + pinctrl-0 = <&pinmux_lpuart2>; + pinctrl-1 = <&pinmux_lpuart2_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&sai1 { + pinctrl-0 = <&pinmux_sai1>; + pinctrl-names = "default"; +}; + +&lpadc0 { + pinctrl-0 = <&pinmux_lpadc0>; + pinctrl-names = "default"; +}; + +&flexspi { + pinctrl-0 = <&pinmux_flexspi1>; + pinctrl-names = "default"; +}; + +&usdhc1 { + pinctrl-0 = <&pinmux_usdhc1>; + pinctrl-1 = <&pinmux_usdhc1_dat3_nopull>; + pinctrl-names = "default", "nopull"; }; diff --git a/boards/arm/mimxrt1170_evk/mimxrt1170_evk-pinctrl.dtsi b/boards/arm/mimxrt1170_evk/mimxrt1170_evk-pinctrl.dtsi new file mode 100644 index 00000000000..982b05b11a6 --- /dev/null +++ b/boards/arm/mimxrt1170_evk/mimxrt1170_evk-pinctrl.dtsi @@ -0,0 +1,297 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mimxrt1170_evk.mex + */ + +#include + +&pinctrl { + /* conflicts with fxos8700 sensor */ + pinmux_csi: pinmux_csi { + group0 { + pinmux = <&iomuxc_gpio_disp_b2_14_gpio11_io15>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_26_gpio9_io25>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + group2 { + pinmux = <&iomuxc_lpsr_gpio_lpsr_07_lpi2c6_scl>, + <&iomuxc_lpsr_gpio_lpsr_06_lpi2c6_sda>; + drive-strength = "high"; + slew-rate = "fast"; + input-enable; + }; + }; + + pinmux_enet: pinmux_enet { + group0 { + pinmux = <&iomuxc_gpio_ad_12_gpio9_io11>, + <&iomuxc_gpio_disp_b2_08_enet_rx_en>, + <&iomuxc_gpio_disp_b2_09_enet_rx_er>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_disp_b2_06_enet_rdata00>, + <&iomuxc_gpio_disp_b2_07_enet_rdata01>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + input-enable; + }; + group2 { + pinmux = <&iomuxc_lpsr_gpio_lpsr_12_gpio12_io12>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_32_enet_mdc>, + <&iomuxc_gpio_ad_33_enet_mdio>, + <&iomuxc_gpio_disp_b2_02_enet_tdata00>, + <&iomuxc_gpio_disp_b2_03_enet_tdata01>, + <&iomuxc_gpio_disp_b2_04_enet_tx_en>; + drive-strength = "high"; + slew-rate = "fast"; + }; + group4 { + pinmux = <&iomuxc_gpio_disp_b2_05_enet_ref_clk>; + drive-strength = "high"; + slew-rate = "slow"; + input-enable; + }; + }; + + pinmux_flexcan3: pinmux_flexcan3 { + group0 { + pinmux = <&iomuxc_lpsr_gpio_lpsr_01_can3_rx>, + <&iomuxc_lpsr_gpio_lpsr_00_can3_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_flexpwm1: pinmux_flexpwm1 { + group0 { + pinmux = <&iomuxc_gpio_ad_04_flexpwm1_pwm2_a>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_flexspi1: pinmux_flexspi1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b2_05_flexspi1_a_dqs>, + <&iomuxc_gpio_sd_b2_06_flexspi1_a_ss0_b>, + <&iomuxc_gpio_sd_b2_07_flexspi1_a_sclk>, + <&iomuxc_gpio_sd_b2_08_flexspi1_a_data00>, + <&iomuxc_gpio_sd_b2_09_flexspi1_a_data01>, + <&iomuxc_gpio_sd_b2_10_flexspi1_a_data02>, + <&iomuxc_gpio_sd_b2_11_flexspi1_a_data03>; + bias-pull-down; + input-enable; + }; + }; + + /* interrupt gpios for fxos8700 */ + pinmux_fxos8700_int: pinmux_fxos8700_int { + group0 { + pinmux = <&iomuxc_gpio_disp_b2_14_gpio11_io15>, + <&iomuxc_gpio_disp_b2_13_gpio11_io14>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + /* conflicts with lpspi1 */ + pinmux_lcdif: pinmux_lcdif { + group0 { + pinmux = <&iomuxc_gpio_ad_30_gpio9_io29>, + <&iomuxc_gpio_ad_02_gpio9_io01>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_disp_b2_15_gpio11_io16>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + }; + + pinmux_lpadc0: pinmux_lpadc0 { + group0 { + pinmux = <&iomuxc_gpio_ad_06_adc1_ch0a>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + }; + + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_08_lpi2c1_scl>, + <&iomuxc_gpio_ad_09_lpi2c1_sda>; + drive-strength = "normal"; + drive-open-drain; + slew-rate = "fast"; + input-enable; + }; + }; + + /* Connected to FXOS8700 */ + pinmux_lpi2c5: pinmux_lpi2c5 { + group0 { + pinmux = <&iomuxc_lpsr_gpio_lpsr_05_lpi2c5_scl>, + <&iomuxc_lpsr_gpio_lpsr_04_lpi2c5_sda>; + drive-strength = "normal"; + drive-open-drain; + slew-rate = "fast"; + }; + }; + + pinmux_lpspi1: pinmux_lpspi1 { + group0 { + pinmux = <&iomuxc_gpio_ad_29_lpspi1_pcs0>, + <&iomuxc_gpio_ad_28_lpspi1_sck>, + <&iomuxc_gpio_ad_31_lpspi1_sdi>, + <&iomuxc_gpio_ad_30_lpspi1_sdo>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_25_lpuart1_rx>, + <&iomuxc_gpio_ad_24_lpuart1_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_25_gpio_mux3_io24>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_24_lpuart1_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_lpuart2: pinmux_lpuart2 { + group0 { + pinmux = <&iomuxc_gpio_disp_b2_11_lpuart2_rx>, + <&iomuxc_gpio_disp_b2_10_lpuart2_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + pinmux_lpuart2_sleep: pinmux_lpuart2_sleep { + group0 { + pinmux = <&iomuxc_gpio_disp_b2_11_gpio_mux5_io12>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + group1 { + pinmux = <&iomuxc_gpio_disp_b2_10_lpuart2_tx>; + drive-strength = "high"; + slew-rate = "fast"; + }; + }; + + /* intentionally left empty */ + pinmux_ptp: pinmux_ptp { + }; + + pinmux_sai1: pinmux_sai1 { + group0 { + pinmux = <&iomuxc_gpio_ad_17_sai1_mclk>, + <&iomuxc_gpio_ad_20_sai1_rx_data00>, + <&iomuxc_gpio_ad_21_sai1_tx_data00>, + <&iomuxc_gpio_ad_22_sai1_tx_bclk>, + <&iomuxc_gpio_ad_23_sai1_tx_sync>; + drive-strength = "high"; + slew-rate = "fast"; + input-enable; + }; + }; + + /* conflicts with enet pins */ + pinmux_usdhc1: pinmux_usdhc1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b1_01_usdhc1_clk>, + <&iomuxc_gpio_sd_b1_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b1_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b1_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b1_05_usdhc1_data3>; + bias-pull-up; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_34_usdhc1_vselect>, + <&iomuxc_gpio_ad_32_gpio_mux3_io31_cm7>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group2 { + pinmux = <&iomuxc_gpio_ad_35_gpio10_io02>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + }; + + /* removes pull on dat3 for card detect */ + pinmux_usdhc1_dat3_nopull: pinmux_usdhc1_dat3_nopull { + group0 { + pinmux = <&iomuxc_gpio_sd_b1_05_usdhc1_data3>; + bias-disable; + input-enable; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b1_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b1_01_usdhc1_clk>, + <&iomuxc_gpio_sd_b1_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b1_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b1_04_usdhc1_data2>; + bias-pull-up; + input-enable; + }; + group2 { + pinmux = <&iomuxc_gpio_ad_34_usdhc1_vselect>, + <&iomuxc_gpio_ad_32_gpio_mux3_io31_cm7>; + drive-strength = "high"; + bias-pull-down; + slew-rate = "fast"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_35_gpio10_io02>; + drive-strength = "high"; + bias-pull-up; + slew-rate = "fast"; + }; + }; + +}; + diff --git a/boards/arm/mimxrt1170_evk/mimxrt1170_evk.dtsi b/boards/arm/mimxrt1170_evk/mimxrt1170_evk.dtsi index 6c0c9a0ae67..5fd7cf44838 100644 --- a/boards/arm/mimxrt1170_evk/mimxrt1170_evk.dtsi +++ b/boards/arm/mimxrt1170_evk/mimxrt1170_evk.dtsi @@ -4,6 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ +#include "mimxrt1170_evk-pinctrl.dtsi" + / { aliases { led0 = &green_led; @@ -37,6 +39,8 @@ &lpi2c5 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c5>; + pinctrl-names = "default"; fxos8700@1f { compatible = "nxp,fxos8700"; @@ -55,6 +59,9 @@ &lpuart1 { status = "okay"; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; current-speed = <115200>; }; @@ -68,4 +75,67 @@ &flexpwm1_pwm2 { status = "okay"; + pinctrl-0 = <&pinmux_flexpwm1>; + pinctrl-names = "default"; +}; + +&enet { + pinctrl-0 = <&pinmux_enet>; + pinctrl-names = "default"; + ptp { + pinctrl-0 = <&pinmux_ptp>; + pinctrl-names = "default"; + }; +}; + +&csi { + pinctrl-0 = <&pinmux_csi>; + pinctrl-names = "default"; +}; + +&flexcan3 { + pinctrl-0 = <&pinmux_flexcan3>; + pinctrl-names = "default"; +}; + +&lcdif { + pinctrl-0 = <&pinmux_lcdif>; + pinctrl-names = "default"; +}; + +&lpi2c1 { + pinctrl-0 =<&pinmux_lpi2c5>; + pinctrl-names = "default"; +}; + +&lpspi1 { + pinctrl-0 = <&pinmux_lpspi1>; + pinctrl-names = "default"; +}; + +&lpuart2 { + pinctrl-0 = <&pinmux_lpuart2>; + pinctrl-1 = <&pinmux_lpuart2_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&sai1 { + pinctrl-0 = <&pinmux_sai1>; + pinctrl-names = "default"; +}; + +&lpadc0 { + pinctrl-0 = <&pinmux_lpadc0>; + pinctrl-names = "default"; +}; + +&flexspi { + pinctrl-0 = <&pinmux_flexspi1>; + pinctrl-names = "default"; +}; + +&usdhc1 { + pinctrl-0 = <&pinmux_usdhc1>; + pinctrl-1 = <&pinmux_usdhc1_dat3_nopull>; + pinctrl-names = "default", "nopull"; }; diff --git a/boards/arm/mm_feather/mm_feather-pinctrl.dtsi b/boards/arm/mm_feather/mm_feather-pinctrl.dtsi new file mode 100644 index 00000000000..f16de683d36 --- /dev/null +++ b/boards/arm/mm_feather/mm_feather-pinctrl.dtsi @@ -0,0 +1,178 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mm_feather.mex + */ + +#include + +&pinctrl { + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_01_lpi2c1_sda>, + <&iomuxc_gpio_ad_b1_00_lpi2c1_scl>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + pinmux_lpi2c3: pinmux_lpi2c3 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_07_lpi2c3_scl>, + <&iomuxc_gpio_ad_b1_06_lpi2c3_sda>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_lpuart1_rx>, + <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_gpio1_io13>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_usdhc1: pinmux_usdhc1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_b1_12_gpio2_io28>, + <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_b1_14_usdhc1_vselect>; + drive-strength = "r0-4"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_b0_05_gpio1_io05>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* fast pinmux settings for USDHC (over 100 Mhz) */ + pinmux_usdhc1_fast: pinmux_usdhc1_fast { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* medium pinmux settings for USDHC (under 100 Mhz) */ + pinmux_usdhc1_med: pinmux_usdhc1_med { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + }; + + /* slow pinmux settings for USDHC (under 50 Mhz) */ + pinmux_usdhc1_slow: pinmux_usdhc1_slow { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + }; + +}; + diff --git a/boards/arm/mm_feather/mm_feather.dts b/boards/arm/mm_feather/mm_feather.dts index 418fc9cc2b7..952dbfe34b6 100644 --- a/boards/arm/mm_feather/mm_feather.dts +++ b/boards/arm/mm_feather/mm_feather.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include "mm_feather-pinctrl.dtsi" / { model = "MM MM-FEATHER board"; @@ -68,6 +69,9 @@ &lpuart1 { status = "okay"; current-speed = <115200>; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; }; &lpuart2 { @@ -91,10 +95,14 @@ }; &lpi2c1 { + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; status = "okay"; }; &lpi2c3 { + pinctrl-0 = <&pinmux_lpi2c3>; + pinctrl-names = "default"; status = "okay"; }; @@ -156,6 +164,11 @@ status = "okay"; cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; no-1-8-v; + pinctrl-0 = <&pinmux_usdhc1>; + pinctrl-1 = <&pinmux_usdhc1_slow>; + pinctrl-2 = <&pinmux_usdhc1_med>; + pinctrl-3 = <&pinmux_usdhc1_fast>; + pinctrl-names = "default", "slow", "med", "fast"; }; &edma0 { diff --git a/boards/arm/mm_swiftio/mm_swiftio-pinctrl.dtsi b/boards/arm/mm_swiftio/mm_swiftio-pinctrl.dtsi new file mode 100644 index 00000000000..1a385a3babc --- /dev/null +++ b/boards/arm/mm_swiftio/mm_swiftio-pinctrl.dtsi @@ -0,0 +1,198 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from mm_swiftio.mex + */ + +#include + +&pinctrl { + pinmux_csi: pinmux_csi { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_04_csi_pixclk>, + <&iomuxc_gpio_ad_b1_05_csi_mclk>, + <&iomuxc_gpio_ad_b0_14_csi_vsync>, + <&iomuxc_gpio_ad_b0_15_csi_hsync>, + <&iomuxc_gpio_ad_b1_08_csi_data09>, + <&iomuxc_gpio_ad_b1_09_csi_data08>, + <&iomuxc_gpio_ad_b1_10_csi_data07>, + <&iomuxc_gpio_ad_b1_11_csi_data06>, + <&iomuxc_gpio_ad_b1_12_csi_data05>, + <&iomuxc_gpio_ad_b1_13_csi_data04>, + <&iomuxc_gpio_ad_b1_14_csi_data03>, + <&iomuxc_gpio_ad_b1_15_csi_data02>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_01_lpi2c1_sda>, + <&iomuxc_gpio_ad_b1_00_lpi2c1_scl>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + pinmux_lpi2c3: pinmux_lpi2c3 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_07_lpi2c3_scl>, + <&iomuxc_gpio_ad_b1_06_lpi2c3_sda>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_lpuart1_rx>, + <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_gpio1_io13>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_usdhc1: pinmux_usdhc1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_b1_12_gpio2_io28>, + <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_b1_14_usdhc1_vselect>; + drive-strength = "r0-4"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group3 { + pinmux = <&iomuxc_gpio_ad_b0_05_gpio1_io05>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* fast pinmux settings for USDHC (over 100 Mhz) */ + pinmux_usdhc1_fast: pinmux_usdhc1_fast { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* medium pinmux settings for USDHC (under 100 Mhz) */ + pinmux_usdhc1_med: pinmux_usdhc1_med { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + }; + + /* slow pinmux settings for USDHC (under 50 Mhz) */ + pinmux_usdhc1_slow: pinmux_usdhc1_slow { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + }; + +}; + diff --git a/boards/arm/mm_swiftio/mm_swiftio.dts b/boards/arm/mm_swiftio/mm_swiftio.dts index e14a7abb575..d0e56f3e50c 100644 --- a/boards/arm/mm_swiftio/mm_swiftio.dts +++ b/boards/arm/mm_swiftio/mm_swiftio.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include "mm_swiftio-pinctrl.dtsi" / { model = "MM MM-SWIFTIO board"; @@ -68,6 +69,9 @@ &lpuart1 { status = "okay"; current-speed = <115200>; + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; }; &lpuart2 { @@ -92,10 +96,14 @@ &lpi2c1 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; }; &lpi2c3 { status = "okay"; + pinctrl-0 = <&pinmux_lpi2c3>; + pinctrl-names = "default"; ov7725@21 { compatible = "ovti,ov7725"; @@ -171,11 +179,18 @@ status = "okay"; cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; no-1-8-v; + pinctrl-0 = <&pinmux_usdhc1>; + pinctrl-1 = <&pinmux_usdhc1_slow>; + pinctrl-2 = <&pinmux_usdhc1_med>; + pinctrl-3 = <&pinmux_usdhc1_fast>; + pinctrl-names = "default", "slow", "med", "fast"; }; &csi { status = "okay"; sensor-label = "OV7725"; + pinctrl-0 = <&pinmux_csi>; + pinctrl-names = "default"; port { csi_ep_in: endpoint { diff --git a/boards/arm/teensy4/teensy4-pinctrl.dtsi b/boards/arm/teensy4/teensy4-pinctrl.dtsi new file mode 100644 index 00000000000..2b109176103 --- /dev/null +++ b/boards/arm/teensy4/teensy4-pinctrl.dtsi @@ -0,0 +1,487 @@ +/* + * Copyright (c) 2022, NXP + * SPDX-License-Identifier: Apache-2.0 + * + * Note: File generated by rt_cfg_utils.py + * from teensy4.mex + */ + +#include + +&pinctrl { + /* Mode Straps configuration DP83825 */ + pinmux_enet: pinmux_enet { + group0 { + pinmux = <&iomuxc_gpio_b1_04_enet_rx_data0>, + <&iomuxc_gpio_b1_06_enet_rx_en>, + <&iomuxc_gpio_b1_11_enet_rx_er>; + drive-strength = "r0-5"; + bias-pull-down; + bias-pull-down-value = "100k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_b1_05_enet_rx_data1>; + drive-strength = "r0-5"; + bias-pull-up; + bias-pull-up-value = "22k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_b1_07_enet_tx_data0>, + <&iomuxc_gpio_b1_08_enet_tx_data1>, + <&iomuxc_gpio_b1_09_enet_tx_en>, + <&iomuxc_gpio_b1_14_enet_mdc>, + <&iomuxc_gpio_b1_15_enet_mdio>, + <&iomuxc_gpio_b0_15_gpio2_io15>, + <&iomuxc_gpio_b0_14_gpio2_io14>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group3 { + pinmux = <&iomuxc_gpio_b1_10_enet_ref_clk>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* FLEXCAN1 TX, RX on Teensy-Pins 22/23 */ + pinmux_flexcan1: pinmux_flexcan1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_08_flexcan1_tx>, + <&iomuxc_gpio_ad_b1_09_flexcan1_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* FLEXCAN2 TX, RX on Teensy-Pins 1/0 */ + pinmux_flexcan2: pinmux_flexcan2 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_02_flexcan2_tx>, + <&iomuxc_gpio_ad_b0_03_flexcan2_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* FLEXCAN3 TX, RX on Teensy-Pins 31/30 */ + pinmux_flexcan3: pinmux_flexcan3 { + group0 { + pinmux = <&iomuxc_gpio_emc_36_flexcan3_tx>, + <&iomuxc_gpio_emc_37_flexcan3_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* LPI2C1 SCL, SDA on Teensy-Pins 19/18 */ + pinmux_lpi2c1: pinmux_lpi2c1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_01_lpi2c1_sda>, + <&iomuxc_gpio_ad_b1_00_lpi2c1_scl>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* LPI2C3 SCL, SDA on Teensy-Pins 16/17 */ + pinmux_lpi2c3: pinmux_lpi2c3 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_07_lpi2c3_scl>, + <&iomuxc_gpio_ad_b1_06_lpi2c3_sda>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* LPI2C4 SCL, SDA on Teensy-Pins 24/25 */ + pinmux_lpi2c4: pinmux_lpi2c4 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_12_lpi2c4_scl>, + <&iomuxc_gpio_ad_b0_13_lpi2c4_sda>; + drive-strength = "r0-6"; + drive-open-drain; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + input-enable; + }; + }; + + /* LPSPI3 MISO, MOSI, SCK, CS on Teensy-Pins 39/26/27/38 */ + pinmux_lpspi3: pinmux_lpspi3 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_12_lpspi3_pcs0>, + <&iomuxc_gpio_ad_b0_00_lpspi3_sck>, + <&iomuxc_gpio_ad_b0_02_lpspi3_sdi>, + <&iomuxc_gpio_ad_b0_01_lpspi3_sdo>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* LPSPI4 MISO, MOSI, SCK, CS on Teensy-Pins 12/11/13/10 */ + pinmux_lpspi4: pinmux_lpspi4 { + group0 { + pinmux = <&iomuxc_gpio_b0_00_lpspi4_pcs0>, + <&iomuxc_gpio_b0_03_lpspi4_sck>, + <&iomuxc_gpio_b0_01_lpspi4_sdi>, + <&iomuxc_gpio_b0_02_lpspi4_sdo>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* LPUART1 TX/RX on Teensy-Pins 20/21 */ + pinmux_lpuart1: pinmux_lpuart1 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_lpuart1_rx>, + <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart1_sleep: pinmux_lpuart1_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_13_gpio1_io13>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_12_lpuart1_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* LPUART2 TX/RX on Teensy-Pins 14/15 */ + pinmux_lpuart2: pinmux_lpuart2 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_03_lpuart2_rx>, + <&iomuxc_gpio_ad_b1_02_lpuart2_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart2_sleep: pinmux_lpuart2_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_03_gpio1_io19>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b1_02_lpuart2_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* LPUART3 TX/RX on Teensy-Pins 17/16 */ + pinmux_lpuart3: pinmux_lpuart3 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_07_lpuart3_rx>, + <&iomuxc_gpio_ad_b1_06_lpuart3_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart3_sleep: pinmux_lpuart3_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_07_gpio1_io23>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b1_06_lpuart3_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* LPUART4 TX/RX on Teensy-Pins 8/7 */ + pinmux_lpuart4: pinmux_lpuart4 { + group0 { + pinmux = <&iomuxc_gpio_b1_01_lpuart4_rx>, + <&iomuxc_gpio_b1_00_lpuart4_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart4_sleep: pinmux_lpuart4_sleep { + group0 { + pinmux = <&iomuxc_gpio_b1_01_gpio2_io17>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_b1_00_lpuart4_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* LPUART5 TX/RX on Teensy-Pins 35/34 */ + pinmux_lpuart5: pinmux_lpuart5 { + group0 { + pinmux = <&iomuxc_gpio_b1_13_lpuart5_rx>, + <&iomuxc_gpio_b1_12_lpuart5_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart5_sleep: pinmux_lpuart5_sleep { + group0 { + pinmux = <&iomuxc_gpio_b1_13_gpio2_io29>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_b1_12_lpuart5_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* LPUART6 TX/RX on Teensy-Pins 1/0 */ + pinmux_lpuart6: pinmux_lpuart6 { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_03_lpuart6_rx>, + <&iomuxc_gpio_ad_b0_02_lpuart6_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart6_sleep: pinmux_lpuart6_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b0_03_gpio1_io03>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b0_02_lpuart6_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* LPUART7 TX/RX on Teensy-Pins 29/28 */ + pinmux_lpuart7: pinmux_lpuart7 { + group0 { + pinmux = <&iomuxc_gpio_emc_31_lpuart7_tx>, + <&iomuxc_gpio_emc_32_lpuart7_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart7_sleep: pinmux_lpuart7_sleep { + group0 { + pinmux = <&iomuxc_gpio_emc_31_gpio4_io31>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_emc_32_lpuart7_rx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + /* LPUART8 TX/RX on Teensy-Pins 20/21 */ + pinmux_lpuart8: pinmux_lpuart8 { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_11_lpuart8_rx>, + <&iomuxc_gpio_ad_b1_10_lpuart8_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_lpuart8_sleep: pinmux_lpuart8_sleep { + group0 { + pinmux = <&iomuxc_gpio_ad_b1_11_gpio1_io27>; + drive-strength = "r0-6"; + bias-pull-up; + bias-pull-up-value = "100k"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_ad_b1_10_lpuart8_tx>; + drive-strength = "r0-6"; + slew-rate = "slow"; + nxp,speed = "100-mhz"; + }; + }; + + pinmux_usdhc1: pinmux_usdhc1 { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group2 { + pinmux = <&iomuxc_gpio_emc_41_usdhc1_vselect>; + drive-strength = "r0-4"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + }; + + /* fast pinmux settings for USDHC (over 100 Mhz) */ + pinmux_usdhc1_fast: pinmux_usdhc1_fast { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "200-mhz"; + }; + }; + + /* medium pinmux settings for USDHC (under 100 Mhz) */ + pinmux_usdhc1_med: pinmux_usdhc1_med { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "100-mhz"; + }; + }; + + /* slow pinmux settings for USDHC (under 50 Mhz) */ + pinmux_usdhc1_slow: pinmux_usdhc1_slow { + group0 { + pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>; + bias-disable; + drive-strength = "r0-7"; + input-schmitt-enable; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + group1 { + pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>, + <&iomuxc_gpio_sd_b0_02_usdhc1_data0>, + <&iomuxc_gpio_sd_b0_03_usdhc1_data1>, + <&iomuxc_gpio_sd_b0_04_usdhc1_data2>, + <&iomuxc_gpio_sd_b0_05_usdhc1_data3>; + drive-strength = "r0-7"; + input-schmitt-enable; + bias-pull-up; + bias-pull-up-value = "47k"; + slew-rate = "fast"; + nxp,speed = "50-mhz"; + }; + }; + +}; + diff --git a/boards/arm/teensy4/teensy40.dts b/boards/arm/teensy4/teensy40.dts index 39abfdc8585..8b542b4d305 100644 --- a/boards/arm/teensy4/teensy40.dts +++ b/boards/arm/teensy4/teensy40.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include "teensy4-pinctrl.dtsi" / { model = "PJRC TEENSY 4.0 board"; @@ -64,3 +65,110 @@ zephyr_udc0: &usb1 { &edma0 { status = "okay"; }; + +/* Pinmux settings */ +&enet { + pinctrl-0 = <&pinmux_enet>; + pinctrl-names = "default"; +}; + +&flexcan1 { + pinctrl-0 = <&pinmux_flexcan1>; + pinctrl-names = "default"; +}; + +&flexcan1 { + pinctrl-0 = <&pinmux_flexcan1>; + pinctrl-names = "default"; +}; + +&flexcan2 { + pinctrl-0 = <&pinmux_flexcan2>; + pinctrl-names = "default"; +}; + +&flexcan3 { + pinctrl-0 = <&pinmux_flexcan3>; + pinctrl-names = "default"; +}; + +&lpi2c1 { + pinctrl-0 = <&pinmux_lpi2c1>; + pinctrl-names = "default"; +}; + +&lpi2c3 { + pinctrl-0 = <&pinmux_lpi2c3>; + pinctrl-names = "default"; +}; + +&lpi2c4 { + pinctrl-0 = <&pinmux_lpi2c4>; + pinctrl-names = "default"; +}; + +&lpspi3 { + pinctrl-0 = <&pinmux_lpspi3>; + pinctrl-names = "default"; +}; + +&lpspi4 { + pinctrl-0 = <&pinmux_lpspi4>; + pinctrl-names = "default"; +}; + +&lpuart1 { + pinctrl-0 = <&pinmux_lpuart1>; + pinctrl-1 = <&pinmux_lpuart1_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&lpuart2 { + pinctrl-0 = <&pinmux_lpuart2>; + pinctrl-1 = <&pinmux_lpuart2_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&lpuart3 { + pinctrl-0 = <&pinmux_lpuart3>; + pinctrl-1 = <&pinmux_lpuart3_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&lpuart4 { + pinctrl-0 = <&pinmux_lpuart4>; + pinctrl-1 = <&pinmux_lpuart4_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&lpuart5 { + pinctrl-0 = <&pinmux_lpuart5>; + pinctrl-1 = <&pinmux_lpuart5_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&lpuart6 { + pinctrl-0 = <&pinmux_lpuart6>; + pinctrl-1 = <&pinmux_lpuart6_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&lpuart7 { + pinctrl-0 = <&pinmux_lpuart7>; + pinctrl-1 = <&pinmux_lpuart7_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&lpuart8 { + pinctrl-0 = <&pinmux_lpuart8>; + pinctrl-1 = <&pinmux_lpuart8_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&usdhc1 { + pinctrl-0 = <&pinmux_usdhc1>; + pinctrl-1 = <&pinmux_usdhc1_slow>; + pinctrl-2 = <&pinmux_usdhc1_med>; + pinctrl-3 = <&pinmux_usdhc1_fast>; + pinctrl-names = "default", "slow", "med", "fast"; +};