Linux Audio

Check our new training course

Linux debugging, profiling, tracing and performance analysis training

Mar 24-27, 2025, special US time zones
Register
Loading...
v4.17
  1// SPDX-License-Identifier: GPL-2.0
  2/*
  3 * Hardkernel's Exynos4412 based ODROID-X board device tree source
  4 *
  5 * Copyright (c) 2012 Dongjin Kim <tobetter@gmail.com>
  6 *
  7 * Device tree source file for Hardkernel's ODROID-X board which is based
  8 * on Samsung's Exynos4412 SoC.
  9 */
 
 
 
 
 10
 11/dts-v1/;
 12#include "exynos4412-odroid-common.dtsi"
 13
 14/ {
 15	model = "Hardkernel ODROID-X board based on Exynos4412";
 16	compatible = "hardkernel,odroid-x", "samsung,exynos4412", "samsung,exynos4";
 17
 18	memory@40000000 {
 19		device_type = "memory";
 20		reg = <0x40000000 0x3FF00000>;
 21	};
 22
 23	leds {
 24		compatible = "gpio-leds";
 25		led1 {
 26			label = "led1:heart";
 27			gpios = <&gpc1 0 GPIO_ACTIVE_LOW>;
 28			default-state = "on";
 29			linux,default-trigger = "heartbeat";
 30		};
 31		led2 {
 32			label = "led2:mmc0";
 33			gpios = <&gpc1 2 GPIO_ACTIVE_LOW>;
 34			default-state = "on";
 35			linux,default-trigger = "mmc0";
 36		};
 37	};
 38
 39	gpio_keys {
 40		pinctrl-0 = <&gpio_power_key &gpio_home_key>;
 
 
 
 41
 42		home_key {
 43			gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
 44			linux,code = <KEY_HOME>;
 45			label = "home key";
 46			debounce-interval = <10>;
 47			wakeup-source;
 
 
 
 
 
 48		};
 49	};
 50
 51	regulator_p3v3 {
 52		compatible = "regulator-fixed";
 53		regulator-name = "p3v3_en";
 54		regulator-min-microvolt = <3300000>;
 55		regulator-max-microvolt = <3300000>;
 56		gpio = <&gpa1 1 GPIO_ACTIVE_LOW>;
 57		enable-active-high;
 58		regulator-always-on;
 
 
 
 
 
 
 
 
 
 
 
 
 59	};
 60};
 61
 62&adc {
 63	vdd-supply = <&ldo10_reg>;
 64	status = "okay";
 65};
 66
 67/* VDDQ for MSHC (eMMC card) */
 68&buck8_reg {
 69	regulator-name = "BUCK8_VDDQ_MMC4_2.8V";
 70	regulator-min-microvolt = <2800000>;
 71	regulator-max-microvolt = <2800000>;
 72};
 73
 74&ehci {
 75	port@1 {
 76		status = "okay";
 77	};
 78};
 79
 80&mshc_0 {
 81	vqmmc-supply = <&buck8_reg>;
 82};
 83
 84&pinctrl_1 {
 85	gpio_home_key: home_key {
 86		samsung,pins = "gpx2-2";
 87		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
 88	};
 89};
 90
 91&serial_2 {
 92	status = "okay";
 93};
 94
 95&serial_3 {
 96	status = "okay";
 97};
 98
 99&sound {
100	simple-audio-card,name = "Odroid-X";
101	simple-audio-card,widgets =
102		"Headphone", "Headphone Jack",
103		"Microphone", "Mic Jack",
104		"Microphone", "DMIC";
105	simple-audio-card,routing =
106		"Headphone Jack", "HPL",
107		"Headphone Jack", "HPR",
108		"IN1", "Mic Jack",
109		"Mic Jack", "MICBIAS";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110};
v3.15
 
  1/*
  2 * Hardkernel's Exynos4412 based ODROID-X board device tree source
  3 *
  4 * Copyright (c) 2012 Dongjin Kim <tobetter@gmail.com>
  5 *
  6 * Device tree source file for Hardkernel's ODROID-X board which is based on
  7 * Samsung's Exynos4412 SoC.
  8 *
  9 * This program is free software; you can redistribute it and/or modify
 10 * it under the terms of the GNU General Public License version 2 as
 11 * published by the Free Software Foundation.
 12*/
 13
 14/dts-v1/;
 15#include "exynos4412.dtsi"
 16
 17/ {
 18	model = "Hardkernel ODROID-X board based on Exynos4412";
 19	compatible = "hardkernel,odroid-x", "samsung,exynos4412", "samsung,exynos4";
 20
 21	memory {
 22		reg = <0x40000000 0x40000000>;
 
 23	};
 24
 25	leds {
 26		compatible = "gpio-leds";
 27		led1 {
 28			label = "led1:heart";
 29			gpios = <&gpc1 0 1>;
 30			default-state = "on";
 31			linux,default-trigger = "heartbeat";
 32		};
 33		led2 {
 34			label = "led2:mmc0";
 35			gpios = <&gpc1 2 1>;
 36			default-state = "on";
 37			linux,default-trigger = "mmc0";
 38		};
 39	};
 40
 41	mmc@12550000 {
 42		pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
 43		pinctrl-names = "default";
 44		vmmc-supply = <&ldo20_reg &buck8_reg>;
 45		status = "okay";
 46
 47		num-slots = <1>;
 48		supports-highspeed;
 49		broken-cd;
 50		card-detect-delay = <200>;
 51		samsung,dw-mshc-ciu-div = <3>;
 52		samsung,dw-mshc-sdr-timing = <2 3>;
 53		samsung,dw-mshc-ddr-timing = <1 2>;
 54
 55		slot@0 {
 56			reg = <0>;
 57			bus-width = <8>;
 58		};
 59	};
 60
 61	regulator_p3v3 {
 62		compatible = "regulator-fixed";
 63		regulator-name = "p3v3_en";
 64		regulator-min-microvolt = <3300000>;
 65		regulator-max-microvolt = <3300000>;
 66		gpio = <&gpa1 1 1>;
 67		enable-active-high;
 68		regulator-boot-on;
 69	};
 70
 71	rtc@10070000 {
 72		status = "okay";
 73	};
 74
 75	sdhci@12530000 {
 76		bus-width = <4>;
 77		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
 78		pinctrl-names = "default";
 79		vmmc-supply = <&ldo4_reg &ldo21_reg>;
 80		status = "okay";
 81	};
 
 82
 83	serial@13800000 {
 84		status = "okay";
 85	};
 86
 87	serial@13810000 {
 88		status = "okay";
 89	};
 90
 91	serial@13820000 {
 92		status = "okay";
 93	};
 94
 95	serial@13830000 {
 96		status = "okay";
 97	};
 98
 99	fixed-rate-clocks {
100		xxti {
101			compatible = "samsung,clock-xxti";
102			clock-frequency = <0>;
103		};
104
105		xusbxti {
106			compatible = "samsung,clock-xusbxti";
107			clock-frequency = <24000000>;
108		};
109	};
110
111	i2c@13860000 {
112		pinctrl-0 = <&i2c0_bus>;
113		pinctrl-names = "default";
114		status = "okay";
115
116		max77686: pmic@09 {
117			compatible = "maxim,max77686";
118			reg = <0x09>;
119			#clock-cells = <1>;
120
121			voltage-regulators {
122				ldo1_reg: LDO1 {
123					regulator-name = "VDD_ALIVE_1.0V";
124					regulator-min-microvolt = <1000000>;
125					regulator-max-microvolt = <1000000>;
126					regulator-always-on;
127				};
128
129				ldo2_reg: LDO2 {
130					regulator-name = "VDDQ_M1_2_1.8V";
131					regulator-min-microvolt = <1800000>;
132					regulator-max-microvolt = <1800000>;
133					regulator-always-on;
134				};
135
136				ldo3_reg: LDO3 {
137					regulator-name = "VDDQ_EXT_1.8V";
138					regulator-min-microvolt = <1800000>;
139					regulator-max-microvolt = <1800000>;
140					regulator-always-on;
141				};
142
143				ldo4_reg: LDO4 {
144					regulator-name = "VDDQ_MMC2_2.8V";
145					regulator-min-microvolt = <2800000>;
146					regulator-max-microvolt = <2800000>;
147					regulator-always-on;
148					regulator-boot-on;
149				};
150
151				ldo5_reg: LDO5 {
152					regulator-name = "VDDQ_MMC1_3_1.8V";
153					regulator-min-microvolt = <1800000>;
154					regulator-max-microvolt = <1800000>;
155					regulator-always-on;
156					regulator-boot-on;
157				};
158
159				ldo6_reg: LDO6 {
160					regulator-name = "VDD10_MPLL_1.0V";
161					regulator-min-microvolt = <1000000>;
162					regulator-max-microvolt = <1000000>;
163					regulator-always-on;
164				};
165
166				ldo7_reg: LDO7 {
167					regulator-name = "VDD10_XPLL_1.0V";
168					regulator-min-microvolt = <1000000>;
169					regulator-max-microvolt = <1000000>;
170					regulator-always-on;
171				};
172
173				ldo11_reg: LDO11 {
174					regulator-name = "VDD18_ABB1_1.8V";
175					regulator-min-microvolt = <1800000>;
176					regulator-max-microvolt = <1800000>;
177					regulator-always-on;
178				};
179
180				ldo12_reg: LDO12 {
181					regulator-name = "VDD33_USB_3.3V";
182					regulator-min-microvolt = <3300000>;
183					regulator-max-microvolt = <3300000>;
184					regulator-always-on;
185					regulator-boot-on;
186				};
187
188				ldo13_reg: LDO13 {
189					regulator-name = "VDDQ_C2C_W_1.8V";
190					regulator-min-microvolt = <1800000>;
191					regulator-max-microvolt = <1800000>;
192					regulator-always-on;
193					regulator-boot-on;
194				};
195
196				ldo14_reg: LDO14 {
197					regulator-name = "VDD18_ABB0_2_1.8V";
198					regulator-min-microvolt = <1800000>;
199					regulator-max-microvolt = <1800000>;
200					regulator-always-on;
201					regulator-boot-on;
202				};
203
204				ldo15_reg: LDO15 {
205					regulator-name = "VDD10_HSIC_1.0V";
206					regulator-min-microvolt = <1000000>;
207					regulator-max-microvolt = <1000000>;
208					regulator-always-on;
209					regulator-boot-on;
210				};
211
212				ldo16_reg: LDO16 {
213					regulator-name = "VDD18_HSIC_1.8V";
214					regulator-min-microvolt = <1800000>;
215					regulator-max-microvolt = <1800000>;
216					regulator-always-on;
217					regulator-boot-on;
218				};
219
220				ldo20_reg: LDO20 {
221					regulator-name = "LDO20_1.8V";
222					regulator-min-microvolt = <1800000>;
223					regulator-max-microvolt = <1800000>;
224					regulator-boot-on;
225				};
226
227				ldo21_reg: LDO21 {
228					regulator-name = "LDO21_3.3V";
229					regulator-min-microvolt = <3300000>;
230					regulator-max-microvolt = <3300000>;
231					regulator-always-on;
232					regulator-boot-on;
233				};
234
235				ldo25_reg: LDO25 {
236					regulator-name = "VDDQ_LCD_1.8V";
237					regulator-min-microvolt = <1800000>;
238					regulator-max-microvolt = <1800000>;
239					regulator-always-on;
240					regulator-boot-on;
241				};
242
243				buck1_reg: BUCK1 {
244					regulator-name = "vdd_mif";
245					regulator-min-microvolt = <1000000>;
246					regulator-max-microvolt = <1000000>;
247					regulator-always-on;
248					regulator-boot-on;
249				};
250
251				buck2_reg: BUCK2 {
252					regulator-name = "vdd_arm";
253					regulator-min-microvolt = <900000>;
254					regulator-max-microvolt = <1350000>;
255					regulator-always-on;
256					regulator-boot-on;
257				};
258
259				buck3_reg: BUCK3 {
260					regulator-name = "vdd_int";
261					regulator-min-microvolt = <1000000>;
262					regulator-max-microvolt = <1000000>;
263					regulator-always-on;
264					regulator-boot-on;
265				};
266
267				buck4_reg: BUCK4 {
268					regulator-name = "vdd_g3d";
269					regulator-min-microvolt = <900000>;
270					regulator-max-microvolt = <1100000>;
271					regulator-microvolt-offset = <50000>;
272				};
273
274				buck5_reg: BUCK5 {
275					regulator-name = "VDDQ_CKEM1_2_1.2V";
276					regulator-min-microvolt = <1200000>;
277					regulator-max-microvolt = <1200000>;
278					regulator-always-on;
279					regulator-boot-on;
280				};
281
282				buck6_reg: BUCK6 {
283					regulator-name = "BUCK6_1.35V";
284					regulator-min-microvolt = <1350000>;
285					regulator-max-microvolt = <1350000>;
286					regulator-always-on;
287					regulator-boot-on;
288				};
289
290				buck7_reg: BUCK7 {
291					regulator-name = "BUCK7_2.0V";
292					regulator-min-microvolt = <2000000>;
293					regulator-max-microvolt = <2000000>;
294					regulator-always-on;
295				};
296
297				buck8_reg: BUCK8 {
298					regulator-name = "BUCK8_2.8V";
299					regulator-min-microvolt = <2800000>;
300					regulator-max-microvolt = <2800000>;
301					regulator-always-on;
302				};
303			};
304		};
305	};
306};