Linux Audio

Check our new training course

Linux kernel drivers training

Mar 31-Apr 9, 2025, special US time zones
Register
Loading...
v5.14.15
  1// SPDX-License-Identifier: GPL-2.0
  2/*
  3 * Device Tree for the ST Microelectronics Nomadik NHK8815 board
 
  4 */
  5
  6/dts-v1/;
  7#include <dt-bindings/interrupt-controller/irq.h>
  8#include <dt-bindings/gpio/gpio.h>
  9#include "ste-nomadik-stn8815.dtsi"
 10
 11/ {
 12	model = "Nomadik STN8815NHK";
 13	compatible = "st,nomadik-nhk-15";
 14
 15	chosen {
 16		bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
 17	};
 18
 19	aliases {
 20		serial0 = &uart0;
 21		serial1 = &uart1;
 22		stmpe-i2c0 = &stmpe0;
 23		stmpe-i2c1 = &stmpe1;
 24	};
 25
 26	pinctrl {
 27		uart0 {
 28			uart0_nhk_mode: uart0_mux {
 29				u0_default_mux {
 30					function = "u0";
 31					groups = "u0txrx_a_1", "u0ctsrts_a_1";
 32				};
 33			};
 34		};
 35
 36		stmpe2401_1 {
 37			stmpe2401_1_nhk_mode: stmpe2401_1_nhk {
 38				nhk_cfg1 {
 39					pins = "GPIO76_B20"; // IRQ line
 40					ste,input = <0>;
 41				};
 42				nhk_cfg2 {
 43					pins = "GPIO77_B8"; // reset line
 44					ste,output = <1>;
 45				};
 46			};
 47		};
 48		stmpe2401_2 {
 49			stmpe2401_2_nhk_mode: stmpe2401_2_nhk {
 50				nhk_cfg1 {
 51					pins = "GPIO78_A8"; // IRQ line
 52					ste,input = <0>;
 53				};
 54				nhk_cfg2 {
 55					pins = "GPIO79_C9"; // reset line
 56					ste,output = <1>;
 57				};
 58			};
 59		};
 60		lis3lv02dl {
 61			lis3lv02dl_nhk_mode: lis3lv02dl_nhk {
 62				nhk_cfg1 {
 63					pins = "GPIO82_C10"; // IRQ line
 64					ste,input = <0>;
 65				};
 66			};
 67		};
 68	};
 69	src@101e0000 {
 70		/* These chrystal outputs are not used on this board */
 71		disable-sxtalo;
 72		disable-mxtalo;
 73	};
 74
 75	/* This is where the interrupt is routed on the NHK-15 debug board */
 76	external-bus@34000000 {
 77		compatible = "simple-bus";
 78		reg = <0x34000000 0x1000000>;
 79		#address-cells = <1>;
 80		#size-cells = <1>;
 81		ranges = <0 0x34000000 0x1000000>;
 82		ethernet@300 {
 83			compatible = "smsc,lan91c111";
 84			reg = <0x300 0x0fd00>;
 85			reg-io-width = <2>;
 86			reset-gpios = <&stmpe_gpio44 10 GPIO_ACTIVE_HIGH>;
 87			interrupt-parent = <&stmpe_gpio44>;
 88			interrupts = <11 IRQ_TYPE_EDGE_RISING>;
 89		};
 90	};
 91
 92	i2c0 {
 93		lis3lv02dl@1d {
 94			/* Accelerometer */
 95			compatible = "st,lis3lv02dl-accel";
 96			interrupt-parent = <&gpio2>;
 97			interrupts = <18 IRQ_TYPE_EDGE_RISING>; // GPIO 82
 98			pinctrl-0 = <&lis3lv02dl_nhk_mode>;
 99			pinctrl-names = "default";
100			reg = <0x1d>;
101		};
102		stmpe0: stmpe2401@43 {
103			compatible = "st,stmpe2401";
104			reg = <0x43>;
105			reset-gpios = <&gpio2 13 GPIO_ACTIVE_LOW>; // GPIO77
106			interrupts = <12 IRQ_TYPE_EDGE_FALLING>; // GPIO76
107			interrupt-parent = <&gpio2>;
108			interrupt-controller;
109			wakeup-source;
110			pinctrl-names = "default";
111			pinctrl-0 = <&stmpe2401_1_nhk_mode>;
112			stmpe_gpio43: stmpe_gpio {
113				compatible = "st,stmpe-gpio";
114				gpio-controller;
115				#gpio-cells = <2>;
116				interrupt-controller;
117				#interrupt-cells = <2>;
118				/* Some pins in alternate functions */
119				st,norequest-mask = <0xf0f002>;
120			};
121			stmpe_keypad {
122				compatible = "st,stmpe-keypad";
123				debounce-interval = <64>;
124				st,scan-count = <8>;
125				st,no-autorepeat;
126				keypad,num-rows = <8>;
127				keypad,num-columns = <8>;
128				linux,keymap = <0x00020072 // Vol down
129						0x00030073 // Vol up
130						0x0100009e // Back
131						0x010100e3 // TV out
132						0x01020098 // Lock
133						0x0103013b // Start
134						0x020000a3 // Next
135						0x020100a4 // Play
136						0x020200a5 // Prev
137						0x02030160 // OK
138						0x03000069 // Left
139						0x0301006a // Right
140						0x03020067 // Up
141						0x0303006c>; // Down
142			};
143			stmpe0_pwm: stmpe_pwm {
144				compatible = "st,stmpe-pwm";
145				#pwm-cells = <2>;
146			};
147		};
148		stmpe1: stmpe2401@44 {
149			compatible = "st,stmpe2401";
150			reg = <0x44>;
151			reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; // GPIO79
152			interrupts = <14 IRQ_TYPE_EDGE_FALLING>; // GPIO78
153			interrupt-parent = <&gpio2>;
154			interrupt-controller;
155			wakeup-source;
156			pinctrl-names = "default";
157			pinctrl-0 = <&stmpe2401_2_nhk_mode>;
158			stmpe_gpio44: stmpe_gpio {
159				compatible = "st,stmpe-gpio";
160				gpio-controller;
161				#gpio-cells = <2>;
162				interrupt-controller;
163				#interrupt-cells = <2>;
164				/*
165				 * This will turn off SATA so that MMC/SD
166				 * can thrive
167				 */
168				mmcsd-gpio {
169					gpio-hog;
170					gpios = <2 0x0>;
171					output-low;
172					line-name = "SATA EN";
173				};
174			};
175		};
176	};
177
178	amba {
179		clcd@10120000 {
180			status = "okay";
181			pinctrl-names = "default";
182			pinctrl-0 = <&clcd_24bit_mux>;
183			port {
184				nomadik_clcd: endpoint {
185					remote-endpoint = <&nomadik_clcd_panel>;
186					arm,pl11x,tft-r0g0b0-pads = <16 8 0>;
187				};
188			};
189
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
190		};
191
192		/* Activate RX/TX and CTS/RTS on UART 0 */
193		uart0: uart@101fd000 {
194			pinctrl-names = "default";
195			pinctrl-0 = <&uart0_nhk_mode>;
196			status = "okay";
197		};
198		mmcsd: mmc@101f6000 {
199			cd-gpios = <&stmpe_gpio44 7 GPIO_ACTIVE_LOW>;
200			wp-gpios = <&stmpe_gpio44 18 GPIO_ACTIVE_HIGH>;
201		};
202	};
203
204	spi {
205		compatible = "spi-gpio";
206		#address-cells = <1>;
207		#size-cells = <0>;
208
209		/*
210		 * As we're dealing with 3wire SPI, we only define SCK
211		 * and MOSI (in the spec MOSI is called "SDA").
212		 */
213		gpio-sck = <&gpio0 5 GPIO_ACTIVE_HIGH>;
214		gpio-mosi = <&gpio0 4 GPIO_ACTIVE_HIGH>;
215		cs-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
216		num-chipselects = <1>;
217
218		/*
219		 * WVGA connector 21
220		 * WVGA (800x480): 4.3" TPG110 TDO43MTEA2 24-bit RGB
221		 * with TPO touch screen.
222		  */
223		panel: display@0 {
224			/*
225			 * The TPO display driver is connected to a
226			 * 5.7" OSD OSD057VA01CT TFT display.
227			 */
228			compatible = "tpo,tpg110";
229			reg = <0>;
230			spi-3wire;
231			/* 320 ns min period ~= 3 MHz */
232			spi-max-frequency = <3000000>;
233			/* Width and height from the OSD data sheet */
234			width-mm = <116>;
235			height-mm = <87>;
236			grestb-gpios = <&stmpe_gpio44 5 GPIO_ACTIVE_LOW>;
237			backlight = <&bl>;
238
239			port {
240				nomadik_clcd_panel: endpoint {
241					remote-endpoint = <&nomadik_clcd>;
242				};
243			};
244		};
245	};
246
247	bl: backlight {
248		compatible = "pwm-backlight";
249		pwms = <&stmpe0_pwm 0 500000>;
250		pwm-names = "backlight";
251		brightness-levels = <
252			0  1  2  3  4  5  6  7  8  9
253			10 11 12 13 14 15 16 17 18 19
254			20 21 22 23 24 25 26 27 28 29
255			30 31 32 33 34 35 36 37 38 39
256			40 41 42 43 44 45 46 47 48 49
257			50 51 52 53 54 55 56 57 58 59
258			60 61 62 63 64 65 66 67 68 69
259			70 71 72 73 74 75 76 77 78 79
260			80 81 82 83 84 85 86 87 88 89
261			90 91 92 93 94 95 96 97 98 99
262			100
263		>;
264		default-brightness-level = <100>;
265	};
266};
v4.17
  1// SPDX-License-Identifier: GPL-2.0
  2/*
  3 * Device Tree for the ST-Ericsson Nomadik S8815 board
  4 * Produced by Calao Systems
  5 */
  6
  7/dts-v1/;
  8#include <dt-bindings/interrupt-controller/irq.h>
  9#include <dt-bindings/gpio/gpio.h>
 10#include "ste-nomadik-stn8815.dtsi"
 11
 12/ {
 13	model = "Nomadik STN8815NHK";
 14	compatible = "st,nomadik-nhk-15";
 15
 16	chosen {
 17		bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
 18	};
 19
 20	aliases {
 21		serial0 = &uart0;
 22		serial1 = &uart1;
 23		stmpe-i2c0 = &stmpe0;
 24		stmpe-i2c1 = &stmpe1;
 25	};
 26
 27	pinctrl {
 28		uart0 {
 29			uart0_nhk_mode: uart0_mux {
 30				u0_default_mux {
 31					function = "u0";
 32					groups = "u0txrx_a_1", "u0ctsrts_a_1";
 33				};
 34			};
 35		};
 36
 37		stmpe2401_1 {
 38			stmpe2401_1_nhk_mode: stmpe2401_1_nhk {
 39				nhk_cfg1 {
 40					pins = "GPIO76_B20"; // IRQ line
 41					ste,input = <0>;
 42				};
 43				nhk_cfg2 {
 44					pins = "GPIO77_B8"; // reset line
 45					ste,output = <1>;
 46				};
 47			};
 48		};
 49		stmpe2401_2 {
 50			stmpe2401_2_nhk_mode: stmpe2401_2_nhk {
 51				nhk_cfg1 {
 52					pins = "GPIO78_A8"; // IRQ line
 53					ste,input = <0>;
 54				};
 55				nhk_cfg2 {
 56					pins = "GPIO79_C9"; // reset line
 57					ste,output = <1>;
 58				};
 59			};
 60		};
 61		lis3lv02dl {
 62			lis3lv02dl_nhk_mode: lis3lv02dl_nhk {
 63				nhk_cfg1 {
 64					pins = "GPIO82_C10"; // IRQ line
 65					ste,input = <0>;
 66				};
 67			};
 68		};
 69	};
 70	src@101e0000 {
 71		/* These chrystal outputs are not used on this board */
 72		disable-sxtalo;
 73		disable-mxtalo;
 74	};
 75
 76	/* This is where the interrupt is routed on the NHK-15 debug board */
 77	external-bus@34000000 {
 78		compatible = "simple-bus";
 79		reg = <0x34000000 0x1000000>;
 80		#address-cells = <1>;
 81		#size-cells = <1>;
 82		ranges = <0 0x34000000 0x1000000>;
 83		ethernet@300 {
 84			compatible = "smsc,lan91c111";
 85			reg = <0x300 0x0fd00>;
 86			reg-io-width = <2>;
 87			reset-gpios = <&stmpe_gpio44 10 GPIO_ACTIVE_HIGH>;
 88			interrupt-parent = <&stmpe_gpio44>;
 89			interrupts = <11 IRQ_TYPE_EDGE_RISING>;
 90		};
 91	};
 92
 93	i2c0 {
 94		lis3lv02dl@1d {
 95			/* Accelerometer */
 96			compatible = "st,lis3lv02dl-accel";
 97			interrupt-parent = <&gpio2>;
 98			interrupts = <18 IRQ_TYPE_EDGE_RISING>; // GPIO 82
 99			pinctrl-0 = <&lis3lv02dl_nhk_mode>;
100			pinctrl-names = "default";
101			reg = <0x1d>;
102		};
103		stmpe0: stmpe2401@43 {
104			compatible = "st,stmpe2401";
105			reg = <0x43>;
106			reset-gpios = <&gpio2 13 GPIO_ACTIVE_LOW>; // GPIO77
107			interrupts = <12 IRQ_TYPE_EDGE_FALLING>; // GPIO76
108			interrupt-parent = <&gpio2>;
109			interrupt-controller;
110			wakeup-source;
111			pinctrl-names = "default";
112			pinctrl-0 = <&stmpe2401_1_nhk_mode>;
113			stmpe_gpio43: stmpe_gpio {
114				compatible = "st,stmpe-gpio";
115				gpio-controller;
116				#gpio-cells = <2>;
117				interrupt-controller;
118				#interrupt-cells = <2>;
119				/* Some pins in alternate functions */
120				st,norequest-mask = <0xf0f002>;
121			};
122			stmpe_keypad {
123				compatible = "st,stmpe-keypad";
124				debounce-interval = <64>;
125				st,scan-count = <8>;
126				st,no-autorepeat;
127				keypad,num-rows = <8>;
128				keypad,num-columns = <8>;
129				linux,keymap = <0x00020072 // Vol down
130						0x00030073 // Vol up
131						0x0100009e // Back
132						0x010100e3 // TV out
133						0x01020098 // Lock
134						0x0103013b // Start
135						0x020000a3 // Next
136						0x020100a4 // Play
137						0x020200a5 // Prev
138						0x02030160 // OK
139						0x03000069 // Left
140						0x0301006a // Right
141						0x03020067 // Up
142						0x0303006c>; // Down
143			};
144			stmpe0_pwm: stmpe_pwm {
145				compatible = "st,stmpe-pwm";
146				#pwm-cells = <2>;
147			};
148		};
149		stmpe1: stmpe2401@44 {
150			compatible = "st,stmpe2401";
151			reg = <0x44>;
152			reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; // GPIO79
153			interrupts = <14 IRQ_TYPE_EDGE_FALLING>; // GPIO78
154			interrupt-parent = <&gpio2>;
155			interrupt-controller;
156			wakeup-source;
157			pinctrl-names = "default";
158			pinctrl-0 = <&stmpe2401_2_nhk_mode>;
159			stmpe_gpio44: stmpe_gpio {
160				compatible = "st,stmpe-gpio";
161				gpio-controller;
162				#gpio-cells = <2>;
163				interrupt-controller;
164				#interrupt-cells = <2>;
165				/*
166				 * This will turn off SATA so that MMC/SD
167				 * can thrive
168				 */
169				mmcsd-gpio {
170					gpio-hog;
171					gpios = <2 0x0>;
172					output-low;
173					line-name = "SATA EN";
174				};
175			};
176		};
177	};
178
179	amba {
180		clcd@10120000 {
181			status = "okay";
182			pinctrl-names = "default";
183			pinctrl-0 = <&clcd_24bit_mux>;
184			port {
185				nomadik_clcd_pads: endpoint {
186					remote-endpoint = <&nomadik_clcd_panel>;
187					arm,pl11x,tft-r0g0b0-pads = <16 8 0>;
188				};
189			};
190
191			/*
192			 * WVGA connector 21
193			 * WVGA (800x480): 4.3" TPG110 TDO43MTEA2 24-bit RGB
194			 * with TPO touch screen.
195			 */
196			panel {
197				compatible = "tpo,tpg110", "panel-dpi";
198				grestb-gpios = <&stmpe_gpio44 5 GPIO_ACTIVE_LOW>;
199				scen-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
200				scl-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
201				sda-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
202				backlight = <&bl>;
203
204				port {
205					nomadik_clcd_panel: endpoint {
206						remote-endpoint = <&nomadik_clcd_pads>;
207					};
208				};
209
210				panel-timing {
211					clock-frequency = <33200000>;
212					hactive = <800>;
213					hback-porch = <216>;
214					hfront-porch = <40>;
215					hsync-len = <1>;
216					vactive = <480>;
217					vback-porch = <35>;
218					vfront-porch = <10>;
219					vsync-len = <1>;
220				};
221			};
222		};
223
224		/* Activate RX/TX and CTS/RTS on UART 0 */
225		uart0: uart@101fd000 {
226			pinctrl-names = "default";
227			pinctrl-0 = <&uart0_nhk_mode>;
228			status = "okay";
229		};
230		mmcsd: sdi@101f6000 {
231			cd-gpios = <&stmpe_gpio44 7 GPIO_ACTIVE_LOW>;
232			wp-gpios = <&stmpe_gpio44 18 GPIO_ACTIVE_HIGH>;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
233		};
234	};
235
236	bl: backlight {
237		compatible = "pwm-backlight";
238		pwms = <&stmpe0_pwm 0 500000>;
239		pwm-names = "backlight";
240		brightness-levels = <
241			0  1  2  3  4  5  6  7  8  9
242			10 11 12 13 14 15 16 17 18 19
243			20 21 22 23 24 25 26 27 28 29
244			30 31 32 33 34 35 36 37 38 39
245			40 41 42 43 44 45 46 47 48 49
246			50 51 52 53 54 55 56 57 58 59
247			60 61 62 63 64 65 66 67 68 69
248			70 71 72 73 74 75 76 77 78 79
249			80 81 82 83 84 85 86 87 88 89
250			90 91 92 93 94 95 96 97 98 99
251			100
252		>;
253		default-brightness-level = <100>;
254	};
255};