|
@@ -0,0 +1,220 @@
|
|
|
+/*
|
|
|
+ * Copyright (C) 2018 Logic PD, Inc - http://www.logicpd.com/
|
|
|
+ *
|
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
|
+ * it under the terms of the GNU General Public License version 2 as
|
|
|
+ * published by the Free Software Foundation.
|
|
|
+ */
|
|
|
+
|
|
|
+#include <dt-bindings/input/input.h>
|
|
|
+
|
|
|
+/ {
|
|
|
+ codec1 {
|
|
|
+ compatible = "simple-audio-card";
|
|
|
+ simple-audio-card,name = "tlv320aic23-hifi";
|
|
|
+
|
|
|
+ simple-audio-card,widgets =
|
|
|
+ "Microphone", "Mic In",
|
|
|
+ "Line", "Line In",
|
|
|
+ "Line", "Line Out";
|
|
|
+
|
|
|
+ simple-audio-card,routing =
|
|
|
+ "Line Out", "LOUT",
|
|
|
+ "Line Out", "ROUT",
|
|
|
+ "LLINEIN", "Line In",
|
|
|
+ "RLINEIN", "Line In",
|
|
|
+ "MICIN", "Mic In";
|
|
|
+
|
|
|
+ simple-audio-card,format = "i2s";
|
|
|
+ simple-audio-card,bitclock-master = <&sound_master>;
|
|
|
+ simple-audio-card,frame-master = <&sound_master>;
|
|
|
+
|
|
|
+ simple-audio-card,cpu {
|
|
|
+ sound-dai = <&mcbsp1>;
|
|
|
+ };
|
|
|
+
|
|
|
+ sound_master: simple-audio-card,codec {
|
|
|
+ sound-dai = <&tlv320aic23_1>;
|
|
|
+ system-clock-frequency = <12000000>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ codec2 {
|
|
|
+ compatible = "simple-audio-card";
|
|
|
+ simple-audio-card,name = "tlv320aic23-hifi";
|
|
|
+
|
|
|
+ simple-audio-card,widgets =
|
|
|
+ "Microphone", "Mic In",
|
|
|
+ "Line", "Line In",
|
|
|
+ "Line", "Line Out";
|
|
|
+
|
|
|
+ simple-audio-card,routing =
|
|
|
+ "Line Out", "LOUT",
|
|
|
+ "Line Out", "ROUT",
|
|
|
+ "LLINEIN", "Line In",
|
|
|
+ "RLINEIN", "Line In",
|
|
|
+ "MICIN", "Mic In";
|
|
|
+
|
|
|
+ simple-audio-card,format = "i2s";
|
|
|
+ simple-audio-card,bitclock-master = <&sound_master2>;
|
|
|
+ simple-audio-card,frame-master = <&sound_master2>;
|
|
|
+
|
|
|
+ simple-audio-card,cpu {
|
|
|
+ sound-dai = <&mcbsp2>;
|
|
|
+ };
|
|
|
+
|
|
|
+ sound_master2: simple-audio-card,codec {
|
|
|
+ sound-dai = <&tlv320aic23_2>;
|
|
|
+ system-clock-frequency = <12000000>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ expander-keys {
|
|
|
+ compatible = "gpio-keys-polled";
|
|
|
+ poll-interval = <100>;
|
|
|
+
|
|
|
+ record {
|
|
|
+ label = "Record";
|
|
|
+ /* linux,code = <BTN_0>; */
|
|
|
+ gpios = <&tca6416_2 15 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+
|
|
|
+ play {
|
|
|
+ label = "Play";
|
|
|
+ linux,code = <KEY_PLAY>;
|
|
|
+ gpios = <&tca6416_2 14 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+
|
|
|
+ Stop {
|
|
|
+ label = "Stop";
|
|
|
+ linux,code = <KEY_STOP>;
|
|
|
+ gpios = <&tca6416_2 13 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+
|
|
|
+ fwd {
|
|
|
+ label = "FWD";
|
|
|
+ linux,code = <KEY_FASTFORWARD>;
|
|
|
+ gpios = <&tca6416_2 12 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+
|
|
|
+ rwd {
|
|
|
+ label = "RWD";
|
|
|
+ linux,code = <KEY_REWIND>;
|
|
|
+ gpios = <&tca6416_2 11 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+
|
|
|
+ shift {
|
|
|
+ label = "Shift";
|
|
|
+ linux,code = <KEY_LEFTSHIFT>;
|
|
|
+ gpios = <&tca6416_2 10 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+
|
|
|
+ Mode {
|
|
|
+ label = "Mode";
|
|
|
+ linux,code = <BTN_MODE>;
|
|
|
+ gpios = <&tca6416_2 9 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+
|
|
|
+ Menu {
|
|
|
+ label = "Menu";
|
|
|
+ linux,code = <KEY_MENU>;
|
|
|
+ gpios = <&tca6416_2 8 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+
|
|
|
+ Up {
|
|
|
+ label = "Up";
|
|
|
+ linux,code = <KEY_UP>;
|
|
|
+ gpios = <&tca6416_2 7 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+
|
|
|
+ Down {
|
|
|
+ label = "Down";
|
|
|
+ linux,code = <KEY_DOWN>;
|
|
|
+ gpios = <&tca6416_2 6 GPIO_ACTIVE_LOW>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+&i2c2 {
|
|
|
+ /* Audio codecs */
|
|
|
+ tlv320aic23_1: codec@1a {
|
|
|
+ compatible = "ti,tlv320aic23";
|
|
|
+ reg = <0x1a>;
|
|
|
+ #sound-dai-cells= <0>;
|
|
|
+ status = "okay";
|
|
|
+ };
|
|
|
+
|
|
|
+ tlv320aic23_2: codec@1b {
|
|
|
+ compatible = "ti,tlv320aic23";
|
|
|
+ reg = <0x1b>;
|
|
|
+ #sound-dai-cells= <0>;
|
|
|
+ status = "okay";
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+&i2c3 {
|
|
|
+ /* Audio codecs */
|
|
|
+ tlv320aic23_3: codec@1a {
|
|
|
+ compatible = "ti,tlv320aic23";
|
|
|
+ reg = <0x1a>;
|
|
|
+ #sound-dai-cells= <0>;
|
|
|
+ status = "okay";
|
|
|
+ };
|
|
|
+
|
|
|
+ /* GPIO Expanders */
|
|
|
+ tca6416_2: gpio@20 {
|
|
|
+ compatible = "ti,tca6416";
|
|
|
+ reg = <0x20>;
|
|
|
+ gpio-controller;
|
|
|
+ #gpio-cells = <2>;
|
|
|
+ vcc-supply = <&vdd_io_reg>;
|
|
|
+ };
|
|
|
+
|
|
|
+ tca6416_3: gpio@21 {
|
|
|
+ compatible = "ti,tca6416";
|
|
|
+ reg = <0x21>;
|
|
|
+ gpio-controller;
|
|
|
+ #gpio-cells = <2>;
|
|
|
+ vcc-supply = <&vdd_io_reg>;
|
|
|
+ };
|
|
|
+
|
|
|
+ /* TVP5146 Analog Video decoder input */
|
|
|
+ tvp5146@5c {
|
|
|
+ compatible = "ti,tvp5146m2";
|
|
|
+ reg = <0x5c>;
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+&mcbsp1 {
|
|
|
+ status = "ok";
|
|
|
+ #sound-dai-cells = <0>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&mcbsp1_pins>;
|
|
|
+};
|
|
|
+
|
|
|
+&mcbsp2 {
|
|
|
+ status = "ok";
|
|
|
+ #sound-dai-cells = <0>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&mcbsp2_pins>;
|
|
|
+};
|
|
|
+
|
|
|
+&omap3_pmx_core {
|
|
|
+ mcbsp1_pins: pinmux_mcbsp1_pins {
|
|
|
+ pinctrl-single,pins = <
|
|
|
+ OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dx */
|
|
|
+ OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dr */
|
|
|
+ OMAP3_CORE1_IOPAD(0x2196, PIN_INPUT | MUX_MODE0) /* mcbsp_clks.mcbsp1_fsx */
|
|
|
+ OMAP3_CORE1_IOPAD(0x2198, PIN_INPUT | MUX_MODE0) /* mcbsp1_clkx.mcbsp1_clkx */
|
|
|
+ >;
|
|
|
+ };
|
|
|
+
|
|
|
+ mcbsp2_pins: pinmux_mcbsp2_pins {
|
|
|
+ pinctrl-single,pins = <
|
|
|
+ OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx.mcbsp2_fsx */
|
|
|
+ OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0) /* mcbsp2_clkx.mcbsp2_clkx */
|
|
|
+ OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0) /* mcbsp2_dr.mcbsp2.dr */
|
|
|
+ OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0) /* mcbsp2_dx.mcbsp2_dx */
|
|
|
+ >;
|
|
|
+ };
|
|
|
+};
|