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

ARM: dts: am3517-evm: Add support for UI board and Audio

The full AM3517-EVM shipped with an add-on board which contained
two Audio codecs, a GPIO expander with a variety of buttons, and
some other features. This patch enables these portions of the UI
board because they don't directly conflict with existing features.

Signed-off-by: Adam Ford <aford173@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>

authored by

Adam Ford and committed by
Tony Lindgren
6ed1d799 ada23cd3

+221
+220
arch/arm/boot/dts/am3517-evm-ui.dtsi
··· 1 + /* 2 + * Copyright (C) 2018 Logic PD, Inc - http://www.logicpd.com/ 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 as 6 + * published by the Free Software Foundation. 7 + */ 8 + 9 + #include <dt-bindings/input/input.h> 10 + 11 + / { 12 + codec1 { 13 + compatible = "simple-audio-card"; 14 + simple-audio-card,name = "tlv320aic23-hifi"; 15 + 16 + simple-audio-card,widgets = 17 + "Microphone", "Mic In", 18 + "Line", "Line In", 19 + "Line", "Line Out"; 20 + 21 + simple-audio-card,routing = 22 + "Line Out", "LOUT", 23 + "Line Out", "ROUT", 24 + "LLINEIN", "Line In", 25 + "RLINEIN", "Line In", 26 + "MICIN", "Mic In"; 27 + 28 + simple-audio-card,format = "i2s"; 29 + simple-audio-card,bitclock-master = <&sound_master>; 30 + simple-audio-card,frame-master = <&sound_master>; 31 + 32 + simple-audio-card,cpu { 33 + sound-dai = <&mcbsp1>; 34 + }; 35 + 36 + sound_master: simple-audio-card,codec { 37 + sound-dai = <&tlv320aic23_1>; 38 + system-clock-frequency = <12000000>; 39 + }; 40 + }; 41 + 42 + codec2 { 43 + compatible = "simple-audio-card"; 44 + simple-audio-card,name = "tlv320aic23-hifi"; 45 + 46 + simple-audio-card,widgets = 47 + "Microphone", "Mic In", 48 + "Line", "Line In", 49 + "Line", "Line Out"; 50 + 51 + simple-audio-card,routing = 52 + "Line Out", "LOUT", 53 + "Line Out", "ROUT", 54 + "LLINEIN", "Line In", 55 + "RLINEIN", "Line In", 56 + "MICIN", "Mic In"; 57 + 58 + simple-audio-card,format = "i2s"; 59 + simple-audio-card,bitclock-master = <&sound_master2>; 60 + simple-audio-card,frame-master = <&sound_master2>; 61 + 62 + simple-audio-card,cpu { 63 + sound-dai = <&mcbsp2>; 64 + }; 65 + 66 + sound_master2: simple-audio-card,codec { 67 + sound-dai = <&tlv320aic23_2>; 68 + system-clock-frequency = <12000000>; 69 + }; 70 + }; 71 + 72 + expander-keys { 73 + compatible = "gpio-keys-polled"; 74 + poll-interval = <100>; 75 + 76 + record { 77 + label = "Record"; 78 + /* linux,code = <BTN_0>; */ 79 + gpios = <&tca6416_2 15 GPIO_ACTIVE_LOW>; 80 + }; 81 + 82 + play { 83 + label = "Play"; 84 + linux,code = <KEY_PLAY>; 85 + gpios = <&tca6416_2 14 GPIO_ACTIVE_LOW>; 86 + }; 87 + 88 + Stop { 89 + label = "Stop"; 90 + linux,code = <KEY_STOP>; 91 + gpios = <&tca6416_2 13 GPIO_ACTIVE_LOW>; 92 + }; 93 + 94 + fwd { 95 + label = "FWD"; 96 + linux,code = <KEY_FASTFORWARD>; 97 + gpios = <&tca6416_2 12 GPIO_ACTIVE_LOW>; 98 + }; 99 + 100 + rwd { 101 + label = "RWD"; 102 + linux,code = <KEY_REWIND>; 103 + gpios = <&tca6416_2 11 GPIO_ACTIVE_LOW>; 104 + }; 105 + 106 + shift { 107 + label = "Shift"; 108 + linux,code = <KEY_LEFTSHIFT>; 109 + gpios = <&tca6416_2 10 GPIO_ACTIVE_LOW>; 110 + }; 111 + 112 + Mode { 113 + label = "Mode"; 114 + linux,code = <BTN_MODE>; 115 + gpios = <&tca6416_2 9 GPIO_ACTIVE_LOW>; 116 + }; 117 + 118 + Menu { 119 + label = "Menu"; 120 + linux,code = <KEY_MENU>; 121 + gpios = <&tca6416_2 8 GPIO_ACTIVE_LOW>; 122 + }; 123 + 124 + Up { 125 + label = "Up"; 126 + linux,code = <KEY_UP>; 127 + gpios = <&tca6416_2 7 GPIO_ACTIVE_LOW>; 128 + }; 129 + 130 + Down { 131 + label = "Down"; 132 + linux,code = <KEY_DOWN>; 133 + gpios = <&tca6416_2 6 GPIO_ACTIVE_LOW>; 134 + }; 135 + }; 136 + }; 137 + 138 + &i2c2 { 139 + /* Audio codecs */ 140 + tlv320aic23_1: codec@1a { 141 + compatible = "ti,tlv320aic23"; 142 + reg = <0x1a>; 143 + #sound-dai-cells= <0>; 144 + status = "okay"; 145 + }; 146 + 147 + tlv320aic23_2: codec@1b { 148 + compatible = "ti,tlv320aic23"; 149 + reg = <0x1b>; 150 + #sound-dai-cells= <0>; 151 + status = "okay"; 152 + }; 153 + }; 154 + 155 + &i2c3 { 156 + /* Audio codecs */ 157 + tlv320aic23_3: codec@1a { 158 + compatible = "ti,tlv320aic23"; 159 + reg = <0x1a>; 160 + #sound-dai-cells= <0>; 161 + status = "okay"; 162 + }; 163 + 164 + /* GPIO Expanders */ 165 + tca6416_2: gpio@20 { 166 + compatible = "ti,tca6416"; 167 + reg = <0x20>; 168 + gpio-controller; 169 + #gpio-cells = <2>; 170 + vcc-supply = <&vdd_io_reg>; 171 + }; 172 + 173 + tca6416_3: gpio@21 { 174 + compatible = "ti,tca6416"; 175 + reg = <0x21>; 176 + gpio-controller; 177 + #gpio-cells = <2>; 178 + vcc-supply = <&vdd_io_reg>; 179 + }; 180 + 181 + /* TVP5146 Analog Video decoder input */ 182 + tvp5146@5c { 183 + compatible = "ti,tvp5146m2"; 184 + reg = <0x5c>; 185 + }; 186 + }; 187 + 188 + &mcbsp1 { 189 + status = "ok"; 190 + #sound-dai-cells = <0>; 191 + pinctrl-names = "default"; 192 + pinctrl-0 = <&mcbsp1_pins>; 193 + }; 194 + 195 + &mcbsp2 { 196 + status = "ok"; 197 + #sound-dai-cells = <0>; 198 + pinctrl-names = "default"; 199 + pinctrl-0 = <&mcbsp2_pins>; 200 + }; 201 + 202 + &omap3_pmx_core { 203 + mcbsp1_pins: pinmux_mcbsp1_pins { 204 + pinctrl-single,pins = < 205 + OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dx */ 206 + OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dr */ 207 + OMAP3_CORE1_IOPAD(0x2196, PIN_INPUT | MUX_MODE0) /* mcbsp_clks.mcbsp1_fsx */ 208 + OMAP3_CORE1_IOPAD(0x2198, PIN_INPUT | MUX_MODE0) /* mcbsp1_clkx.mcbsp1_clkx */ 209 + >; 210 + }; 211 + 212 + mcbsp2_pins: pinmux_mcbsp2_pins { 213 + pinctrl-single,pins = < 214 + OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx.mcbsp2_fsx */ 215 + OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0) /* mcbsp2_clkx.mcbsp2_clkx */ 216 + OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0) /* mcbsp2_dr.mcbsp2.dr */ 217 + OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0) /* mcbsp2_dx.mcbsp2_dx */ 218 + >; 219 + }; 220 + };
+1
arch/arm/boot/dts/am3517-evm.dts
··· 9 9 10 10 #include "am3517.dtsi" 11 11 #include "am3517-som.dtsi" 12 + #include "am3517-evm-ui.dtsi" 12 13 #include <dt-bindings/input/input.h> 13 14 14 15 / {