xref: /freebsd/sys/contrib/device-tree/src/arm/nxp/lpc/lpc3250-phy3250.dts (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * PHYTEC phyCORE-LPC3250 board
4*f126890aSEmmanuel Vadot *
5*f126890aSEmmanuel Vadot * Copyright (C) 2015-2019 Vladimir Zapolskiy <vz@mleia.com>
6*f126890aSEmmanuel Vadot * Copyright 2012 Roland Stigge <stigge@antcom.de>
7*f126890aSEmmanuel Vadot */
8*f126890aSEmmanuel Vadot
9*f126890aSEmmanuel Vadot/dts-v1/;
10*f126890aSEmmanuel Vadot#include "lpc32xx.dtsi"
11*f126890aSEmmanuel Vadot
12*f126890aSEmmanuel Vadot/ {
13*f126890aSEmmanuel Vadot	model = "PHYTEC phyCORE-LPC3250 board based on NXP LPC3250";
14*f126890aSEmmanuel Vadot	compatible = "phytec,phy3250", "nxp,lpc3250";
15*f126890aSEmmanuel Vadot
16*f126890aSEmmanuel Vadot	memory@80000000 {
17*f126890aSEmmanuel Vadot		device_type = "memory";
18*f126890aSEmmanuel Vadot		reg = <0x80000000 0x4000000>;
19*f126890aSEmmanuel Vadot	};
20*f126890aSEmmanuel Vadot
21*f126890aSEmmanuel Vadot	leds {
22*f126890aSEmmanuel Vadot		compatible = "gpio-leds";
23*f126890aSEmmanuel Vadot
24*f126890aSEmmanuel Vadot		led0 { /* red */
25*f126890aSEmmanuel Vadot			gpios = <&gpio 5 1 0>; /* GPO_P3 1, GPIO 80, active high */
26*f126890aSEmmanuel Vadot			default-state = "off";
27*f126890aSEmmanuel Vadot		};
28*f126890aSEmmanuel Vadot
29*f126890aSEmmanuel Vadot		led1 { /* green */
30*f126890aSEmmanuel Vadot			gpios = <&gpio 5 14 0>; /* GPO_P3 14, GPIO 93, active high */
31*f126890aSEmmanuel Vadot			linux,default-trigger = "heartbeat";
32*f126890aSEmmanuel Vadot		};
33*f126890aSEmmanuel Vadot	};
34*f126890aSEmmanuel Vadot
35*f126890aSEmmanuel Vadot	panel: panel {
36*f126890aSEmmanuel Vadot		compatible = "sharp,lq035q7db03";
37*f126890aSEmmanuel Vadot		power-supply = <&reg_lcd>;
38*f126890aSEmmanuel Vadot
39*f126890aSEmmanuel Vadot		port {
40*f126890aSEmmanuel Vadot			panel_input: endpoint {
41*f126890aSEmmanuel Vadot				remote-endpoint = <&cldc_output>;
42*f126890aSEmmanuel Vadot			};
43*f126890aSEmmanuel Vadot		};
44*f126890aSEmmanuel Vadot	};
45*f126890aSEmmanuel Vadot
46*f126890aSEmmanuel Vadot	reg_backlight: regulator-backlight {
47*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
48*f126890aSEmmanuel Vadot		regulator-name = "backlight";
49*f126890aSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
50*f126890aSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
51*f126890aSEmmanuel Vadot		gpio = <&gpio 5 4 0>;
52*f126890aSEmmanuel Vadot		enable-active-high;
53*f126890aSEmmanuel Vadot		regulator-boot-on;
54*f126890aSEmmanuel Vadot	};
55*f126890aSEmmanuel Vadot
56*f126890aSEmmanuel Vadot	reg_lcd: regulator-lcd {
57*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
58*f126890aSEmmanuel Vadot		regulator-name = "lcd";
59*f126890aSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
60*f126890aSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
61*f126890aSEmmanuel Vadot		gpio = <&gpio 5 0 0>;
62*f126890aSEmmanuel Vadot		enable-active-high;
63*f126890aSEmmanuel Vadot		regulator-boot-on;
64*f126890aSEmmanuel Vadot	};
65*f126890aSEmmanuel Vadot
66*f126890aSEmmanuel Vadot	reg_sd: regulator-sd {
67*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
68*f126890aSEmmanuel Vadot		regulator-name = "sd";
69*f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
70*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
71*f126890aSEmmanuel Vadot		gpio = <&gpio 5 5 0>;
72*f126890aSEmmanuel Vadot		enable-active-high;
73*f126890aSEmmanuel Vadot		regulator-boot-on;
74*f126890aSEmmanuel Vadot	};
75*f126890aSEmmanuel Vadot};
76*f126890aSEmmanuel Vadot
77*f126890aSEmmanuel Vadot&clcd {
78*f126890aSEmmanuel Vadot	max-memory-bandwidth = <18710000>;
79*f126890aSEmmanuel Vadot	status = "okay";
80*f126890aSEmmanuel Vadot
81*f126890aSEmmanuel Vadot	port {
82*f126890aSEmmanuel Vadot		cldc_output: endpoint {
83*f126890aSEmmanuel Vadot			remote-endpoint = <&panel_input>;
84*f126890aSEmmanuel Vadot			arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
85*f126890aSEmmanuel Vadot		};
86*f126890aSEmmanuel Vadot	};
87*f126890aSEmmanuel Vadot};
88*f126890aSEmmanuel Vadot
89*f126890aSEmmanuel Vadot&i2c1 {
90*f126890aSEmmanuel Vadot	clock-frequency = <100000>;
91*f126890aSEmmanuel Vadot
92*f126890aSEmmanuel Vadot	uda1380: uda1380@18 {
93*f126890aSEmmanuel Vadot		compatible = "nxp,uda1380";
94*f126890aSEmmanuel Vadot		reg = <0x18>;
95*f126890aSEmmanuel Vadot		power-gpio = <&gpio 3 10 0>;
96*f126890aSEmmanuel Vadot		reset-gpio = <&gpio 3 2 0>;
97*f126890aSEmmanuel Vadot		dac-clk = "wspll";
98*f126890aSEmmanuel Vadot	};
99*f126890aSEmmanuel Vadot
100*f126890aSEmmanuel Vadot	pcf8563: rtc@51 {
101*f126890aSEmmanuel Vadot		compatible = "nxp,pcf8563";
102*f126890aSEmmanuel Vadot		reg = <0x51>;
103*f126890aSEmmanuel Vadot	};
104*f126890aSEmmanuel Vadot};
105*f126890aSEmmanuel Vadot
106*f126890aSEmmanuel Vadot&i2c2 {
107*f126890aSEmmanuel Vadot	clock-frequency = <100000>;
108*f126890aSEmmanuel Vadot};
109*f126890aSEmmanuel Vadot
110*f126890aSEmmanuel Vadot&i2cusb {
111*f126890aSEmmanuel Vadot	clock-frequency = <100000>;
112*f126890aSEmmanuel Vadot
113*f126890aSEmmanuel Vadot	isp1301: usb-transceiver@2c {
114*f126890aSEmmanuel Vadot		compatible = "nxp,isp1301";
115*f126890aSEmmanuel Vadot		reg = <0x2c>;
116*f126890aSEmmanuel Vadot	};
117*f126890aSEmmanuel Vadot};
118*f126890aSEmmanuel Vadot
119*f126890aSEmmanuel Vadot&key {
120*f126890aSEmmanuel Vadot	keypad,num-rows = <1>;
121*f126890aSEmmanuel Vadot	keypad,num-columns = <1>;
122*f126890aSEmmanuel Vadot	nxp,debounce-delay-ms = <3>;
123*f126890aSEmmanuel Vadot	nxp,scan-delay-ms = <34>;
124*f126890aSEmmanuel Vadot	linux,keymap = <0x00000002>;
125*f126890aSEmmanuel Vadot	status = "okay";
126*f126890aSEmmanuel Vadot};
127*f126890aSEmmanuel Vadot
128*f126890aSEmmanuel Vadot&mac {
129*f126890aSEmmanuel Vadot	phy-mode = "rmii";
130*f126890aSEmmanuel Vadot	use-iram;
131*f126890aSEmmanuel Vadot	status = "okay";
132*f126890aSEmmanuel Vadot};
133*f126890aSEmmanuel Vadot
134*f126890aSEmmanuel Vadot/* Here, choose exactly one from: ohci, usbd */
135*f126890aSEmmanuel Vadot&ohci /* &usbd */ {
136*f126890aSEmmanuel Vadot	transceiver = <&isp1301>;
137*f126890aSEmmanuel Vadot	status = "okay";
138*f126890aSEmmanuel Vadot};
139*f126890aSEmmanuel Vadot
140*f126890aSEmmanuel Vadot&sd {
141*f126890aSEmmanuel Vadot	wp-gpios = <&gpio 3 0 0>;
142*f126890aSEmmanuel Vadot	cd-gpios = <&gpio 3 1 0>;
143*f126890aSEmmanuel Vadot	cd-inverted;
144*f126890aSEmmanuel Vadot	bus-width = <4>;
145*f126890aSEmmanuel Vadot	vmmc-supply = <&reg_sd>;
146*f126890aSEmmanuel Vadot	status = "okay";
147*f126890aSEmmanuel Vadot};
148*f126890aSEmmanuel Vadot
149*f126890aSEmmanuel Vadot/* 64MB Flash via SLC NAND controller */
150*f126890aSEmmanuel Vadot&slc {
151*f126890aSEmmanuel Vadot	status = "okay";
152*f126890aSEmmanuel Vadot
153*f126890aSEmmanuel Vadot	nxp,wdr-clks = <14>;
154*f126890aSEmmanuel Vadot	nxp,wwidth = <40000000>;
155*f126890aSEmmanuel Vadot	nxp,whold = <100000000>;
156*f126890aSEmmanuel Vadot	nxp,wsetup = <100000000>;
157*f126890aSEmmanuel Vadot	nxp,rdr-clks = <14>;
158*f126890aSEmmanuel Vadot	nxp,rwidth = <40000000>;
159*f126890aSEmmanuel Vadot	nxp,rhold = <66666666>;
160*f126890aSEmmanuel Vadot	nxp,rsetup = <100000000>;
161*f126890aSEmmanuel Vadot	nand-on-flash-bbt;
162*f126890aSEmmanuel Vadot	gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */
163*f126890aSEmmanuel Vadot
164*f126890aSEmmanuel Vadot	partitions {
165*f126890aSEmmanuel Vadot		compatible = "fixed-partitions";
166*f126890aSEmmanuel Vadot		#address-cells = <1>;
167*f126890aSEmmanuel Vadot		#size-cells = <1>;
168*f126890aSEmmanuel Vadot
169*f126890aSEmmanuel Vadot		mtd0@0 {
170*f126890aSEmmanuel Vadot			label = "phy3250-boot";
171*f126890aSEmmanuel Vadot			reg = <0x00000000 0x00064000>;
172*f126890aSEmmanuel Vadot			read-only;
173*f126890aSEmmanuel Vadot		};
174*f126890aSEmmanuel Vadot
175*f126890aSEmmanuel Vadot		mtd1@64000 {
176*f126890aSEmmanuel Vadot			label = "phy3250-uboot";
177*f126890aSEmmanuel Vadot			reg = <0x00064000 0x00190000>;
178*f126890aSEmmanuel Vadot			read-only;
179*f126890aSEmmanuel Vadot		};
180*f126890aSEmmanuel Vadot
181*f126890aSEmmanuel Vadot		mtd2@1f4000 {
182*f126890aSEmmanuel Vadot			label = "phy3250-ubt-prms";
183*f126890aSEmmanuel Vadot			reg = <0x001f4000 0x00010000>;
184*f126890aSEmmanuel Vadot		};
185*f126890aSEmmanuel Vadot
186*f126890aSEmmanuel Vadot		mtd3@204000 {
187*f126890aSEmmanuel Vadot			label = "phy3250-kernel";
188*f126890aSEmmanuel Vadot			reg = <0x00204000 0x00400000>;
189*f126890aSEmmanuel Vadot		};
190*f126890aSEmmanuel Vadot
191*f126890aSEmmanuel Vadot		mtd4@604000 {
192*f126890aSEmmanuel Vadot			label = "phy3250-rootfs";
193*f126890aSEmmanuel Vadot			reg = <0x00604000 0x039fc000>;
194*f126890aSEmmanuel Vadot		};
195*f126890aSEmmanuel Vadot	};
196*f126890aSEmmanuel Vadot};
197*f126890aSEmmanuel Vadot
198*f126890aSEmmanuel Vadot&ssp0 {
199*f126890aSEmmanuel Vadot	num-cs = <1>;
200*f126890aSEmmanuel Vadot	cs-gpios = <&gpio 3 5 0>;
201*f126890aSEmmanuel Vadot	status = "okay";
202*f126890aSEmmanuel Vadot
203*f126890aSEmmanuel Vadot	eeprom: at25@0 {
204*f126890aSEmmanuel Vadot		compatible = "atmel,at25";
205*f126890aSEmmanuel Vadot		reg = <0>;
206*f126890aSEmmanuel Vadot		spi-max-frequency = <5000000>;
207*f126890aSEmmanuel Vadot
208*f126890aSEmmanuel Vadot		pl022,interface = <0>;
209*f126890aSEmmanuel Vadot		pl022,com-mode = <0>;
210*f126890aSEmmanuel Vadot		pl022,rx-level-trig = <1>;
211*f126890aSEmmanuel Vadot		pl022,tx-level-trig = <1>;
212*f126890aSEmmanuel Vadot		pl022,ctrl-len = <11>;
213*f126890aSEmmanuel Vadot		pl022,wait-state = <0>;
214*f126890aSEmmanuel Vadot		pl022,duplex = <0>;
215*f126890aSEmmanuel Vadot
216*f126890aSEmmanuel Vadot		at25,byte-len = <0x8000>;
217*f126890aSEmmanuel Vadot		at25,addr-mode = <2>;
218*f126890aSEmmanuel Vadot		at25,page-size = <64>;
219*f126890aSEmmanuel Vadot	};
220*f126890aSEmmanuel Vadot};
221*f126890aSEmmanuel Vadot
222*f126890aSEmmanuel Vadot&tsc {
223*f126890aSEmmanuel Vadot	status = "okay";
224*f126890aSEmmanuel Vadot};
225*f126890aSEmmanuel Vadot
226*f126890aSEmmanuel Vadot&uart2 {
227*f126890aSEmmanuel Vadot	status = "okay";
228*f126890aSEmmanuel Vadot};
229*f126890aSEmmanuel Vadot
230*f126890aSEmmanuel Vadot&uart3 {
231*f126890aSEmmanuel Vadot	status = "okay";
232*f126890aSEmmanuel Vadot};
233*f126890aSEmmanuel Vadot
234*f126890aSEmmanuel Vadot&uart5 {
235*f126890aSEmmanuel Vadot	status = "okay";
236*f126890aSEmmanuel Vadot};
237