xref: /freebsd-src/sys/contrib/device-tree/src/arm/st/stm32h750i-art-pi.dts (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot/*
2*f126890aSEmmanuel Vadot * Copyright 2021 - Dillon Min <dillon.minfei@gmail.com>
3*f126890aSEmmanuel Vadot *
4*f126890aSEmmanuel Vadot * This file is dual-licensed: you can use it either under the terms
5*f126890aSEmmanuel Vadot * of the GPL or the X11 license, at your option. Note that this dual
6*f126890aSEmmanuel Vadot * licensing only applies to this file, and not this project as a
7*f126890aSEmmanuel Vadot * whole.
8*f126890aSEmmanuel Vadot *
9*f126890aSEmmanuel Vadot *  a) This file is free software; you can redistribute it and/or
10*f126890aSEmmanuel Vadot *     modify it under the terms of the GNU General Public License as
11*f126890aSEmmanuel Vadot *     published by the Free Software Foundation; either version 2 of the
12*f126890aSEmmanuel Vadot *     License, or (at your option) any later version.
13*f126890aSEmmanuel Vadot *
14*f126890aSEmmanuel Vadot *     This file is distributed in the hope that it will be useful,
15*f126890aSEmmanuel Vadot *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16*f126890aSEmmanuel Vadot *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17*f126890aSEmmanuel Vadot *     GNU General Public License for more details.
18*f126890aSEmmanuel Vadot *
19*f126890aSEmmanuel Vadot * Or, alternatively,
20*f126890aSEmmanuel Vadot *
21*f126890aSEmmanuel Vadot *  b) Permission is hereby granted, free of charge, to any person
22*f126890aSEmmanuel Vadot *     obtaining a copy of this software and associated documentation
23*f126890aSEmmanuel Vadot *     files (the "Software"), to deal in the Software without
24*f126890aSEmmanuel Vadot *     restriction, including without limitation the rights to use,
25*f126890aSEmmanuel Vadot *     copy, modify, merge, publish, distribute, sublicense, and/or
26*f126890aSEmmanuel Vadot *     sell copies of the Software, and to permit persons to whom the
27*f126890aSEmmanuel Vadot *     Software is furnished to do so, subject to the following
28*f126890aSEmmanuel Vadot *     conditions:
29*f126890aSEmmanuel Vadot *
30*f126890aSEmmanuel Vadot *     The above copyright notice and this permission notice shall be
31*f126890aSEmmanuel Vadot *     included in all copies or substantial portions of the Software.
32*f126890aSEmmanuel Vadot *
33*f126890aSEmmanuel Vadot *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34*f126890aSEmmanuel Vadot *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35*f126890aSEmmanuel Vadot *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36*f126890aSEmmanuel Vadot *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37*f126890aSEmmanuel Vadot *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38*f126890aSEmmanuel Vadot *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39*f126890aSEmmanuel Vadot *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40*f126890aSEmmanuel Vadot *     OTHER DEALINGS IN THE SOFTWARE.
41*f126890aSEmmanuel Vadot *
42*f126890aSEmmanuel Vadot * For art-pi board resources, you can refer to link:
43*f126890aSEmmanuel Vadot * 	https://art-pi.gitee.io/website/
44*f126890aSEmmanuel Vadot */
45*f126890aSEmmanuel Vadot
46*f126890aSEmmanuel Vadot/dts-v1/;
47*f126890aSEmmanuel Vadot#include "stm32h750.dtsi"
48*f126890aSEmmanuel Vadot#include "stm32h7-pinctrl.dtsi"
49*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
50*f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
51*f126890aSEmmanuel Vadot
52*f126890aSEmmanuel Vadot/ {
53*f126890aSEmmanuel Vadot	model = "RT-Thread STM32H750i-ART-PI board";
54*f126890aSEmmanuel Vadot	compatible = "st,stm32h750i-art-pi", "st,stm32h750";
55*f126890aSEmmanuel Vadot
56*f126890aSEmmanuel Vadot	chosen {
57*f126890aSEmmanuel Vadot		bootargs = "root=/dev/ram";
58*f126890aSEmmanuel Vadot		stdout-path = "serial0:2000000n8";
59*f126890aSEmmanuel Vadot	};
60*f126890aSEmmanuel Vadot
61*f126890aSEmmanuel Vadot	memory@c0000000 {
62*f126890aSEmmanuel Vadot		device_type = "memory";
63*f126890aSEmmanuel Vadot		reg = <0xc0000000 0x2000000>;
64*f126890aSEmmanuel Vadot	};
65*f126890aSEmmanuel Vadot
66*f126890aSEmmanuel Vadot	reserved-memory {
67*f126890aSEmmanuel Vadot		#address-cells = <1>;
68*f126890aSEmmanuel Vadot		#size-cells = <1>;
69*f126890aSEmmanuel Vadot		ranges;
70*f126890aSEmmanuel Vadot
71*f126890aSEmmanuel Vadot		linux,cma {
72*f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
73*f126890aSEmmanuel Vadot			no-map;
74*f126890aSEmmanuel Vadot			size = <0x100000>;
75*f126890aSEmmanuel Vadot			linux,dma-default;
76*f126890aSEmmanuel Vadot		};
77*f126890aSEmmanuel Vadot	};
78*f126890aSEmmanuel Vadot
79*f126890aSEmmanuel Vadot	aliases {
80*f126890aSEmmanuel Vadot		serial0 = &uart4;
81*f126890aSEmmanuel Vadot		serial1 = &usart3;
82*f126890aSEmmanuel Vadot	};
83*f126890aSEmmanuel Vadot
84*f126890aSEmmanuel Vadot	leds {
85*f126890aSEmmanuel Vadot		compatible = "gpio-leds";
86*f126890aSEmmanuel Vadot		led-red {
87*f126890aSEmmanuel Vadot			gpios = <&gpioi 8 0>;
88*f126890aSEmmanuel Vadot		};
89*f126890aSEmmanuel Vadot		led-green {
90*f126890aSEmmanuel Vadot			gpios = <&gpioc 15 0>;
91*f126890aSEmmanuel Vadot			linux,default-trigger = "heartbeat";
92*f126890aSEmmanuel Vadot		};
93*f126890aSEmmanuel Vadot	};
94*f126890aSEmmanuel Vadot
95*f126890aSEmmanuel Vadot	v3v3: regulator-v3v3 {
96*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
97*f126890aSEmmanuel Vadot		regulator-name = "v3v3";
98*f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
99*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
100*f126890aSEmmanuel Vadot		regulator-always-on;
101*f126890aSEmmanuel Vadot	};
102*f126890aSEmmanuel Vadot
103*f126890aSEmmanuel Vadot	wlan_pwr: regulator-wlan {
104*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
105*f126890aSEmmanuel Vadot
106*f126890aSEmmanuel Vadot		regulator-name = "wl-reg";
107*f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
108*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
109*f126890aSEmmanuel Vadot
110*f126890aSEmmanuel Vadot		gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
111*f126890aSEmmanuel Vadot		enable-active-high;
112*f126890aSEmmanuel Vadot	};
113*f126890aSEmmanuel Vadot};
114*f126890aSEmmanuel Vadot
115*f126890aSEmmanuel Vadot&clk_hse {
116*f126890aSEmmanuel Vadot	clock-frequency = <25000000>;
117*f126890aSEmmanuel Vadot};
118*f126890aSEmmanuel Vadot
119*f126890aSEmmanuel Vadot&dma1 {
120*f126890aSEmmanuel Vadot	status = "okay";
121*f126890aSEmmanuel Vadot};
122*f126890aSEmmanuel Vadot
123*f126890aSEmmanuel Vadot&dma2 {
124*f126890aSEmmanuel Vadot	status = "okay";
125*f126890aSEmmanuel Vadot};
126*f126890aSEmmanuel Vadot
127*f126890aSEmmanuel Vadot&mac {
128*f126890aSEmmanuel Vadot	status = "disabled";
129*f126890aSEmmanuel Vadot	pinctrl-0 = <&ethernet_rmii>;
130*f126890aSEmmanuel Vadot	pinctrl-names = "default";
131*f126890aSEmmanuel Vadot	phy-mode = "rmii";
132*f126890aSEmmanuel Vadot	phy-handle = <&phy0>;
133*f126890aSEmmanuel Vadot
134*f126890aSEmmanuel Vadot	mdio0 {
135*f126890aSEmmanuel Vadot		#address-cells = <1>;
136*f126890aSEmmanuel Vadot		#size-cells = <0>;
137*f126890aSEmmanuel Vadot		compatible = "snps,dwmac-mdio";
138*f126890aSEmmanuel Vadot		phy0: ethernet-phy@0 {
139*f126890aSEmmanuel Vadot			reg = <0>;
140*f126890aSEmmanuel Vadot		};
141*f126890aSEmmanuel Vadot	};
142*f126890aSEmmanuel Vadot};
143*f126890aSEmmanuel Vadot
144*f126890aSEmmanuel Vadot&sdmmc1 {
145*f126890aSEmmanuel Vadot	pinctrl-names = "default", "opendrain", "sleep";
146*f126890aSEmmanuel Vadot	pinctrl-0 = <&sdmmc1_b4_pins_a>;
147*f126890aSEmmanuel Vadot	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
148*f126890aSEmmanuel Vadot	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
149*f126890aSEmmanuel Vadot	broken-cd;
150*f126890aSEmmanuel Vadot	st,neg-edge;
151*f126890aSEmmanuel Vadot	bus-width = <4>;
152*f126890aSEmmanuel Vadot	vmmc-supply = <&v3v3>;
153*f126890aSEmmanuel Vadot	status = "okay";
154*f126890aSEmmanuel Vadot};
155*f126890aSEmmanuel Vadot
156*f126890aSEmmanuel Vadot&sdmmc2 {
157*f126890aSEmmanuel Vadot	pinctrl-names = "default", "opendrain", "sleep";
158*f126890aSEmmanuel Vadot	pinctrl-0 = <&sdmmc2_b4_pins_a>;
159*f126890aSEmmanuel Vadot	pinctrl-1 = <&sdmmc2_b4_od_pins_a>;
160*f126890aSEmmanuel Vadot	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a>;
161*f126890aSEmmanuel Vadot	broken-cd;
162*f126890aSEmmanuel Vadot	non-removable;
163*f126890aSEmmanuel Vadot	st,neg-edge;
164*f126890aSEmmanuel Vadot	bus-width = <4>;
165*f126890aSEmmanuel Vadot	vmmc-supply = <&wlan_pwr>;
166*f126890aSEmmanuel Vadot	status = "okay";
167*f126890aSEmmanuel Vadot
168*f126890aSEmmanuel Vadot	#address-cells = <1>;
169*f126890aSEmmanuel Vadot	#size-cells = <0>;
170*f126890aSEmmanuel Vadot	brcmf: bcrmf@1 {
171*f126890aSEmmanuel Vadot		reg = <1>;
172*f126890aSEmmanuel Vadot		compatible = "brcm,bcm4329-fmac";
173*f126890aSEmmanuel Vadot	};
174*f126890aSEmmanuel Vadot};
175*f126890aSEmmanuel Vadot
176*f126890aSEmmanuel Vadot&spi1 {
177*f126890aSEmmanuel Vadot	status = "okay";
178*f126890aSEmmanuel Vadot	pinctrl-0 = <&spi1_pins>;
179*f126890aSEmmanuel Vadot	pinctrl-names = "default";
180*f126890aSEmmanuel Vadot	cs-gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;
181*f126890aSEmmanuel Vadot	dmas = <&dmamux1 37 0x400 0x05>,
182*f126890aSEmmanuel Vadot	       <&dmamux1 38 0x400 0x05>;
183*f126890aSEmmanuel Vadot	dma-names = "rx", "tx";
184*f126890aSEmmanuel Vadot
185*f126890aSEmmanuel Vadot	flash@0 {
186*f126890aSEmmanuel Vadot		#address-cells = <1>;
187*f126890aSEmmanuel Vadot		#size-cells = <1>;
188*f126890aSEmmanuel Vadot		compatible = "winbond,w25q128", "jedec,spi-nor";
189*f126890aSEmmanuel Vadot		reg = <0>;
190*f126890aSEmmanuel Vadot		spi-max-frequency = <80000000>;
191*f126890aSEmmanuel Vadot
192*f126890aSEmmanuel Vadot		partition@0 {
193*f126890aSEmmanuel Vadot			label = "root filesystem";
194*f126890aSEmmanuel Vadot			reg = <0 0x1000000>;
195*f126890aSEmmanuel Vadot		};
196*f126890aSEmmanuel Vadot	};
197*f126890aSEmmanuel Vadot};
198*f126890aSEmmanuel Vadot
199*f126890aSEmmanuel Vadot&usart2 {
200*f126890aSEmmanuel Vadot	pinctrl-0 = <&usart2_pins>;
201*f126890aSEmmanuel Vadot	pinctrl-names = "default";
202*f126890aSEmmanuel Vadot	status = "disabled";
203*f126890aSEmmanuel Vadot};
204*f126890aSEmmanuel Vadot
205*f126890aSEmmanuel Vadot&usart3 {
206*f126890aSEmmanuel Vadot	pinctrl-names = "default";
207*f126890aSEmmanuel Vadot	pinctrl-0 = <&usart3_pins>;
208*f126890aSEmmanuel Vadot	dmas = <&dmamux1 45 0x400 0x05>,
209*f126890aSEmmanuel Vadot	       <&dmamux1 46 0x400 0x05>;
210*f126890aSEmmanuel Vadot	dma-names = "rx", "tx";
211*f126890aSEmmanuel Vadot	uart-has-rtscts;
212*f126890aSEmmanuel Vadot	status = "okay";
213*f126890aSEmmanuel Vadot
214*f126890aSEmmanuel Vadot	bluetooth {
215*f126890aSEmmanuel Vadot		compatible = "brcm,bcm43438-bt";
216*f126890aSEmmanuel Vadot		host-wakeup-gpios = <&gpioc 0 GPIO_ACTIVE_HIGH>;
217*f126890aSEmmanuel Vadot		device-wakeup-gpios = <&gpioi 10 GPIO_ACTIVE_HIGH>;
218*f126890aSEmmanuel Vadot		shutdown-gpios = <&gpioi 11 GPIO_ACTIVE_HIGH>;
219*f126890aSEmmanuel Vadot		max-speed = <115200>;
220*f126890aSEmmanuel Vadot	};
221*f126890aSEmmanuel Vadot};
222*f126890aSEmmanuel Vadot
223*f126890aSEmmanuel Vadot&uart4 {
224*f126890aSEmmanuel Vadot	pinctrl-0 = <&uart4_pins>;
225*f126890aSEmmanuel Vadot	pinctrl-names = "default";
226*f126890aSEmmanuel Vadot	status = "okay";
227*f126890aSEmmanuel Vadot};
228*f126890aSEmmanuel Vadot
229*f126890aSEmmanuel Vadot
230