162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2018 Logic PD, Inc - https://www.logicpd.com/ 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <dt-bindings/input/input.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci/ { 962306a36Sopenharmony_ci codec1 { 1062306a36Sopenharmony_ci compatible = "simple-audio-card"; 1162306a36Sopenharmony_ci simple-audio-card,name = "tlv320aic23-hifi"; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci simple-audio-card,widgets = 1462306a36Sopenharmony_ci "Microphone", "Mic In", 1562306a36Sopenharmony_ci "Line", "Line In", 1662306a36Sopenharmony_ci "Line", "Line Out"; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci simple-audio-card,routing = 1962306a36Sopenharmony_ci "Line Out", "LOUT", 2062306a36Sopenharmony_ci "Line Out", "ROUT", 2162306a36Sopenharmony_ci "LLINEIN", "Line In", 2262306a36Sopenharmony_ci "RLINEIN", "Line In", 2362306a36Sopenharmony_ci "MICIN", "Mic In"; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci simple-audio-card,format = "i2s"; 2662306a36Sopenharmony_ci simple-audio-card,bitclock-master = <&sound_master>; 2762306a36Sopenharmony_ci simple-audio-card,frame-master = <&sound_master>; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci simple-audio-card,cpu { 3062306a36Sopenharmony_ci sound-dai = <&mcbsp1>; 3162306a36Sopenharmony_ci }; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci sound_master: simple-audio-card,codec { 3462306a36Sopenharmony_ci sound-dai = <&tlv320aic23_1>; 3562306a36Sopenharmony_ci system-clock-frequency = <12000000>; 3662306a36Sopenharmony_ci }; 3762306a36Sopenharmony_ci }; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci codec2 { 4062306a36Sopenharmony_ci compatible = "simple-audio-card"; 4162306a36Sopenharmony_ci simple-audio-card,name = "tlv320aic23-hifi"; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci simple-audio-card,widgets = 4462306a36Sopenharmony_ci "Microphone", "Mic In", 4562306a36Sopenharmony_ci "Line", "Line In", 4662306a36Sopenharmony_ci "Line", "Line Out"; 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci simple-audio-card,routing = 4962306a36Sopenharmony_ci "Line Out", "LOUT", 5062306a36Sopenharmony_ci "Line Out", "ROUT", 5162306a36Sopenharmony_ci "LLINEIN", "Line In", 5262306a36Sopenharmony_ci "RLINEIN", "Line In", 5362306a36Sopenharmony_ci "MICIN", "Mic In"; 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci simple-audio-card,format = "i2s"; 5662306a36Sopenharmony_ci simple-audio-card,bitclock-master = <&sound_master2>; 5762306a36Sopenharmony_ci simple-audio-card,frame-master = <&sound_master2>; 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci simple-audio-card,cpu { 6062306a36Sopenharmony_ci sound-dai = <&mcbsp2>; 6162306a36Sopenharmony_ci }; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci sound_master2: simple-audio-card,codec { 6462306a36Sopenharmony_ci sound-dai = <&tlv320aic23_2>; 6562306a36Sopenharmony_ci system-clock-frequency = <12000000>; 6662306a36Sopenharmony_ci }; 6762306a36Sopenharmony_ci }; 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci expander-keys { 7062306a36Sopenharmony_ci compatible = "gpio-keys-polled"; 7162306a36Sopenharmony_ci poll-interval = <100>; 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci key-record { 7462306a36Sopenharmony_ci label = "Record"; 7562306a36Sopenharmony_ci /* linux,code = <BTN_0>; */ 7662306a36Sopenharmony_ci gpios = <&tca6416_2 15 GPIO_ACTIVE_LOW>; 7762306a36Sopenharmony_ci }; 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci key-play { 8062306a36Sopenharmony_ci label = "Play"; 8162306a36Sopenharmony_ci linux,code = <KEY_PLAY>; 8262306a36Sopenharmony_ci gpios = <&tca6416_2 14 GPIO_ACTIVE_LOW>; 8362306a36Sopenharmony_ci }; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci key-stop { 8662306a36Sopenharmony_ci label = "Stop"; 8762306a36Sopenharmony_ci linux,code = <KEY_STOP>; 8862306a36Sopenharmony_ci gpios = <&tca6416_2 13 GPIO_ACTIVE_LOW>; 8962306a36Sopenharmony_ci }; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci key-fwd { 9262306a36Sopenharmony_ci label = "FWD"; 9362306a36Sopenharmony_ci linux,code = <KEY_FASTFORWARD>; 9462306a36Sopenharmony_ci gpios = <&tca6416_2 12 GPIO_ACTIVE_LOW>; 9562306a36Sopenharmony_ci }; 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci key-rwd { 9862306a36Sopenharmony_ci label = "RWD"; 9962306a36Sopenharmony_ci linux,code = <KEY_REWIND>; 10062306a36Sopenharmony_ci gpios = <&tca6416_2 11 GPIO_ACTIVE_LOW>; 10162306a36Sopenharmony_ci }; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci key-shift { 10462306a36Sopenharmony_ci label = "Shift"; 10562306a36Sopenharmony_ci linux,code = <KEY_LEFTSHIFT>; 10662306a36Sopenharmony_ci gpios = <&tca6416_2 10 GPIO_ACTIVE_LOW>; 10762306a36Sopenharmony_ci }; 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci key-mode { 11062306a36Sopenharmony_ci label = "Mode"; 11162306a36Sopenharmony_ci linux,code = <BTN_MODE>; 11262306a36Sopenharmony_ci gpios = <&tca6416_2 9 GPIO_ACTIVE_LOW>; 11362306a36Sopenharmony_ci }; 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci key-menu { 11662306a36Sopenharmony_ci label = "Menu"; 11762306a36Sopenharmony_ci linux,code = <KEY_MENU>; 11862306a36Sopenharmony_ci gpios = <&tca6416_2 8 GPIO_ACTIVE_LOW>; 11962306a36Sopenharmony_ci }; 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci key-up { 12262306a36Sopenharmony_ci label = "Up"; 12362306a36Sopenharmony_ci linux,code = <KEY_UP>; 12462306a36Sopenharmony_ci gpios = <&tca6416_2 7 GPIO_ACTIVE_LOW>; 12562306a36Sopenharmony_ci }; 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci key-down { 12862306a36Sopenharmony_ci label = "Down"; 12962306a36Sopenharmony_ci linux,code = <KEY_DOWN>; 13062306a36Sopenharmony_ci gpios = <&tca6416_2 6 GPIO_ACTIVE_LOW>; 13162306a36Sopenharmony_ci }; 13262306a36Sopenharmony_ci }; 13362306a36Sopenharmony_ci}; 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci&i2c2 { 13662306a36Sopenharmony_ci /* Audio codecs */ 13762306a36Sopenharmony_ci tlv320aic23_1: codec@1a { 13862306a36Sopenharmony_ci compatible = "ti,tlv320aic23"; 13962306a36Sopenharmony_ci reg = <0x1a>; 14062306a36Sopenharmony_ci #sound-dai-cells = <0>; 14162306a36Sopenharmony_ci status = "okay"; 14262306a36Sopenharmony_ci }; 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci tlv320aic23_2: codec@1b { 14562306a36Sopenharmony_ci compatible = "ti,tlv320aic23"; 14662306a36Sopenharmony_ci reg = <0x1b>; 14762306a36Sopenharmony_ci #sound-dai-cells = <0>; 14862306a36Sopenharmony_ci status = "okay"; 14962306a36Sopenharmony_ci }; 15062306a36Sopenharmony_ci}; 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci&i2c3 { 15362306a36Sopenharmony_ci /* Audio codecs */ 15462306a36Sopenharmony_ci tlv320aic23_3: codec@1a { 15562306a36Sopenharmony_ci compatible = "ti,tlv320aic23"; 15662306a36Sopenharmony_ci reg = <0x1a>; 15762306a36Sopenharmony_ci #sound-dai-cells = <0>; 15862306a36Sopenharmony_ci status = "okay"; 15962306a36Sopenharmony_ci }; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci /* GPIO Expanders */ 16262306a36Sopenharmony_ci tca6416_2: gpio@20 { 16362306a36Sopenharmony_ci compatible = "ti,tca6416"; 16462306a36Sopenharmony_ci reg = <0x20>; 16562306a36Sopenharmony_ci gpio-controller; 16662306a36Sopenharmony_ci #gpio-cells = <2>; 16762306a36Sopenharmony_ci vcc-supply = <&vdd_io_reg>; 16862306a36Sopenharmony_ci }; 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci tca6416_3: gpio@21 { 17162306a36Sopenharmony_ci compatible = "ti,tca6416"; 17262306a36Sopenharmony_ci reg = <0x21>; 17362306a36Sopenharmony_ci gpio-controller; 17462306a36Sopenharmony_ci #gpio-cells = <2>; 17562306a36Sopenharmony_ci vcc-supply = <&vdd_io_reg>; 17662306a36Sopenharmony_ci }; 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci /* TVP5146 Analog Video decoder input */ 17962306a36Sopenharmony_ci tvp5146@5c { 18062306a36Sopenharmony_ci compatible = "ti,tvp5146m2"; 18162306a36Sopenharmony_ci reg = <0x5c>; 18262306a36Sopenharmony_ci }; 18362306a36Sopenharmony_ci}; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci&mcbsp1 { 18662306a36Sopenharmony_ci status = "okay"; 18762306a36Sopenharmony_ci #sound-dai-cells = <0>; 18862306a36Sopenharmony_ci pinctrl-names = "default"; 18962306a36Sopenharmony_ci pinctrl-0 = <&mcbsp1_pins>; 19062306a36Sopenharmony_ci}; 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci&mcbsp2 { 19362306a36Sopenharmony_ci status = "okay"; 19462306a36Sopenharmony_ci #sound-dai-cells = <0>; 19562306a36Sopenharmony_ci pinctrl-names = "default"; 19662306a36Sopenharmony_ci pinctrl-0 = <&mcbsp2_pins>; 19762306a36Sopenharmony_ci}; 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci&omap3_pmx_core { 20062306a36Sopenharmony_ci mcbsp1_pins: mcbsp1-pins { 20162306a36Sopenharmony_ci pinctrl-single,pins = < 20262306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dx */ 20362306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dr */ 20462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2196, PIN_INPUT | MUX_MODE0) /* mcbsp_clks.mcbsp1_fsx */ 20562306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2198, PIN_INPUT | MUX_MODE0) /* mcbsp1_clkx.mcbsp1_clkx */ 20662306a36Sopenharmony_ci >; 20762306a36Sopenharmony_ci }; 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_ci mcbsp2_pins: mcbsp2-pins { 21062306a36Sopenharmony_ci pinctrl-single,pins = < 21162306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx.mcbsp2_fsx */ 21262306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0) /* mcbsp2_clkx.mcbsp2_clkx */ 21362306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0) /* mcbsp2_dr.mcbsp2.dr */ 21462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0) /* mcbsp2_dx.mcbsp2_dx */ 21562306a36Sopenharmony_ci >; 21662306a36Sopenharmony_ci }; 21762306a36Sopenharmony_ci}; 218