1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (c) STMicroelectronics 2019 - All Rights Reserved
4*724ba675SRob Herring * Copyright (c) 2020 Engicam srl
5*724ba675SRob Herring * Copyright (c) 2020 Amarula Solutions(India)
6*724ba675SRob Herring */
7*724ba675SRob Herring
8*724ba675SRob Herring/dts-v1/;
9*724ba675SRob Herring#include "stm32mp157.dtsi"
10*724ba675SRob Herring#include "stm32mp157a-microgea-stm32mp1.dtsi"
11*724ba675SRob Herring#include "stm32mp15-pinctrl.dtsi"
12*724ba675SRob Herring#include "stm32mp15xxaa-pinctrl.dtsi"
13*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
14*724ba675SRob Herring
15*724ba675SRob Herring/ {
16*724ba675SRob Herring	model = "Engicam MicroGEA STM32MP1 MicroDev 2.0 7\" Open Frame";
17*724ba675SRob Herring	compatible = "engicam,microgea-stm32mp1-microdev2.0-of7",
18*724ba675SRob Herring		     "engicam,microgea-stm32mp1", "st,stm32mp157";
19*724ba675SRob Herring
20*724ba675SRob Herring	aliases {
21*724ba675SRob Herring		serial0 = &uart4;
22*724ba675SRob Herring		serial1 = &uart8;
23*724ba675SRob Herring	};
24*724ba675SRob Herring
25*724ba675SRob Herring	chosen {
26*724ba675SRob Herring		stdout-path = "serial0:115200n8";
27*724ba675SRob Herring	};
28*724ba675SRob Herring
29*724ba675SRob Herring	backlight: backlight {
30*724ba675SRob Herring		compatible = "gpio-backlight";
31*724ba675SRob Herring		gpios = <&gpiod 13 GPIO_ACTIVE_HIGH>;
32*724ba675SRob Herring		default-on;
33*724ba675SRob Herring	};
34*724ba675SRob Herring
35*724ba675SRob Herring	lcd_3v3: regulator-lcd-3v3 {
36*724ba675SRob Herring		compatible = "regulator-fixed";
37*724ba675SRob Herring		regulator-name = "lcd_3v3";
38*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
39*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
40*724ba675SRob Herring		gpio = <&gpiof 10 GPIO_ACTIVE_HIGH>;
41*724ba675SRob Herring		enable-active-high;
42*724ba675SRob Herring		regulator-always-on;
43*724ba675SRob Herring		power-supply = <&panel_pwr>;
44*724ba675SRob Herring	};
45*724ba675SRob Herring
46*724ba675SRob Herring	panel_pwr: regulator-panel-pwr {
47*724ba675SRob Herring		compatible = "regulator-fixed";
48*724ba675SRob Herring		regulator-name = "panel_pwr";
49*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
50*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
51*724ba675SRob Herring		gpio = <&gpiob 10 GPIO_ACTIVE_HIGH>;
52*724ba675SRob Herring		regulator-always-on;
53*724ba675SRob Herring	};
54*724ba675SRob Herring
55*724ba675SRob Herring	panel {
56*724ba675SRob Herring		compatible = "auo,b101aw03";
57*724ba675SRob Herring		backlight = <&backlight>;
58*724ba675SRob Herring		enable-gpios = <&gpiof 2 GPIO_ACTIVE_HIGH>;
59*724ba675SRob Herring		power-supply = <&lcd_3v3>;
60*724ba675SRob Herring
61*724ba675SRob Herring		port {
62*724ba675SRob Herring			panel_in: endpoint {
63*724ba675SRob Herring				remote-endpoint = <&ltdc_ep0_out>;
64*724ba675SRob Herring			};
65*724ba675SRob Herring		};
66*724ba675SRob Herring	};
67*724ba675SRob Herring};
68*724ba675SRob Herring
69*724ba675SRob Herring&i2c2 {
70*724ba675SRob Herring	i2c-scl-falling-time-ns = <20>;
71*724ba675SRob Herring	i2c-scl-rising-time-ns = <185>;
72*724ba675SRob Herring	pinctrl-names = "default", "sleep";
73*724ba675SRob Herring	pinctrl-0 = <&i2c2_pins_a>;
74*724ba675SRob Herring	pinctrl-1 = <&i2c2_sleep_pins_a>;
75*724ba675SRob Herring	status = "okay";
76*724ba675SRob Herring};
77*724ba675SRob Herring
78*724ba675SRob Herring&ltdc {
79*724ba675SRob Herring	pinctrl-names = "default";
80*724ba675SRob Herring	pinctrl-0 = <&ltdc_pins>;
81*724ba675SRob Herring	status = "okay";
82*724ba675SRob Herring
83*724ba675SRob Herring	port {
84*724ba675SRob Herring		ltdc_ep0_out: endpoint {
85*724ba675SRob Herring			remote-endpoint = <&panel_in>;
86*724ba675SRob Herring		};
87*724ba675SRob Herring	};
88*724ba675SRob Herring};
89*724ba675SRob Herring
90*724ba675SRob Herring&pinctrl {
91*724ba675SRob Herring	ltdc_pins: ltdc-0 {
92*724ba675SRob Herring		pins {
93*724ba675SRob Herring			pinmux = <STM32_PINMUX('G', 10, AF14)>,	/* LTDC_B2 */
94*724ba675SRob Herring				 <STM32_PINMUX('H', 12, AF14)>,	/* LTDC_R6 */
95*724ba675SRob Herring				 <STM32_PINMUX('H', 11, AF14)>,	/* LTDC_R5 */
96*724ba675SRob Herring				 <STM32_PINMUX('D', 10, AF14)>,	/* LTDC_B3 */
97*724ba675SRob Herring				 <STM32_PINMUX('D', 9, AF14)>,	/* LTDC_B0 */
98*724ba675SRob Herring				 <STM32_PINMUX('E', 5, AF14)>,	/* LTDC_G0 */
99*724ba675SRob Herring				 <STM32_PINMUX('E', 6, AF14)>,	/* LTDC_G1 */
100*724ba675SRob Herring				 <STM32_PINMUX('E', 13, AF14)>,	/* LTDC_DE */
101*724ba675SRob Herring				 <STM32_PINMUX('E', 15, AF14)>,	/* LTDC_R7 */
102*724ba675SRob Herring				 <STM32_PINMUX('G', 7, AF14)>,	/* LTDC_CLK */
103*724ba675SRob Herring				 <STM32_PINMUX('G', 12, AF14)>,	/* LTDC_B1 */
104*724ba675SRob Herring				 <STM32_PINMUX('H', 2, AF14)>,	/* LTDC_R0 */
105*724ba675SRob Herring				 <STM32_PINMUX('H', 3, AF14)>,	/* LTDC_R1 */
106*724ba675SRob Herring				 <STM32_PINMUX('H', 8, AF14)>,	/* LTDC_R2 */
107*724ba675SRob Herring				 <STM32_PINMUX('H', 9, AF14)>,	/* LTDC_R3 */
108*724ba675SRob Herring				 <STM32_PINMUX('H', 10, AF14)>,	/* LTDC_R4 */
109*724ba675SRob Herring				 <STM32_PINMUX('H', 13, AF14)>,	/* LTDC_G2 */
110*724ba675SRob Herring				 <STM32_PINMUX('H', 14, AF14)>,	/* LTDC_G3 */
111*724ba675SRob Herring				 <STM32_PINMUX('H', 15, AF14)>,	/* LTDC_G4 */
112*724ba675SRob Herring				 <STM32_PINMUX('I', 0, AF14)>,	/* LTDC_G5 */
113*724ba675SRob Herring				 <STM32_PINMUX('I', 1, AF14)>,	/* LTDC_G6 */
114*724ba675SRob Herring				 <STM32_PINMUX('I', 2, AF14)>,	/* LTDC_G7 */
115*724ba675SRob Herring				 <STM32_PINMUX('I', 4, AF14)>,	/* LTDC_B4 */
116*724ba675SRob Herring				 <STM32_PINMUX('I', 5, AF14)>,	/* LTDC_B5 */
117*724ba675SRob Herring				 <STM32_PINMUX('B', 8, AF14)>,	/* LTDC_B6 */
118*724ba675SRob Herring				 <STM32_PINMUX('I', 7, AF14)>,	/* LTDC_B7 */
119*724ba675SRob Herring				 <STM32_PINMUX('I', 9, AF14)>,	/* LTDC_VSYNC */
120*724ba675SRob Herring				 <STM32_PINMUX('I', 10, AF14)>;	/* LTDC_HSYNC */
121*724ba675SRob Herring			bias-disable;
122*724ba675SRob Herring			drive-push-pull;
123*724ba675SRob Herring			slew-rate = <3>;
124*724ba675SRob Herring		};
125*724ba675SRob Herring	};
126*724ba675SRob Herring};
127*724ba675SRob Herring
128*724ba675SRob Herring&sdmmc1 {
129*724ba675SRob Herring	bus-width = <4>;
130*724ba675SRob Herring	disable-wp;
131*724ba675SRob Herring	pinctrl-names = "default", "opendrain", "sleep";
132*724ba675SRob Herring	pinctrl-0 = <&sdmmc1_b4_pins_a>;
133*724ba675SRob Herring	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
134*724ba675SRob Herring	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
135*724ba675SRob Herring	st,neg-edge;
136*724ba675SRob Herring	vmmc-supply = <&vdd>;
137*724ba675SRob Herring	status = "okay";
138*724ba675SRob Herring};
139*724ba675SRob Herring
140*724ba675SRob Herring&uart4 {
141*724ba675SRob Herring	pinctrl-names = "default", "sleep", "idle";
142*724ba675SRob Herring	pinctrl-0 = <&uart4_pins_a>;
143*724ba675SRob Herring	pinctrl-1 = <&uart4_sleep_pins_a>;
144*724ba675SRob Herring	pinctrl-2 = <&uart4_idle_pins_a>;
145*724ba675SRob Herring	/delete-property/dmas;
146*724ba675SRob Herring	/delete-property/dma-names;
147*724ba675SRob Herring	status = "okay";
148*724ba675SRob Herring};
149*724ba675SRob Herring
150*724ba675SRob Herring/* J31: RS323 */
151*724ba675SRob Herring&uart8 {
152*724ba675SRob Herring	pinctrl-names = "default";
153*724ba675SRob Herring	pinctrl-0 = <&uart8_pins_a>;
154*724ba675SRob Herring	/delete-property/dmas;
155*724ba675SRob Herring	/delete-property/dma-names;
156*724ba675SRob Herring	status = "okay";
157*724ba675SRob Herring};
158