]>
Commit | Line | Data |
---|---|---|
6c42db30 EBS |
1 | /* |
2 | * Google Veyron (and derivatives) fragment for the max98090 audio | |
3 | * codec and analog headphone jack. | |
4 | * | |
5 | * Copyright 2016 Google, Inc | |
6 | * | |
7 | * This program is free software; you can redistribute it and/or modify | |
8 | * it under the terms of the GNU General Public License version 2 as | |
9 | * published by the Free Software Foundation. | |
10 | */ | |
11 | ||
12 | / { | |
13 | sound { | |
14 | compatible = "rockchip,rockchip-audio-max98090"; | |
15 | pinctrl-names = "default"; | |
16 | pinctrl-0 = <&mic_det>, <&hp_det>; | |
7a25d396 | 17 | rockchip,model = "VEYRON-I2S"; |
6c42db30 EBS |
18 | rockchip,i2s-controller = <&i2s>; |
19 | rockchip,audio-codec = <&max98090>; | |
e9e79d53 AY |
20 | rockchip,hp-det-gpios = <&gpio6 RK_PA5 GPIO_ACTIVE_HIGH>; |
21 | rockchip,mic-det-gpios = <&gpio6 RK_PB3 GPIO_ACTIVE_LOW>; | |
6c42db30 EBS |
22 | rockchip,headset-codec = <&headsetcodec>; |
23 | }; | |
24 | }; | |
25 | ||
26 | &i2c2 { | |
27 | max98090: max98090@10 { | |
28 | compatible = "maxim,max98090"; | |
29 | reg = <0x10>; | |
30 | interrupt-parent = <&gpio6>; | |
e9e79d53 | 31 | interrupts = <RK_PA7 IRQ_TYPE_EDGE_FALLING>; |
6c42db30 EBS |
32 | clock-names = "mclk"; |
33 | clocks = <&cru SCLK_I2S0_OUT>; | |
34 | pinctrl-names = "default"; | |
35 | pinctrl-0 = <&int_codec>; | |
36 | }; | |
37 | }; | |
38 | ||
39 | &i2c4 { | |
40 | headsetcodec: ts3a227e@3b { | |
41 | compatible = "ti,ts3a227e"; | |
42 | reg = <0x3b>; | |
43 | interrupt-parent = <&gpio0>; | |
e9e79d53 | 44 | interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; |
6c42db30 EBS |
45 | pinctrl-names = "default"; |
46 | pinctrl-0 = <&ts3a227e_int_l>; | |
47 | ti,micbias = <7>; /* MICBIAS = 2.8V */ | |
48 | }; | |
49 | }; | |
50 | ||
51 | &i2s { | |
52 | status = "okay"; | |
53 | }; | |
54 | ||
55 | &io_domains { | |
56 | audio-supply = <&vcc18_codec>; | |
57 | }; | |
58 | ||
59 | &rk808 { | |
60 | vcc10-supply = <&vcc33_sys>; | |
61 | ||
62 | regulators { | |
63 | vcc18_codec: LDO_REG6 { | |
64 | regulator-name = "vcc18_codec"; | |
65 | regulator-always-on; | |
66 | regulator-boot-on; | |
67 | regulator-min-microvolt = <1800000>; | |
68 | regulator-max-microvolt = <1800000>; | |
69 | regulator-state-mem { | |
70 | regulator-off-in-suspend; | |
71 | }; | |
72 | }; | |
73 | }; | |
74 | }; | |
75 | ||
76 | &pinctrl { | |
77 | codec { | |
78 | hp_det: hp-det { | |
79 | rockchip,pins = <6 5 RK_FUNC_GPIO &pcfg_pull_up>; | |
80 | }; | |
81 | ||
82 | /* | |
83 | * HACK: We're going to _pull down_ this _active low_ interrupt | |
84 | * so that it never fires. We don't need this interrupt because | |
85 | * we've got a ts3a227e chip but the driver requires it. | |
86 | */ | |
87 | int_codec: int-codec { | |
88 | rockchip,pins = <6 7 RK_FUNC_GPIO &pcfg_pull_down>; | |
89 | }; | |
90 | ||
91 | mic_det: mic-det { | |
92 | rockchip,pins = <6 11 RK_FUNC_GPIO &pcfg_pull_up>; | |
93 | }; | |
94 | }; | |
95 | ||
96 | headset { | |
97 | ts3a227e_int_l: ts3a227e-int-l { | |
98 | rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_up>; | |
99 | }; | |
100 | }; | |
101 | }; |