Skip to content

Commit 77a7854

Browse files
committed
Merge pull request #54 from hsnaves/odroid-3.13.y
Odroid 3.13.y
2 parents 42c9fa2 + 6c08d00 commit 77a7854

File tree

26 files changed

+2908
-3353
lines changed

26 files changed

+2908
-3353
lines changed

Documentation/devicetree/bindings/clock/clk-exynos-audss.txt

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,29 @@ Required Properties:
88

99
- compatible: should be one of the following:
1010
- "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs.
11-
- "samsung,exynos5250-audss-clock" - controller compatible with all Exynos5 SoCs.
12-
11+
- "samsung,exynos5250-audss-clock" - controller compatible with Exynos5250
12+
SoCs.
13+
- "samsung,exynos5420-audss-clock" - controller compatible with Exynos5420
14+
SoCs.
1315
- reg: physical base address and length of the controller's register set.
1416

1517
- #clock-cells: should be 1.
1618

19+
- clocks:
20+
- pll_ref: Fixed rate PLL reference clock, parent of mout_audss. "fin_pll"
21+
is used if not specified.
22+
- pll_in: Input PLL to the AudioSS block, parent of mout_audss. "fout_epll"
23+
is used if not specified.
24+
- cdclk: External i2s clock, parent of mout_i2s. "cdclk0" is used if not
25+
specified.
26+
- sclk_audio: Audio bus clock, parent of mout_i2s. "sclk_audio0" is used if
27+
not specified.
28+
- sclk_pcm_in: PCM clock, parent of sclk_pcm. "sclk_pcm0" is used if not
29+
specified.
30+
31+
- clock-names: Aliases for the above clocks. They should be "pll_ref",
32+
"pll_in", "cdclk", "sclk_audio", and "sclk_pcm_in" respectively.
33+
1734
The following is the list of clocks generated by the controller. Each clock is
1835
assigned an identifier and client nodes use this identifier to specify the
1936
clock which they consume. Some of the clocks are available only on a particular
@@ -34,16 +51,30 @@ i2s_bus 6
3451
sclk_i2s 7
3552
pcm_bus 8
3653
sclk_pcm 9
54+
adma 10 Exynos5420
55+
56+
Example 1: An example of a clock controller node using the default input
57+
clock names is listed below.
58+
59+
clock_audss: audss-clock-controller@3810000 {
60+
compatible = "samsung,exynos5250-audss-clock";
61+
reg = <0x03810000 0x0C>;
62+
#clock-cells = <1>;
63+
};
3764

38-
Example 1: An example of a clock controller node is listed below.
65+
Example 2: An example of a clock controller node with the input clocks
66+
specified.
3967

4068
clock_audss: audss-clock-controller@3810000 {
4169
compatible = "samsung,exynos5250-audss-clock";
4270
reg = <0x03810000 0x0C>;
4371
#clock-cells = <1>;
72+
clocks = <&clock 1>, <&clock 7>, <&clock 138>, <&clock 160>,
73+
<&ext_i2s_clk>;
74+
clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in", "cdclk";
4475
};
4576

