boards: nxp: frdm_mcxa156: Support flexio for NXP frdm_mcxa156 board

Support flexio for NXP frdm_mcxa156 board.

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
This commit is contained in:
Neil Chen 2025-01-08 14:18:36 +08:00 committed by Henrik Brix Andersen
parent 009269f0e6
commit 77dcab7352
4 changed files with 87 additions and 0 deletions

View file

@ -155,6 +155,11 @@ static int frdm_mcxa156_init(void)
CLOCK_AttachClk(kFRO_HF_DIV_to_FLEXCAN0);
#endif
#if DT_NODE_HAS_STATUS_OKAY(DT_NODELABEL(flexio0))
CLOCK_SetClockDiv(kCLOCK_DivFLEXIO0, 1u);
CLOCK_AttachClk(kFRO_HF_to_FLEXIO0);
#endif
#if DT_NODE_HAS_STATUS_OKAY(DT_NODELABEL(lpadc0))
CLOCK_SetClockDiv(kCLOCK_DivADC0, 1u);
CLOCK_AttachClk(kFRO12M_to_ADC0);

View file

@ -64,6 +64,11 @@ The FRDM-MCXA156 board configuration supports the following hardware features:
+-----------+------------+-------------------------------------+
| FLEXCAN | on-chip | CAN |
+-----------+------------+-------------------------------------+
| FLEXIO | on-chip | flexio |
+-----------+------------+-------------------------------------+
| DISPLAY | on-chip | flexio; MIPI-DBI. Tested with |
| | | :ref:`lcd_par_s035` |
+-----------+------------+-------------------------------------+
| I2C | on-chip | i2c |
+-----------+------------+-------------------------------------+
| LPCMP | on-chip | sensor(comparator) |

View file

@ -32,6 +32,46 @@
input-enable;
};
};
pinmux_flexio_lcd: pinmux_flexio_lcd {
group0 {
pinmux = <FLEXIO0_D0_P0_16>,
<FLEXIO0_D1_P0_17>,
<FLEXIO0_D2_P0_18>,
<FLEXIO0_D3_P0_19>,
<FLEXIO0_D4_P0_20>,
<FLEXIO0_D5_P0_21>,
<FLEXIO0_D6_P0_22>,
<FLEXIO0_D7_P0_23>,
<FLEXIO0_D8_P2_0>,
<FLEXIO0_D9_P2_1>,
<FLEXIO0_D10_P4_2>,
<FLEXIO0_D11_P4_3>,
<FLEXIO0_D12_P4_4>,
<FLEXIO0_D13_P4_5>,
<FLEXIO0_D14_P4_6>,
<FLEXIO0_D15_P4_7>,
<P2_17>,
<P2_19>,
<P3_0>;
slew-rate = "fast";
drive-strength = "low";
input-enable;
};
group1 {
pinmux = <FLEXIO0_D28_P2_20>;
slew-rate = "fast";
drive-strength = "low";
input-enable;
bias-pull-up;
};
group2 {
pinmux = <FLEXIO0_D31_P2_23>;
slew-rate = "slow";
drive-strength = "low";
input-enable;
bias-pull-up;
};
};
pinmux_flexpwm0_pwm0: pinmux_flexpwm0_pwm0 {
group0 {
pinmux = <PWM0_A0_P3_6>,

View file

@ -66,6 +66,18 @@
};
};
/*
* This node describes the GPIO pins of the LCD-PAR-S035 panel 8080 interface.
*/
nxp_lcd_8080_connector: lcd-8080-connector {
compatible = "nxp,lcd-8080";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map = <9 0 &gpio2 15 0>, /* Pin 9, LCD touch INT */
<10 0 &gpio3 22 0>, /* Pin 10, LCD backlight control */
<11 0 &gpio3 0 0>; /* Pin 11, LCD and touch reset */
};
};
&gpio0 {
@ -115,6 +127,31 @@
pinctrl-names = "default";
};
&flexio0 {
status = "okay";
};
nxp_8080_touch_panel_i2c: &lpi2c2 {
pinctrl-0 = <&pinmux_lpi2c2>;
pinctrl-names = "default";
};
zephyr_mipi_dbi_parallel: &flexio0_lcd {
/* DMA channels 0, muxed to FlexIO TX */
dmas = <&edma0 0 71>;
dma-names = "tx";
shifters-count = <4>;
timers-count = <1>;
enwr-pin = <31>;
rd-pin = <28>;
data-pin-start = <0>;
reset-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
cs-gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
rs-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&pinmux_flexio_lcd>;
pinctrl-names = "default";
};
&flexpwm0_pwm0 {
status = "okay";
pinctrl-0 = <&pinmux_flexpwm0_pwm0>;