Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: s5pv210: Enable audio on Aries boards

Both the Galaxy S and the Fascinate4G have a WM8994 codec, but they
differ slightly in their jack detection and micbias configuration.

Signed-off-by: Jonathan Bakker <xc-racer2@live.ca>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

authored by

Jonathan Bakker and committed by
Krzysztof Kozlowski
cd972fe9 a6b5a197

+193
+10
arch/arm/boot/dts/s5pv210-aries.dtsi
··· 47 47 }; 48 48 }; 49 49 50 + bt_codec: bt_sco { 51 + compatible = "linux,bt-sco"; 52 + #sound-dai-cells = <0>; 53 + }; 54 + 50 55 vibrator_pwr: regulator-fixed-0 { 51 56 compatible = "regulator-fixed"; 52 57 regulator-name = "vibrator-en"; ··· 627 622 pinctrl-0 = <&ts_irq>; 628 623 reset-gpios = <&gpj1 3 GPIO_ACTIVE_HIGH>; 629 624 }; 625 + }; 626 + 627 + &i2s0 { 628 + dmas = <&pdma0 9>, <&pdma0 10>, <&pdma0 11>; 629 + status = "okay"; 630 630 }; 631 631 632 632 &mfc {
+98
arch/arm/boot/dts/s5pv210-fascinate4g.dts
··· 35 35 linux,code = <KEY_VOLUMEUP>; 36 36 }; 37 37 }; 38 + 39 + headset_micbias_reg: regulator-fixed-3 { 40 + compatible = "regulator-fixed"; 41 + regulator-name = "Headset_Micbias"; 42 + gpio = <&gpj2 5 GPIO_ACTIVE_HIGH>; 43 + enable-active-high; 44 + 45 + pinctrl-names = "default"; 46 + pinctrl-0 = <&headset_micbias_ena>; 47 + }; 48 + 49 + main_micbias_reg: regulator-fixed-4 { 50 + compatible = "regulator-fixed"; 51 + regulator-name = "Main_Micbias"; 52 + gpio = <&gpj4 2 GPIO_ACTIVE_HIGH>; 53 + enable-active-high; 54 + 55 + pinctrl-names = "default"; 56 + pinctrl-0 = <&main_micbias_ena>; 57 + }; 58 + 59 + sound { 60 + compatible = "samsung,fascinate4g-wm8994"; 61 + 62 + model = "Fascinate4G"; 63 + 64 + extcon = <&fsa9480>; 65 + 66 + main-micbias-supply = <&main_micbias_reg>; 67 + headset-micbias-supply = <&headset_micbias_reg>; 68 + 69 + earpath-sel-gpios = <&gpj2 6 GPIO_ACTIVE_HIGH>; 70 + 71 + io-channels = <&adc 3>; 72 + io-channel-names = "headset-detect"; 73 + headset-detect-gpios = <&gph0 6 GPIO_ACTIVE_HIGH>; 74 + headset-key-gpios = <&gph3 6 GPIO_ACTIVE_HIGH>; 75 + 76 + samsung,audio-routing = 77 + "HP", "HPOUT1L", 78 + "HP", "HPOUT1R", 79 + 80 + "SPK", "SPKOUTLN", 81 + "SPK", "SPKOUTLP", 82 + 83 + "RCV", "HPOUT2N", 84 + "RCV", "HPOUT2P", 85 + 86 + "LINE", "LINEOUT2N", 87 + "LINE", "LINEOUT2P", 88 + 89 + "IN1LP", "Main Mic", 90 + "IN1LN", "Main Mic", 91 + 92 + "IN1RP", "Headset Mic", 93 + "IN1RN", "Headset Mic", 94 + 95 + "Modem Out", "Modem TX", 96 + "Modem RX", "Modem In", 97 + 98 + "Bluetooth SPK", "TX", 99 + "RX", "Bluetooth Mic"; 100 + 101 + pinctrl-names = "default"; 102 + pinctrl-0 = <&headset_det &earpath_sel>; 103 + 104 + cpu { 105 + sound-dai = <&i2s0>, <&bt_codec>; 106 + }; 107 + 108 + codec { 109 + sound-dai = <&wm8994>; 110 + }; 111 + }; 38 112 }; 39 113 40 114 &fg { ··· 125 51 pinctrl-names = "default"; 126 52 pinctrl-0 = <&sleep_cfg>; 127 53 54 + headset_det: headset-det { 55 + samsung,pins = "gph0-6", "gph3-6"; 56 + samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 57 + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 58 + }; 59 + 128 60 fg_irq: fg-irq { 129 61 samsung,pins = "gph3-3"; 130 62 samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 63 + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 64 + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 65 + }; 66 + 67 + headset_micbias_ena: headset-micbias-ena { 68 + samsung,pins = "gpj2-5"; 69 + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 70 + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 71 + }; 72 + 73 + earpath_sel: earpath-sel { 74 + samsung,pins = "gpj2-6"; 75 + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 76 + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 77 + }; 78 + 79 + main_micbias_ena: main-micbias-ena { 80 + samsung,pins = "gpj4-2"; 131 81 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 132 82 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 133 83 };
+85
arch/arm/boot/dts/s5pv210-galaxys.dts
··· 72 72 pinctrl-0 = <&fm_irq &fm_rst>; 73 73 }; 74 74 }; 75 + 76 + micbias_reg: regulator-fixed-3 { 77 + compatible = "regulator-fixed"; 78 + regulator-name = "MICBIAS"; 79 + gpio = <&gpj4 2 GPIO_ACTIVE_HIGH>; 80 + enable-active-high; 81 + 82 + pinctrl-names = "default"; 83 + pinctrl-0 = <&micbias_reg_ena>; 84 + }; 85 + 86 + sound { 87 + compatible = "samsung,aries-wm8994"; 88 + 89 + model = "Aries"; 90 + 91 + extcon = <&fsa9480>; 92 + 93 + main-micbias-supply = <&micbias_reg>; 94 + headset-micbias-supply = <&micbias_reg>; 95 + 96 + earpath-sel-gpios = <&gpj2 6 GPIO_ACTIVE_HIGH>; 97 + 98 + io-channels = <&adc 3>; 99 + io-channel-names = "headset-detect"; 100 + headset-detect-gpios = <&gph0 6 GPIO_ACTIVE_LOW>; 101 + headset-key-gpios = <&gph3 6 GPIO_ACTIVE_HIGH>; 102 + 103 + samsung,audio-routing = 104 + "HP", "HPOUT1L", 105 + "HP", "HPOUT1R", 106 + 107 + "SPK", "SPKOUTLN", 108 + "SPK", "SPKOUTLP", 109 + 110 + "RCV", "HPOUT2N", 111 + "RCV", "HPOUT2P", 112 + 113 + "LINE", "LINEOUT2N", 114 + "LINE", "LINEOUT2P", 115 + 116 + "IN1LP", "Main Mic", 117 + "IN1LN", "Main Mic", 118 + 119 + "IN1RP", "Headset Mic", 120 + "IN1RN", "Headset Mic", 121 + 122 + "IN2LN", "FM In", 123 + "IN2RN", "FM In", 124 + 125 + "Modem Out", "Modem TX", 126 + "Modem RX", "Modem In", 127 + 128 + "Bluetooth SPK", "TX", 129 + "RX", "Bluetooth Mic"; 130 + 131 + pinctrl-names = "default"; 132 + pinctrl-0 = <&headset_det &earpath_sel>; 133 + 134 + cpu { 135 + sound-dai = <&i2s0>, <&bt_codec>; 136 + }; 137 + 138 + codec { 139 + sound-dai = <&wm8994>; 140 + }; 141 + }; 75 142 }; 76 143 77 144 &aliases { ··· 155 88 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 156 89 }; 157 90 91 + headset_det: headset-det { 92 + samsung,pins = "gph0-6", "gph3-6"; 93 + samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 94 + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 95 + }; 96 + 158 97 fm_irq: fm-irq { 159 98 samsung,pins = "gpj2-4"; 160 99 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; ··· 175 102 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 176 103 }; 177 104 105 + earpath_sel: earpath-sel { 106 + samsung,pins = "gpj2-6"; 107 + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 108 + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 109 + }; 110 + 178 111 massmemory_en: massmemory-en { 179 112 samsung,pins = "gpj2-7"; 180 113 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 114 + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 115 + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 116 + }; 117 + 118 + micbias_reg_ena: micbias-reg-ena { 119 + samsung,pins = "gpj4-2"; 181 120 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 182 121 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 183 122 };