--- arch/arm/boot/dts/am335x-boneblack.dts | 106 +++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index d154d3133c16..e52553d144ab 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -11,9 +11,115 @@ #include "am335x-bone-common.dtsi" #include "am335x-boneblack-common.dtsi" +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/sound/tlv320aic31xx-micbias.h> + / { model = "TI AM335x BeagleBone Black"; compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; + + sound { + status = "disabled"; /* Disable default HDMI sound card */ + }; + + sound0: sound0 { + compatible = "simple-audio-card"; + simple-audio-card,name = "BeagleBone-Black-TLV320DAC3101"; + simple-audio-card,widgets = + "Headphone", "Headphone Jack", + "Speaker", "Speaker External"; + simple-audio-card,routing = + "Headphone Jack", "HPL", + "Headphone Jack", "HPR", + "Speaker External", "SPL", + "Speaker External", "SPR"; + simple-audio-card,format = "i2s"; /* Change this to try out different DAI formats */ + simple-audio-card,bitclock-master = <&sound0_codec>; /* Change these to switch clock masters */ + simple-audio-card,frame-master = <&sound0_codec>; + + sound0_cpu: simple-audio-card,cpu { + sound-dai = <&mcasp0>; + clocks = <&clk_mcasp0>; + }; + + sound0_codec: simple-audio-card,codec { + sound-dai = <&tlv320dac3101>; + clocks = <&clkout2_ck>; + }; + }; +}; + +&tda19988 { + status = "disabled"; +}; + +&am33xx_pinmux { + mcasp0_pins: mcasp0_pins { + pinctrl-single,pins = < + AM33XX_IOPAD(0x9ac, PIN_INPUT | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */ + AM33XX_IOPAD(0x990, PIN_INPUT | MUX_MODE0 ) /* mcasp0_aclkx.mcasp0_aclkx */ + AM33XX_IOPAD(0x994, PIN_INPUT | MUX_MODE0 ) /* mcasp0_fsx.mcasp0_fsx */ + AM33XX_IOPAD(0x998, PIN_INPUT | MUX_MODE0 ) /* mcasp0_axr0.mcasp0_axr0 */ + AM33XX_IOPAD(0x9a4, PIN_INPUT | MUX_MODE2 ) /* mcasp0_fsr.mcasp0_axr3 */ + AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.gpio1_27 */ + >; + }; + + tlv320dac3101_default: tlv320dac3101_default { + pinctrl-single,pins = < + AM33XX_IOPAD(0x844, PIN_OUTPUT_PULLUP | MUX_MODE7 ) /* gpmc_a1.gpio1_17 */ + AM33XX_IOPAD(0x878, PIN_INPUT | MUX_MODE7 ) /* gpmc_ben1.gpio1_28 */ + >; + }; +}; + +&sysclkout_pre_ck { + /* + * Switch to a higher-speed clock as a base for clkout2_div_ck other than + * the 32.768Hz default clock that is unusable for a CODEC. Possible + * options are clk_32768_ck, l3_gclk, dpll_ddr_m2_ck, dpll_per_m2_ck, and + * lcd_gclk. See am33xx-clocks.dtsi for more info. + */ + assigned-clocks = <&sysclkout_pre_ck>; + assigned-clock-parents = <&lcd_gclk>; +}; + +&clkout2_div_ck { + assigned-clocks = <&clkout2_div_ck>; + assigned-clock-rates = <12000000>; /* Change this to try different CODEC MCLK speeds */ +}; + +&mcasp0 { + #sound-dai-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&mcasp0_pins>; + + status = "okay"; + + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + serial-dir = < 1 0 0 0 >; /* 0: INACTIVE, 1: TX, 2: RX */ + tx-num-evt = <32>; + rx-num-evt = <32>; +}; + +&i2c2 { + tlv320dac3101: tlv320dac3101@18 { + #sound-dai-cells = <0>; + compatible = "ti,tlv320dac3101"; + reg = <0x18>; + + pinctrl-names = "default"; + pinctrl-0 = <&tlv320dac3101_default>; + + interrupt-parent = <&gpio1>; + interrupts = <28 IRQ_TYPE_LEVEL_HIGH>; + + reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; + + ai31xx-micbias-vg = <MICBIAS_2_0V>; + }; }; &cpu0_opp_table { -- 2.15.0