Linux Audio

Check our new training course

Loading...
v6.2
  1// SPDX-License-Identifier: GPL-2.0
  2/dts-v1/;
  3
  4#include "jz4740.dtsi"
  5
  6#include <dt-bindings/gpio/gpio.h>
  7#include <dt-bindings/iio/adc/ingenic,adc.h>
  8#include <dt-bindings/clock/ingenic,tcu.h>
  9#include <dt-bindings/input/input.h>
 10
 11#define KEY_QI_QI	KEY_F13
 12#define KEY_QI_UPRED	KEY_RIGHTALT
 13#define KEY_QI_VOLUP	KEY_VOLUMEUP
 14#define KEY_QI_VOLDOWN	KEY_VOLUMEDOWN
 15#define KEY_QI_FN	KEY_LEFTCTRL
 16
 17/ {
 18	compatible = "qi,lb60", "ingenic,jz4740";
 19	model = "Ben Nanonote";
 20
 21	memory {
 22		device_type = "memory";
 23		reg = <0x0 0x2000000>;
 24	};
 25
 26	chosen {
 27		stdout-path = &uart0;
 28	};
 29
 30	vcc: regulator@0 {
 31		compatible = "regulator-fixed";
 32		regulator-name = "vcc";
 33
 34		regulator-min-microvolt = <3300000>;
 35		regulator-max-microvolt = <3300000>;
 36		regulator-always-on;
 37	};
 38
 39	mmc_power: regulator@1 {
 40		compatible = "regulator-fixed";
 41		regulator-name = "mmc_vcc";
 42		gpio = <&gpd 2 0>;
 43
 44		regulator-min-microvolt = <3300000>;
 45		regulator-max-microvolt = <3300000>;
 46	};
 47
 48	amp_supply: regulator@2 {
 49		compatible = "regulator-fixed";
 50		regulator-name = "amp_supply";
 51		gpio = <&gpd 4 0>;
 52		enable-active-high;
 53
 54		regulator-min-microvolt = <3300000>;
 55		regulator-max-microvolt = <3300000>;
 56	};
 57
 58	amp: analog-amplifier {
 59		compatible = "simple-audio-amplifier";
 60		enable-gpios = <&gpb 29 GPIO_ACTIVE_HIGH>;
 61		VCC-supply = <&amp_supply>;
 62	};
 63
 64	sound {
 65		compatible = "simple-audio-card";
 66
 67		simple-audio-card,name = "QI LB60";
 68		simple-audio-card,format = "i2s";
 69
 70		simple-audio-card,widgets =
 71			"Speaker", "Speaker",
 72			"Microphone", "Mic";
 73		simple-audio-card,routing =
 74			"MIC", "Mic",
 75			"Speaker", "OUTL",
 76			"Speaker", "OUTR",
 77			"INL", "LOUT",
 78			"INR", "ROUT";
 79
 80		simple-audio-card,aux-devs = <&amp>;
 81
 82		simple-audio-card,bitclock-master = <&dai_codec>;
 83		simple-audio-card,frame-master = <&dai_codec>;
 84
 85		dai_cpu: simple-audio-card,cpu {
 86			sound-dai = <&aic>;
 87		};
 88
 89		dai_codec: simple-audio-card,codec {
 90			sound-dai = <&codec>;
 91		};
 92	};
 93
 94	keys {
 95		compatible = "gpio-keys";
 96
 97		key {
 98			label = "Power";
 99			wakeup-source;
100			linux,code = <KEY_POWER>;
101			gpios = <&gpd 29 GPIO_ACTIVE_LOW>;
102		};
103	};
104
105	keyboard {
106		compatible = "gpio-matrix-keypad";
107
108		col-scan-delay-us = <10>;
109		debounce-delay-ms = <10>;
110		wakeup-source;
111
112		row-gpios = <&gpd 18 0>, <&gpd 19 0>, <&gpd 20 0>, <&gpd 21 0>,
113			    <&gpd 22 0>, <&gpd 23 0>, <&gpd 24 0>, <&gpd 26 0>;
114		col-gpios = <&gpc 10 0>, <&gpc 11 0>, <&gpc 12 0>, <&gpc 13 0>,
115			    <&gpc 14 0>, <&gpc 15 0>, <&gpc 16 0>, <&gpc 17 0>;
116		gpio-activelow;
117
118		linux,keymap =
119			<MATRIX_KEY(0, 0, KEY_F1)>,	/* S2 */
120			<MATRIX_KEY(0, 1, KEY_F2)>,	/* S3 */
121			<MATRIX_KEY(0, 2, KEY_F3)>,	/* S4 */
122			<MATRIX_KEY(0, 3, KEY_F4)>,	/* S5 */
123			<MATRIX_KEY(0, 4, KEY_F5)>,	/* S6 */
124			<MATRIX_KEY(0, 5, KEY_F6)>,	/* S7 */
125			<MATRIX_KEY(0, 6, KEY_F7)>,	/* S8 */
126
127			<MATRIX_KEY(1, 0, KEY_Q)>,	/* S10 */
128			<MATRIX_KEY(1, 1, KEY_W)>,	/* S11 */
129			<MATRIX_KEY(1, 2, KEY_E)>,	/* S12 */
130			<MATRIX_KEY(1, 3, KEY_R)>,	/* S13 */
131			<MATRIX_KEY(1, 4, KEY_T)>,	/* S14 */
132			<MATRIX_KEY(1, 5, KEY_Y)>,	/* S15 */
133			<MATRIX_KEY(1, 6, KEY_U)>,	/* S16 */
134			<MATRIX_KEY(1, 7, KEY_I)>,	/* S17 */
135			<MATRIX_KEY(2, 0, KEY_A)>,	/* S18 */
136			<MATRIX_KEY(2, 1, KEY_S)>,	/* S19 */
137			<MATRIX_KEY(2, 2, KEY_D)>,	/* S20 */
138			<MATRIX_KEY(2, 3, KEY_F)>,	/* S21 */
139			<MATRIX_KEY(2, 4, KEY_G)>,	/* S22 */
140			<MATRIX_KEY(2, 5, KEY_H)>,	/* S23 */
141			<MATRIX_KEY(2, 6, KEY_J)>,	/* S24 */
142			<MATRIX_KEY(2, 7, KEY_K)>,	/* S25 */
143			<MATRIX_KEY(3, 0, KEY_ESC)>,	/* S26 */
144			<MATRIX_KEY(3, 1, KEY_Z)>,	/* S27 */
145			<MATRIX_KEY(3, 2, KEY_X)>,	/* S28 */
146			<MATRIX_KEY(3, 3, KEY_C)>,	/* S29 */
147			<MATRIX_KEY(3, 4, KEY_V)>,	/* S30 */
148			<MATRIX_KEY(3, 5, KEY_B)>,	/* S31 */
149			<MATRIX_KEY(3, 6, KEY_N)>,	/* S32 */
150			<MATRIX_KEY(3, 7, KEY_M)>,	/* S33 */
151			<MATRIX_KEY(4, 0, KEY_TAB)>,	/* S34 */
152			<MATRIX_KEY(4, 1, KEY_CAPSLOCK)>,	/* S35 */
153			<MATRIX_KEY(4, 2, KEY_BACKSLASH)>,	/* S36 */
154			<MATRIX_KEY(4, 3, KEY_APOSTROPHE)>,	/* S37 */
155			<MATRIX_KEY(4, 4, KEY_COMMA)>,	/* S38 */
156			<MATRIX_KEY(4, 5, KEY_DOT)>,	/* S39 */
157			<MATRIX_KEY(4, 6, KEY_SLASH)>,	/* S40 */
158			<MATRIX_KEY(4, 7, KEY_UP)>,	/* S41 */
159			<MATRIX_KEY(5, 0, KEY_O)>,	/* S42 */
160			<MATRIX_KEY(5, 1, KEY_L)>,	/* S43 */
161			<MATRIX_KEY(5, 2, KEY_EQUAL)>,	/* S44 */
162			<MATRIX_KEY(5, 3, KEY_QI_UPRED)>,	/* S45 */
163			<MATRIX_KEY(5, 4, KEY_SPACE)>,	/* S46 */
164			<MATRIX_KEY(5, 5, KEY_QI_QI)>,	/* S47 */
165			<MATRIX_KEY(5, 6, KEY_RIGHTCTRL)>,	/* S48 */
166			<MATRIX_KEY(5, 7, KEY_LEFT)>,	/* S49 */
167			<MATRIX_KEY(6, 0, KEY_F8)>,	/* S50 */
168			<MATRIX_KEY(6, 1, KEY_P)>,	/* S51 */
169			<MATRIX_KEY(6, 2, KEY_BACKSPACE)>,/* S52 */
170			<MATRIX_KEY(6, 3, KEY_ENTER)>,	/* S53 */
171			<MATRIX_KEY(6, 4, KEY_QI_VOLUP)>,	/* S54 */
172			<MATRIX_KEY(6, 5, KEY_QI_VOLDOWN)>,	/* S55 */
173			<MATRIX_KEY(6, 6, KEY_DOWN)>,	/* S56 */
174			<MATRIX_KEY(6, 7, KEY_RIGHT)>,	/* S57 */
175
176			<MATRIX_KEY(7, 0, KEY_LEFTSHIFT)>,	/* S58 */
177			<MATRIX_KEY(7, 1, KEY_LEFTALT)>, /* S59 */
178			<MATRIX_KEY(7, 2, KEY_QI_FN)>;	/* S60 */
 
179	};
180
181	spi {
182		compatible = "spi-gpio";
183		#address-cells = <1>;
184		#size-cells = <0>;
185
186		sck-gpios = <&gpc 23 GPIO_ACTIVE_HIGH>;
187		mosi-gpios = <&gpc 22 GPIO_ACTIVE_HIGH>;
188		cs-gpios = <&gpc 21 GPIO_ACTIVE_LOW>;
189		num-chipselects = <1>;
190	};
191
192	usb_charger: charger {
193		compatible = "gpio-charger";
194		charger-type = "usb-sdp";
195		gpios = <&gpd 28 GPIO_ACTIVE_LOW>;
196		status-gpios = <&gpc 27 GPIO_ACTIVE_LOW>;
197	};
198
199	simple_battery: battery {
200		compatible = "simple-battery";
201		voltage-min-design-microvolt = <3600000>;
202		voltage-max-design-microvolt = <4200000>;
203	};
204
205	pmu {
206		compatible = "ingenic,jz4740-battery";
207		io-channels = <&adc INGENIC_ADC_BATTERY>;
208		io-channel-names = "battery";
209		power-supplies = <&usb_charger>;
210		monitored-battery = <&simple_battery>;
211	};
212
213	hwmon {
214		compatible = "iio-hwmon";
215		io-channels = <&adc INGENIC_ADC_AUX>;
216	};
217
218	panel: panel {
219		compatible = "giantplus,gpm940b0";
220
221		power-supply = <&vcc>;
222
223		port {
224			panel_input: endpoint {
225				remote-endpoint = <&panel_output>;
226			};
227		};
228	};
229
230	usb_phy: usb-phy {
231		compatible = "usb-nop-xceiv";
232		#phy-cells = <0>;
233
234		vcc-supply = <&vcc>;
235	};
236};
237
238&ext {
239	clock-frequency = <12000000>;
240};
241
242&rtc_dev {
243	system-power-controller;
244};
245
246&uart0 {
247	pinctrl-names = "default";
248	pinctrl-0 = <&pins_uart0>;
249};
250
251&uart1 {
252	status = "disabled";
253};
254
255&nemc {
256	nandc: nand-controller@1 {
257		compatible = "ingenic,jz4740-nand";
258		reg = <1 0 0x4000000>;
259
260		#address-cells = <1>;
261		#size-cells = <0>;
262
263		ecc-engine = <&ecc>;
264
265		pinctrl-names = "default";
266		pinctrl-0 = <&pins_nemc>;
267
268		rb-gpios = <&gpc 30 GPIO_ACTIVE_HIGH>;
269
270		nand@1 {
271			reg = <1>;
272
273			nand-ecc-step-size = <512>;
274			nand-ecc-strength = <4>;
275			nand-ecc-mode = "hw";
276			nand-is-boot-medium;
277			nand-on-flash-bbt;
278
279			partitions {
280				compatible = "fixed-partitions";
281				#address-cells = <1>;
282				#size-cells = <1>;
283
284				partition@0 {
285					label = "boot";
286					reg = <0x0 0x400000>;
287				};
288
289				partition@400000 {
290					label = "kernel";
291					reg = <0x400000 0x400000>;
292				};
293
294				partition@800000 {
295					label = "rootfs";
296					reg = <0x800000 0x0>;
297				};
298			};
299		};
300	};
301};
302
303&lcd {
304	pinctrl-names = "default";
305	pinctrl-0 = <&pins_lcd>;
306
307	port {
308		panel_output: endpoint {
309			remote-endpoint = <&panel_input>;
310		};
311	};
312};
313
314&udc {
315	phys = <&usb_phy>;
316};
317
318&pinctrl {
319	pins_lcd: lcd {
320		function = "lcd";
321		groups = "lcd-8bit";
322	};
323
324	pins_nemc: nemc {
325		function = "nand";
326		groups = "nand-fre-fwe", "nand-cs1";
327	};
328
329	pins_uart0: uart0 {
330		function = "uart0";
331		groups = "uart0-data";
332		bias-disable;
333	};
334
335	pins_mmc: mmc {
336		mmc {
337			function = "mmc";
338			groups = "mmc-1bit", "mmc-4bit";
339			bias-disable;
340		};
341
342		mmc-gpios {
343			pins = "PD0", "PD2";
344			bias-disable;
345		};
346	};
347};
348
349&mmc {
350	bus-width = <4>;
351	max-frequency = <24000000>;
352	cd-gpios = <&gpd 0 GPIO_ACTIVE_HIGH>;
353	vmmc-supply = <&mmc_power>;
354
355	pinctrl-names = "default";
356	pinctrl-0 = <&pins_mmc>;
357};
358
359&tcu {
360	/* 750 kHz for the system timer and clocksource */
361	assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>;
362	assigned-clock-rates = <750000>, <750000>;
363};
v5.9
  1// SPDX-License-Identifier: GPL-2.0
  2/dts-v1/;
  3
  4#include "jz4740.dtsi"
  5
  6#include <dt-bindings/gpio/gpio.h>
  7#include <dt-bindings/iio/adc/ingenic,adc.h>
  8#include <dt-bindings/clock/ingenic,tcu.h>
  9#include <dt-bindings/input/input.h>
 10
 11#define KEY_QI_QI	KEY_F13
 12#define KEY_QI_UPRED	KEY_RIGHTALT
 13#define KEY_QI_VOLUP	KEY_VOLUMEUP
 14#define KEY_QI_VOLDOWN	KEY_VOLUMEDOWN
 15#define KEY_QI_FN	KEY_LEFTCTRL
 16
 17/ {
 18	compatible = "qi,lb60", "ingenic,jz4740";
 19	model = "Ben Nanonote";
 20
 21	memory {
 22		device_type = "memory";
 23		reg = <0x0 0x2000000>;
 24	};
 25
 26	chosen {
 27		stdout-path = &uart0;
 28	};
 29
 30	vcc: regulator@0 {
 31		compatible = "regulator-fixed";
 32		regulator-name = "vcc";
 33
 34		regulator-min-microvolt = <3300000>;
 35		regulator-max-microvolt = <3300000>;
 36		regulator-always-on;
 37	};
 38
 39	mmc_power: regulator@1 {
 40		compatible = "regulator-fixed";
 41		regulator-name = "mmc_vcc";
 42		gpio = <&gpd 2 0>;
 43
 44		regulator-min-microvolt = <3300000>;
 45		regulator-max-microvolt = <3300000>;
 46	};
 47
 48	amp_supply: regulator@2 {
 49		compatible = "regulator-fixed";
 50		regulator-name = "amp_supply";
 51		gpio = <&gpd 4 0>;
 52		enable-active-high;
 53
 54		regulator-min-microvolt = <3300000>;
 55		regulator-max-microvolt = <3300000>;
 56	};
 57
 58	amp: analog-amplifier {
 59		compatible = "simple-audio-amplifier";
 60		enable-gpios = <&gpb 29 GPIO_ACTIVE_HIGH>;
 61		VCC-supply = <&amp_supply>;
 62	};
 63
 64	sound {
 65		compatible = "simple-audio-card";
 66
 67		simple-audio-card,name = "QI LB60";
 68		simple-audio-card,format = "i2s";
 69
 70		simple-audio-card,widgets =
 71			"Speaker", "Speaker",
 72			"Microphone", "Mic";
 73		simple-audio-card,routing =
 74			"MIC", "Mic",
 75			"Speaker", "OUTL",
 76			"Speaker", "OUTR",
 77			"INL", "LOUT",
 78			"INR", "ROUT";
 79
 80		simple-audio-card,aux-devs = <&amp>;
 81
 82		simple-audio-card,bitclock-master = <&dai_codec>;
 83		simple-audio-card,frame-master = <&dai_codec>;
 84
 85		dai_cpu: simple-audio-card,cpu {
 86			sound-dai = <&aic>;
 87		};
 88
 89		dai_codec: simple-audio-card,codec {
 90			sound-dai = <&codec>;
 91		};
 92	};
 93
 94	keys {
 95		compatible = "gpio-keys";
 96
 97		key {
 98			label = "Power";
 99			wakeup-source;
100			linux,code = <KEY_POWER>;
101			gpios = <&gpd 29 GPIO_ACTIVE_LOW>;
102		};
103	};
104
105	keyboard {
106		compatible = "gpio-matrix-keypad";
107
108		col-scan-delay-us = <10>;
109		debounce-delay-ms = <10>;
110		wakeup-source;
111
112		row-gpios = <&gpd 18 0 &gpd 19 0 &gpd 20 0 &gpd 21 0
113			     &gpd 22 0 &gpd 23 0 &gpd 24 0 &gpd 26 0>;
114		col-gpios = <&gpc 10 0 &gpc 11 0 &gpc 12 0 &gpc 13 0
115			     &gpc 14 0 &gpc 15 0 &gpc 16 0 &gpc 17 0>;
116		gpio-activelow;
117
118		linux,keymap = <
119			MATRIX_KEY(0, 0, KEY_F1)	/* S2 */
120			MATRIX_KEY(0, 1, KEY_F2)	/* S3 */
121			MATRIX_KEY(0, 2, KEY_F3)	/* S4 */
122			MATRIX_KEY(0, 3, KEY_F4)	/* S5 */
123			MATRIX_KEY(0, 4, KEY_F5)	/* S6 */
124			MATRIX_KEY(0, 5, KEY_F6)	/* S7 */
125			MATRIX_KEY(0, 6, KEY_F7)	/* S8 */
126
127			MATRIX_KEY(1, 0, KEY_Q)	/* S10 */
128			MATRIX_KEY(1, 1, KEY_W)	/* S11 */
129			MATRIX_KEY(1, 2, KEY_E)	/* S12 */
130			MATRIX_KEY(1, 3, KEY_R)	/* S13 */
131			MATRIX_KEY(1, 4, KEY_T)	/* S14 */
132			MATRIX_KEY(1, 5, KEY_Y)	/* S15 */
133			MATRIX_KEY(1, 6, KEY_U)	/* S16 */
134			MATRIX_KEY(1, 7, KEY_I)	/* S17 */
135			MATRIX_KEY(2, 0, KEY_A)	/* S18 */
136			MATRIX_KEY(2, 1, KEY_S)	/* S19 */
137			MATRIX_KEY(2, 2, KEY_D)	/* S20 */
138			MATRIX_KEY(2, 3, KEY_F)	/* S21 */
139			MATRIX_KEY(2, 4, KEY_G)	/* S22 */
140			MATRIX_KEY(2, 5, KEY_H)	/* S23 */
141			MATRIX_KEY(2, 6, KEY_J)	/* S24 */
142			MATRIX_KEY(2, 7, KEY_K)	/* S25 */
143			MATRIX_KEY(3, 0, KEY_ESC)	/* S26 */
144			MATRIX_KEY(3, 1, KEY_Z)	/* S27 */
145			MATRIX_KEY(3, 2, KEY_X)	/* S28 */
146			MATRIX_KEY(3, 3, KEY_C)	/* S29 */
147			MATRIX_KEY(3, 4, KEY_V)	/* S30 */
148			MATRIX_KEY(3, 5, KEY_B)	/* S31 */
149			MATRIX_KEY(3, 6, KEY_N)	/* S32 */
150			MATRIX_KEY(3, 7, KEY_M)	/* S33 */
151			MATRIX_KEY(4, 0, KEY_TAB)	/* S34 */
152			MATRIX_KEY(4, 1, KEY_CAPSLOCK)	/* S35 */
153			MATRIX_KEY(4, 2, KEY_BACKSLASH)	/* S36 */
154			MATRIX_KEY(4, 3, KEY_APOSTROPHE)	/* S37 */
155			MATRIX_KEY(4, 4, KEY_COMMA)	/* S38 */
156			MATRIX_KEY(4, 5, KEY_DOT)	/* S39 */
157			MATRIX_KEY(4, 6, KEY_SLASH)	/* S40 */
158			MATRIX_KEY(4, 7, KEY_UP)	/* S41 */
159			MATRIX_KEY(5, 0, KEY_O)	/* S42 */
160			MATRIX_KEY(5, 1, KEY_L)	/* S43 */
161			MATRIX_KEY(5, 2, KEY_EQUAL)	/* S44 */
162			MATRIX_KEY(5, 3, KEY_QI_UPRED)	/* S45 */
163			MATRIX_KEY(5, 4, KEY_SPACE)	/* S46 */
164			MATRIX_KEY(5, 5, KEY_QI_QI)	/* S47 */
165			MATRIX_KEY(5, 6, KEY_RIGHTCTRL)	/* S48 */
166			MATRIX_KEY(5, 7, KEY_LEFT)	/* S49 */
167			MATRIX_KEY(6, 0, KEY_F8)	/* S50 */
168			MATRIX_KEY(6, 1, KEY_P)	/* S51 */
169			MATRIX_KEY(6, 2, KEY_BACKSPACE)/* S52 */
170			MATRIX_KEY(6, 3, KEY_ENTER)	/* S53 */
171			MATRIX_KEY(6, 4, KEY_QI_VOLUP)	/* S54 */
172			MATRIX_KEY(6, 5, KEY_QI_VOLDOWN)	/* S55 */
173			MATRIX_KEY(6, 6, KEY_DOWN)	/* S56 */
174			MATRIX_KEY(6, 7, KEY_RIGHT)	/* S57 */
175
176			MATRIX_KEY(7, 0, KEY_LEFTSHIFT)	/* S58 */
177			MATRIX_KEY(7, 1, KEY_LEFTALT) /* S59 */
178			MATRIX_KEY(7, 2, KEY_QI_FN)	/* S60 */
179			>;
180	};
181
182	spi {
183		compatible = "spi-gpio";
184		#address-cells = <1>;
185		#size-cells = <0>;
186
187		sck-gpios = <&gpc 23 GPIO_ACTIVE_HIGH>;
188		mosi-gpios = <&gpc 22 GPIO_ACTIVE_HIGH>;
189		cs-gpios = <&gpc 21 GPIO_ACTIVE_LOW>;
190		num-chipselects = <1>;
191	};
192
193	usb_charger: charger {
194		compatible = "gpio-charger";
195		charger-type = "usb-sdp";
196		gpios = <&gpd 28 GPIO_ACTIVE_LOW>;
197		status-gpios = <&gpc 27 GPIO_ACTIVE_LOW>;
198	};
199
200	simple_battery: battery {
201		compatible = "simple-battery";
202		voltage-min-design-microvolt = <3600000>;
203		voltage-max-design-microvolt = <4200000>;
204	};
205
206	pmu {
207		compatible = "ingenic,jz4740-battery";
208		io-channels = <&adc INGENIC_ADC_BATTERY>;
209		io-channel-names = "battery";
210		power-supplies = <&usb_charger>;
211		monitored-battery = <&simple_battery>;
212	};
213
214	hwmon {
215		compatible = "iio-hwmon";
216		io-channels = <&adc INGENIC_ADC_AUX>;
217	};
218
219	panel: panel {
220		compatible = "giantplus,gpm940b0";
221
222		power-supply = <&vcc>;
223
224		port {
225			panel_input: endpoint {
226				remote-endpoint = <&panel_output>;
227			};
228		};
229	};
230
231	usb_phy: usb-phy {
232		compatible = "usb-nop-xceiv";
233		#phy-cells = <0>;
234
235		vcc-supply = <&vcc>;
236	};
237};
238
239&ext {
240	clock-frequency = <12000000>;
241};
242
243&rtc_dev {
244	system-power-controller;
245};
246
247&uart0 {
248	pinctrl-names = "default";
249	pinctrl-0 = <&pins_uart0>;
250};
251
252&uart1 {
253	status = "disabled";
254};
255
256&nemc {
257	nandc: nand-controller@1 {
258		compatible = "ingenic,jz4740-nand";
259		reg = <1 0 0x4000000>;
260
261		#address-cells = <1>;
262		#size-cells = <0>;
263
264		ingenic,bch-controller = <&ecc>;
265
266		pinctrl-names = "default";
267		pinctrl-0 = <&pins_nemc>;
268
269		rb-gpios = <&gpc 30 GPIO_ACTIVE_LOW>;
270
271		nand@1 {
272			reg = <1>;
273
274			nand-ecc-step-size = <512>;
275			nand-ecc-strength = <4>;
276			nand-ecc-mode = "hw";
277			nand-is-boot-medium;
278			nand-on-flash-bbt;
279
280			partitions {
281				compatible = "fixed-partitions";
282				#address-cells = <1>;
283				#size-cells = <1>;
284
285				partition@0 {
286					label = "boot";
287					reg = <0x0 0x400000>;
288				};
289
290				partition@400000 {
291					label = "kernel";
292					reg = <0x400000 0x400000>;
293				};
294
295				partition@800000 {
296					label = "rootfs";
297					reg = <0x800000 0x0>;
298				};
299			};
300		};
301	};
302};
303
304&lcd {
305	pinctrl-names = "default";
306	pinctrl-0 = <&pins_lcd>;
307
308	port {
309		panel_output: endpoint {
310			remote-endpoint = <&panel_input>;
311		};
312	};
313};
314
315&udc {
316	phys = <&usb_phy>;
317};
318
319&pinctrl {
320	pins_lcd: lcd {
321		function = "lcd";
322		groups = "lcd-8bit";
323	};
324
325	pins_nemc: nemc {
326		function = "nand";
327		groups = "nand-cs1";
328	};
329
330	pins_uart0: uart0 {
331		function = "uart0";
332		groups = "uart0-data";
333		bias-disable;
334	};
335
336	pins_mmc: mmc {
337		mmc {
338			function = "mmc";
339			groups = "mmc-1bit", "mmc-4bit";
340			bias-disable;
341		};
342
343		mmc-gpios {
344			pins = "PD0", "PD2";
345			bias-disable;
346		};
347	};
348};
349
350&mmc {
351	bus-width = <4>;
352	max-frequency = <24000000>;
353	cd-gpios = <&gpd 0 GPIO_ACTIVE_HIGH>;
354	vmmc-supply = <&mmc_power>;
355
356	pinctrl-names = "default";
357	pinctrl-0 = <&pins_mmc>;
358};
359
360&tcu {
361	/* 750 kHz for the system timer and clocksource */
362	assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>;
363	assigned-clock-rates = <750000>, <750000>;
364};