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