46-
Example 2: I2S controller node that consumes the clock generated by the clock
77+
Example 3: I2S controller node that consumes the clock generated by the clock
4778
controller. Refer to the standard clock bindings for information
4879
about 'clocks' and 'clock-names' property.
4980

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
Google Daisy audio complex
2+
3+
Required properties:
4+
- compatible : "google,daisy-audio-max988095" or "google,daisy-audio-max98090"
5+
- samsung,i2s-controller: Reference to the i2s controller that will be used
6+
as the CPU DAI.
7+
- samsung,audio-codec: Reference to the audio codec.
8+
- clocks: List of clock handles. The following must be specified:
9+
- fout_epll: Parent of sclk_epll
10+
- sclk_epll: Mux to select parent of epll
11+
- mout_audio0: Mux to select parent of sclk_audio0
12+
- sclk_audio0: Controls gating of audio bus clock; parent of mout_i2s
13+
- mout_audss: Mux to select parent of audio IP clock
14+
- mout_i2s: Mux to select parent of i2s clock
15+
- clock-names: Aliases for the above clocks. They should be "fout_epll",
16+
"sclk_epll", "mout_audio0", "sclk_audio0", "mout_audss", and "mout_i2s",
17+
respectively.
18+
19+
Optional properties:
20+
- samsung,hp-det-gpios : The GPIO that detects when headphones are plugged in.
21+
- samsung,mic-det-gpios : The GPIO that detects when mic is plugged in.
22+
- card-name : The name that we'll report for the sound card. If not present
23+
will be "DAISY-I2S".
24+
25+
Example:
26+
27+
sound {
28+
compatible = "google,daisy-audio-max98095";
29+
30+
samsung,i2s-controller = <&i2s0>;
31+
samsung,audio-codec = <&max98095>;
32+
samsung,mic-det-gpios = <&gpx2 0 2 0 0>;
33+
samsung,hp-det-gpios = <&gpx2 2 2 0 0>;
34+
card-name = "DAISY-I2S-98095";
35+
clocks = <&clock 3>, <&clock 4>, <&clock 1026>,
36+
<&clock 138>, <&clock_audss EXYNOS_MOUT_AUDSS>,
37+
<&clock_audss EXYNOS_MOUT_I2S>;
38+
clock-names = "fout_epll", "sclk_epll", "mout_audio0",
39+
"sclk_audio0", "mout_audss", "mout_i2s";
40+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Device-Tree bindings for dummy HDMI codec
2+
3+
Required properties:
4+
- compatible: should be "linux,hdmi-audio".
5+
6+
CODEC output pins:
7+
* TX
8+
9+
CODEC input pins:
10+
* RX
11+
12+
Example node:
13+
14+
hdmi_audio: hdmi_audio@0 {
15+
compatible = "linux,hdmi-audio";
16+
status = "okay";
17+
};
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
MAX98090 audio CODEC
2+
3+
This device supports I2C only.
4+
5+
Required properties:
6+
7+
- compatible : "maxim,max98090".
8+
9+
- reg : The I2C address of the device.
10+
11+
- interrupts : The CODEC's interrupt output.
12+
13+
Pins on the device (for linking into audio routes):
14+
15+
* MIC1
16+
* MIC2
17+
* DMICL
18+
* DMICR
19+
* IN1
20+
* IN2
21+
* IN3
22+
* IN4
23+
* IN5
24+
* IN6
25+
* IN12
26+
* IN34
27+
* IN56
28+
* HPL
29+
* HPR
30+
* SPKL
31+
* SPKR
32+
* RCVL
33+
* RCVR
34+
* MICBIAS
35+
36+
Example:
37+
38+
audio-codec@10 {
39+
compatible = "maxim,max98090";
40+
reg = <0x10>;
41+
interrupt-parent = <&gpio>;
42+
interrupts = <TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>;
43+
};

arch/arm/boot/dts/exynos5410-odroidxu.dts

Lines changed: 66 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,14 @@
3232
samsung,mfc-l = <0x51000000 0x800000>;
3333
};
3434

