zephyr/boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts
Daniel DeGrasse 746758d1f6 drivers: display: update MCUX ELCDIF driver to use new lcdif binding
Update MCUX ELCDIF driver to use new LCDIF bindings. This
update also adds support for configuring the root clock of
the ELCDIF module based on the pixel-clock property to the
RT11xx SOC clock init, as this SOC series has this IP block

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2023-05-11 10:04:24 +02:00

307 lines
6.6 KiB
Text

/*
* Copyright (c) 2017, NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <nxp/nxp_rt1050.dtsi>
#include "mimxrt1050_evk-pinctrl.dtsi"
#include <zephyr/dt-bindings/display/panel.h>
/ {
model = "NXP MIMXRT1050-EVK board";
compatible = "nxp,mimxrt1052";
aliases {
led0 = &green_led;
sw0 = &user_button;
kscan0 = &kscan_input;
watchdog0 = &wdog0;
magn0 = &fxos8700;
accel0 = &fxos8700;
sdhc0 = &usdhc1;
};
chosen {
zephyr,sram = &sdram0;
zephyr,itcm = &itcm;
zephyr,dtcm = &dtcm;
zephyr,console = &lpuart1;
zephyr,shell-uart = &lpuart1;
zephyr,flash-controller = &s26ks512s0;
zephyr,flash = &s26ks512s0;
zephyr,code-partition = &slot0_partition;
zephyr,display = &lcdif;
zephyr,keyboard-scan = &kscan_input;
};
sdram0: memory@80000000 {
/* Micron MT48LC16M16A2B4-6AIT:G */
device_type = "memory";
reg = <0x80000000 DT_SIZE_M(32)>;
};
leds {
compatible = "gpio-leds";
green_led: led_0 {
gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
label = "User LD1";
};
};
gpio_keys {
compatible = "gpio-keys";
user_button: button_0 {
label = "User SW8";
gpios = <&gpio5 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
};
};
arduino_header: connector {
compatible = "arduino-header-r3";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map = <0 0 &gpio1 26 0>, /* A0 */
<1 0 &gpio1 27 0>, /* A1 */
<2 0 &gpio1 20 0>, /* A2 */
<3 0 &gpio1 21 0>, /* A3 */
<4 0 &gpio1 17 0>, /* A4 */
<5 0 &gpio1 16 0>, /* A5 */
<6 0 &gpio1 23 0>, /* D0 */
<7 0 &gpio1 22 0>, /* D1 */
<8 0 &gpio1 11 0>, /* D2 */
<9 0 &gpio1 24 0>, /* D3 */
<10 0 &gpio1 9 0>, /* D4 */
<11 0 &gpio1 10 0>, /* D5 */
<12 0 &gpio1 18 0>, /* D6 */
<13 0 &gpio1 19 0>, /* D7 */
<14 0 &gpio1 3 0>, /* D8 */
<15 0 &gpio1 2 0>, /* D9 */
<16 0 &gpio3 13 0>, /* D10 */
<17 0 &gpio3 14 0>, /* D11 */
<18 0 &gpio3 15 0>, /* D12 */
<19 0 &gpio3 12 0>, /* D13 */
<20 0 &gpio1 1 0>, /* D14 */
<21 0 &gpio1 0 0>; /* D15 */
};
panel {
compatible = "rocktech,rk043fn02h-ct";
port {
lcd_panel_in: endpoint {
remote-endpoint = <&lcd_panel_out>;
};
};
};
};
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;
combination-mode;
rx-clock-source = <3>;
reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(64)>;
s26ks512s0: s26ks512s@0 {
compatible = "nxp,imx-flexspi-hyperflash";
size = <DT_SIZE_M(64*8)>;
reg = <0>;
spi-max-frequency = <166000000>;
word-addressable;
cs-interval-unit = <1>;
cs-interval = <2>;
cs-hold-time = <0>;
cs-setup-time = <3>;
data-valid-time = <1>;
column-space = <3>;
ahb-write-wait-unit = <2>;
ahb-write-wait-interval = <20>;
status = "okay";
erase-block-size = <4096>;
write-block-size = <16>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 DT_SIZE_K(256)>;
};
slot0_partition: partition@40000 {
label = "image-0";
reg = <0x00040000 DT_SIZE_M(3)>;
};
slot1_partition: partition@340000 {
label = "image-1";
reg = <0x00340000 DT_SIZE_M(3)>;
};
scratch_partition: partition@640000 {
label = "image-scratch";
reg = <0x00640000 DT_SIZE_K(768)>;
};
storage_partition: partition@700000 {
label = "storage";
reg = <0x00700000 DT_SIZE_M(57)>;
};
};
};
};
&lcdif {
status = "okay";
width = <480>;
height = <272>;
display-timings {
compatible = "zephyr,panel-timing";
hsync-len = <41>;
hfront-porch = <4>;
hback-porch = <8>;
vsync-len = <10>;
vfront-porch = <4>;
vback-porch = <2>;
de-active= <1>;
pixelclk-active = <1>;
hsync-active = <0>;
vsync-active = <0>;
clock-frequency = <9210240>;
};
pixel-format = <PANEL_PIXEL_FORMAT_BGR_565>;
data-bus-width = "16-bit";
pinctrl-0 = <&pinmux_lcdif>;
pinctrl-names = "default";
backlight-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
port {
lcd_panel_out: endpoint {
remote-endpoint = <&lcd_panel_in>;
};
};
};
&lpi2c1 {
status = "okay";
pinctrl-0 = <&pinmux_lpi2c1>;
pinctrl-names = "default";
fxos8700: fxos8700@1f {
compatible = "nxp,fxos8700";
reg = <0x1f>;
/* Two zero ohm resistors (R263 and R264) isolate sensor
* interrupt gpios from the soc and are unpopulated by default.
* Note that if you populate them, they conflict with LCD and
* Ethernet interrupt gpios.
*/
int1-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
int2-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
};
ft5336@38 {
compatible = "focaltech,ft5336";
reg = <0x38>;
int-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
kscan_input: kscan-input {
compatible = "zephyr,kscan-input";
};
};
};
&lpuart1 {
status = "okay";
current-speed = <115200>;
pinctrl-0 = <&pinmux_lpuart1>;
pinctrl-1 = <&pinmux_lpuart1_sleep>;
pinctrl-names = "default", "sleep";
};
&lpspi1 {
status = "okay";
/* 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 {
status = "okay";
/* 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";
int-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
ptp {
pinctrl-0 = <&pinmux_ptp>;
pinctrl-names = "default";
status = "okay";
};
};
zephyr_udc0: &usb1 {
status = "okay";
};
&usdhc1 {
status = "okay";
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";
sdmmc {
compatible = "zephyr,sdmmc-disk";
status = "okay";
};
};
&wdog0 {
status = "okay";
};
&edma0 {
status = "okay";
};
/* GPT and Systick are enabled. If power management is enabled, the GPT
* timer will be used instead of systick, as allows the core clock to
* be gated.
*/
&gpt_hw_timer {
status = "okay";
};
&systick {
status = "okay";
};