summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts/vf610-colibri.dtsi
blob: a8d59f7bef06b5f880f7f9f1588b48d2e57c4a0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
 * Copyright 2014 Toradex AG
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */

#include "vf610.dtsi"
#include "vf-colibri.dtsi"

/ {
	model = "Toradex Colibri VF61 COM";
	compatible = "toradex,vf610-colibri_vf61", "fsl,vf610";

	memory {
		reg = <0x80000000 0x10000000>;
	};

	sound {
		compatible = "fsl,fsl-sai-audio-wm9712";
		fsl,ac97-controller = <&sai2>;

		fsl,model = "Colibri VF61 AC97 Audio";

		fsl,audio-routing =
			"Headphone", "HPOUTL",
			"Headphone", "HPOUTR",
			"LINEINL", "LineIn",
			"LINEINR", "LineIn",
			"MIC1", "Mic";
	};
};

&nfc {
	assigned-clocks = <&clks VF610_CLK_NFC>;
	assigned-clock-rates = <50000000>;
};

&sai0 {
	compatible = "fsl,vf610-sai-clk";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai0>;
	status = "okay";
};

&sai2 {
	compatible = "fsl,vf610-sai-ac97";
	#sound-dai-cells = <0>;
	pinctrl-names = "default", "sleep", "ac97-running", "ac97-reset",
			"ac97-warm-reset";
	pinctrl-0 = <&pinctrl_sai2_ac97_default>;
	pinctrl-1 = <&pinctrl_sai2_ac97_sleep>;
	pinctrl-2 = <&pinctrl_sai2_ac97_running>;
	pinctrl-3 = <&pinctrl_sai2_ac97_reset>;
	pinctrl-4 = <&pinctrl_sai2_ac97_warm_reset>;
	ac97-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH &gpio0 8 GPIO_ACTIVE_HIGH
		      &gpio0 13 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&iomuxc {
	vf610-colibri {
		pinctrl_sai0: sai0grp_1 {
			fsl,pins = <
				VF610_PAD_PTB23__SAI0_TX_BCLK	0x31C3
			>;
		};

		pinctrl_sai2_ac97_default: sai2grp_1 {
			fsl,pins = <
				/* Pen-down */
				VF610_PAD_PTA11__GPIO_4		0x22ed

				/* GenIRQ */
				VF610_PAD_PTB2__GPIO_24		0x22e1
			>;
		};

		pinctrl_sai2_ac97_sleep: sai2grp_2 {
			fsl,pins = <
				/* AC97 Reset (cold reset) floating */
				VF610_PAD_PTA23__GPIO_13	0x22c1
			>;
		};

		pinctrl_sai2_ac97_running: sai2grp_3 {
			fsl,pins = <
				/* AC97 Bit clock */
				VF610_PAD_PTA16__SAI2_TX_BCLK	0x31C3

				/* AC97 SData Out */
				VF610_PAD_PTA18__SAI2_TX_DATA	0x31C2

				/* AC97 Sync */
				VF610_PAD_PTA19__SAI2_TX_SYNC	0x31C3

				/* AC97 SData In */
				VF610_PAD_PTA22__SAI2_RX_DATA	0x0041
			>;
		};

		pinctrl_sai2_ac97_reset: sai2grp_4 {
			fsl,pins = <
				VF610_PAD_PTA16__SAI2_TX_BCLK	0x31C1

				/* AC97 SData Out (test mode selection) */
				VF610_PAD_PTA18__GPIO_8		0x22c1

				/* AC97 Sync (warm reset) */
				VF610_PAD_PTA19__GPIO_9		0x22c1

				/* AC97 Reset (cold reset) */
				VF610_PAD_PTA23__GPIO_13	0x22c1
			>;
		};

		pinctrl_sai2_ac97_warm_reset: sai2grp_5 {
			fsl,pins = <
				/* AC97 SData Out (test mode selection) */
				VF610_PAD_PTA18__GPIO_8		0x22c1

				/* AC97 Sync (warm reset) */
				VF610_PAD_PTA19__GPIO_9		0x22c1
			>;
		};


	};
};