35-
clocks {
36-
compatible = "simple-bus";
37-
#address-cells = <1>;
38-
#size-cells = <0>;
39-
40-
fin_pll: clock-fin-pll {
41-
compatible = "fixed-clock";
42-
reg = <0>;
43-
#clock-cells = <0>;
35+
fixed-rate-clocks {
36+
xxti {
37+
compatible = "samsung,clock-xxti";
4438
clock-frequency = <24000000>;
45-
clock-output-names = "fin_pll";
4639
};
4740
};
4841

42+
4943
mmc@12200000 {
5044
status = "okay";
5145
num-slots = <1>;
@@ -82,27 +76,27 @@
8276
};
8377
};
8478

85-
leds {
86-
compatible = "gpio-leds";
87-
hearbeat {
88-
label = "red:heartbeart";
89-
gpios = <&gpb2 2 GPIO_ACTIVE_HIGH>;
90-
default-state = "off";
91-
linux,default-trigger = "heartbeat";
92-
};
93-
eMMC {
94-
label = "green:activity";
95-
gpios = <&gpb2 1 GPIO_ACTIVE_HIGH>;
96-
default-state = "off";
97-
linux,default-trigger = "mmc0";
98-
};
99-
microSD {
100-
label = "blue:activity";
101-
gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
102-
default-state = "off";
103-
linux,default-trigger = "mmc1";
104-
};
105-
};
79+
leds {
80+
compatible = "gpio-leds";
81+
hearbeat {
82+
label = "red:heartbeart";
83+
gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
84+
default-state = "off";
85+
linux,default-trigger = "heartbeat";
86+
};
87+
eMMC {
88+
label = "green:activity";
89+
gpios = <&gpb2 1 GPIO_ACTIVE_HIGH>;
90+
default-state = "off";
91+
linux,default-trigger = "mmc0";
92+
};
93+
microSD {
94+
label = "blue:activity";
95+
gpios = <&gpb2 2 GPIO_ACTIVE_HIGH>;
96+
default-state = "off";
97+
linux,default-trigger = "mmc1";
98+
};
99+
};
106100

107101
pinctrl@13400000 {
108102
max77802_irq: max77802-irq {
@@ -125,7 +119,7 @@
125119
};
126120
};
127121

128-
pinctrl@14000000 {
122+
pinctrl@14000000 {
129123
usb3_overcur0_u2: usb3-overcur0-u2 {
130124
samsung,pins = "gpk3-0";
131125
samsung,pin-function = <2>;
@@ -169,11 +163,11 @@
169163
};
170164
};
171165

172-
/* ic21 */
166+
/* i2c1 */
173167
i2c@12C70000 {
174168
status = "okay";
175169
clock-frequency = <400000>;
176-
codec@10 {
170+
max98090: codec@10 {
177171
compatible = "maxim,max98090";
178172
reg = <0x10>;
179173
interrupts = <2 0>;
@@ -184,7 +178,7 @@
184178
};
185179
};
186180

187-
/* ic22 */
181+
/* i2c2 */
188182
i2c@12C80000 {
189183
samsung,i2c-sda-delay = <100>;
190184
samsung,i2c-max-bus-freq = <66000>;
@@ -234,27 +228,27 @@
234228

235229
hdmi {
236230
hpd-gpio = <&gpx3 7 0>;
237-
pinctrl-names = "default";
238-
pinctrl-0 = <&hdmi_hpd_irq>;
231+
pinctrl-names = "default";
232+
pinctrl-0 = <&hdmi_hpd_irq>;
239233
hdmi-en-supply = <&fixed_regulator>;
240234
vdd_osc-supply = <&ldo10_reg>;
241235
vdd_pll-supply = <&ldo8_reg>;
242236
vdd-supply = <&ldo8_reg>;
243237
phy = <&hdmiphy>;
244238
};
245239

246-
fixed_regulator: fixed_regulator@0 {
247-
compatible = "regulator-fixed";
248-
regulator-name = "hdmi-en";
249-
regulator-min-microvolt = <5000000>;
250-
regulator-max-microvolt = <5000000>;
251-
};
240+
fixed_regulator: fixed_regulator@0 {
241+
compatible = "regulator-fixed";
242+
regulator-name = "hdmi-en";
243+
regulator-min-microvolt = <5000000>;
244+
regulator-max-microvolt = <5000000>;
245+
};
252246

253247
/* hsic24 */
254248
hsi2c@12CA0000 {
255249
status = "okay";
256250
samsung,hs-mode;
257-
clock-frequency = <1000000>;
251+
clock-frequency = <1000000>;
258252

259253
max77802-pmic@9 {
260254
compatible = "maxim,max77802";
@@ -540,4 +534,32 @@
540534
status = "okay";
541535
};
542536

537+
hdmiphy@145D0000 {
538+
compatible = "samsung,exynos5410-odroidxu-hdmiphy";
539+
};
540+
541+
542+
i2s@03830000 {
543+
status = "okay";
544+
};
545+
546+
sound {
547+
compatible = "google,daisy-audio-max98090";
548+
549+
samsung,i2s-controller = <&i2s0>;
550+
samsung,audio-codec = <&max98090>;
551+
card-name = "ODROID-I2S-98090";
552+
clocks = <&clock CLK_FOUT_EPLL>, <&clock CLK_SCLK_EPLL>, <&clock CLK_MOUT_AUDIO0>,
553+
<&clock CLK_SCLK_MAUDIO0>, <&clock_audss EXYNOS_MOUT_AUDSS>,
554+
<&clock_audss EXYNOS_MOUT_I2S>;
555+
clock-names = "fout_epll", "sclk_epll", "mout_audio0",
556+
"sclk_audio0", "mout_audss", "mout_i2s";
557+
};
558+
559+
firmware@02073000 {
560+
compatible = "samsung,secure-firmware";
561+
reg = <0x02073000 0x1000>;
562+
};
563+
564+
543565
};

arch/arm/boot/dts/exynos5410-pinctrl.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,7 @@
653653

654654
pwm0_out: pwm0-out {
655655
samsung,pins = "gpb2-0";
656-
samsung,pin-fuction = <2>;
656+
samsung,pin-function = <2>;
657657
samsung,pin-pud = <0>;
658658
samsung,pin-drv = <0>;
659659
};

0 commit comments

Comments
 (0)