This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3359: TLV320AIC3104 codec issue

Part Number: AM3359
Other Parts Discussed in Thread: TLV320AIC3104, LM4871

Tool/software: Linux

Hello,

I use beaglebone black and audio cape with TLV320AIC3104 audio codec & LM4871 amp.

but, i make dts file for audio, but there is no sound from the amp when "aplay sound.wav".

Please help me and check my dts file.

Below is my dts file:

/*
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.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.
 */
/dts-v1/;
#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"
#include <dt-bindings/display/tda998x.h>
/ {
model = "TI AM335x BeagleBone Black";
compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
sound {
compatible = "ti,da830-evm-audio";
ti,model = "DA830 EVM";
ti,audio-codec = <&tlv320aic3104>;
ti,mcasp-controller = <&mcasp0>;
ti,codec-clock-rate = <12000000>;
ti,audio-routing =
"Headphone Jack",       "HPLOUT",
"Headphone Jack",       "HPROUT";
};
};
&ldo3_reg {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
&mmc1 {
vmmc-supply = <&vmmcsd_fixed>;
};
&mmc2 {
vmmc-supply = <&vmmcsd_fixed>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_pins>;
bus-width = <8>;
status = "okay";
};
&cpu0_opp_table {
/*
* All PG 2.0 silicon may not support 1GHz but some of the early
* BeagleBone Blacks have PG 2.0 silicon which is guaranteed
* to support 1GHz OPP so enable it for PG 2.0 on this board.
*/
oppnitro@1000000000 {
opp-supported-hw = <0x06 0x0100>;
};
};
&am33xx_pinmux {
uart1_pins: pinmux_uart1_pins {
pinctrl-single,pins = <
0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
>;
};
i2c2_pins: pinmux_i2c2_pins {
pinctrl-single,pins = <
0x158 0x72 /* i2c2_sda.i2c2_sda */
0x15C 0x72 /* i2c2_scl.i2c2_scl */
>;
};
mcasp0_pins: mcasp0_pins {
pinctrl-single,pins = <
0x1ac 0x00 /* mcasp0_ahclkx, OUTPUT | MODE0 */
0x19c 0x02 /* mcasp0_axr2, OUTPUT | MODE2 */
0x194 0x20 /* mcasp0_fsx, INPUT | MODE0 */
0x198 0x20 /* mcasp0_axr0, INTPUT | MODE0 */
0x190 0x20 /* mcasp0_aclkx, INPUT | MODE0 */
>;
};
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>;
status = "okay";
};
&rtc {
system-power-controller;
};
&mcasp0 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&mcasp0_pins>;
status = "okay";
op-mode = <0>;          /* MCASP_IIS_MODE */
tdm-slots = <2>;
num-serializer = <16>;
serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
1 0 2 0
0 0 0 0
0 0 0 0
0 0 0 0
>;
tx-num-evt = <1>;
rx-num-evt = <1>;
};
&sgx {
status = "okay";
};
&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
status = "okay";
clock-frequency = <400000>;
#address-cells = <1>;
#size-cells = <0>;
tlv320aic3104: tlv320aic3104@1b {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3104";
reg = <0x1b>;
status = "okay";
};
};

Below is my board and audio cape schematic.

  

Below is my board info.

I think my i2c is strange.

below is my i2c1 when my board boot.

blue line is sda. yellow line is scl

Thanks,

boo

  • Hi,

    The software team have been notified. They will respond here.
  • Hi,

    Which kernel (SDK) is this?

    Best Regards,
    Yordan
  • Hi, Yordan
    kernel version is 4.4.32-gadde2ca9f8, And TI folder name is ti-processor-sdk-linux-am335x-evm-03.02.00.05
  • Hi,

    The following statement confuses me:
    below is my i2c1 when my board boot.

    blue line is sda. yellow line is scl


    If that is the case, I don't see your I2C clock toggling... Moreover, when I check your dts file & your schematic, you use I2C1:
    &i2c1 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c2_pins>;
    status = "okay";
    clock-frequency = <400000>;
    #address-cells = <1>;
    #size-cells = <0>;
    tlv320aic3104: tlv320aic3104@1b {
    #sound-dai-cells = <0>;
    compatible = "ti,tlv320aic3104";
    reg = <0x1b>;
    status = "okay";
    };
    };

    And you cofnigure the I2C2 pins (i2c2_scl & i2c2_sda):
    pinctrl-0 = <&i2c2_pins>;

    i2c2_pins: pinmux_i2c2_pins {
    pinctrl-single,pins = <
    0x158 0x72 /* i2c2_sda.i2c2_sda */
    0x15C 0x72 /* i2c2_scl.i2c2_scl */
    >;
    };

    With this you DON'T actually have the i2c1_scl & i2c1_sda muxed on the device pads. Try correcting your pinmux settings.

    Best Regards,
    Yordan
  • Hi,

    First,

    i2c2_pins: pinmux_i2c2_pins {
    pinctrl-single,pins = <
    0x158 0x72 /* i2c2_sda.i2c2_sda */
    0x15C 0x72 /* i2c2_scl.i2c2_scl */
    >;
    };

    is my mistake. it is just comment error. the pinmux setting is ok. 0x158 0x72 is I2C1 sda and 0x15c 0x72 is I2C1 scl

    Below is a modified version of the comment

    i2c1_pins: pinmux_i2c1_pins {
    pinctrl-single,pins = <
    0x158 0x72 /* i2c1_sda.i2c1_sda */
    0x15C 0x72 /* i2c1_scl.i2c1_scl */
    >;
    };

    Second,
    I said wrong.
    "I think my i2c is strange." -> "I think my I2C1 is starge"
    "blue line is sda. yellow line is scl" -> "blue line is I2C1_SDA. yellow line is I2C1_SCL" is correct.

    Finally,
    I can't understand the statement.
    " If that is the case, I don't see your I2C clock toggling"
    What is I2C clock toggling? How do I set I2C clock toggling?

    I use I2C1.

    clock-frequency = <400000>; is clock toggling?

    Thanks,
    Boo
  • Hi,

    " If that is the case, I don't see your I2C clock toggling"
    What is I2C clock toggling? How do I set I2C clock toggling?

    This means that there is no clock on the yellow line, and I thought this might be because of the error I found in the pinmux settings for I2C1. But since this is just a typo, this is NOT the case.

    Have you checked your amixer settings? It is possible that the audio output is muted.

    Best Regards,
    Yordan
  • Hi,

    I can't find any error for I2C1 pinmux setting. This is my dts file for I2C1 and beaglebone black DT offeset.

    MY dts: 


    &am33xx_pinmux {

    i2c1_pins: pinmux_i2c1_pins {

    pinctrl-single,pins = <

    0x158 0x72    /* i2c1_sda.i2c1_sda */
    0x15C 0x72   /* i2c1_scl.i2c1_scl */

    >

    };

    };

    &i2c1 {

    pinctrl-names = "default";
    pinctrl-0 = <&i2c1_pins>;

    status = "okay";
    clock-frequency = <400000>;

    #address-cells = <1>;
    #size-cells = <0>;

    tlv320aic3104: tlv320aic3104@1b {
    #sound-dai-cells = <0>;
    compatible = "ti,tlv320aic3104";
    reg = <0x1b>;
    status = "okay";

    };

    };

    I don't know why the yellow line is not clocked. I set "clock-frequency = <400000>;" for I2C1.. 

    Plus, There is message when I enter "amixer".

    root@am335x-evm:~# amixer
    Simple mixer control 'PCM',0
    Capabilities: pvolume
    Playback channels: Front Left - Front Right
    Limits: Playback 0 - 127
    Mono:
    Front Left: Playback 105 [83%] [-11.00dB]
    Front Right: Playback 105 [83%] [-11.00dB]
    Simple mixer control 'Line',0
    Capabilities: pswitch
    Playback channels: Front Left - Front Right
    Mono:
    Front Left: Playback [on]
    Front Right: Playback [on]
    Simple mixer control 'Line DAC',0
    Capabilities: pvolume
    Playback channels: Front Left - Front Right
    Limits: Playback 0 - 118
    Mono:
    Front Left: Playback 93 [79%] [-12.50dB]
    Front Right: Playback 93 [79%] [-12.50dB]
    Simple mixer control 'Line PGA Bypass',0
    Capabilities: volume
    Playback channels: Front Left - Front Right
    Capture channels: Front Left - Front Right
    Limits: 0 - 118
    Front Left: 92 [78%] [-13.00dB]
    Front Right: 92 [78%] [-13.00dB]
    Simple mixer control 'ADC HPF Cut-off',0
    Capabilities: enum
    Items: 'Disabled' '0.0045xFs' '0.0125xFs' '0.025xFs'
    Item0: 'Disabled'
    Item1: 'Disabled'
    Simple mixer control 'AGC',0
    Capabilities: pswitch
    Playback channels: Front Left - Front Right
    Mono:
    Front Left: Playback [off]
    Front Right: Playback [off]
    Simple mixer control 'De-emphasis',0
    Capabilities: pswitch
    Playback channels: Front Left - Front Right
    Mono:
    Front Left: Playback [off]
    Front Right: Playback [off]
    Simple mixer control 'HP',0
    Capabilities: pswitch
    Playback channels: Front Left - Front Right
    Mono:
    Front Left: Playback [on]
    Front Right: Playback [on]
    Simple mixer control 'HP DAC',0
    Capabilities: pvolume
    Playback channels: Front Left - Front Right
    Limits: Playback 0 - 118
    Mono:
    Front Left: Playback 71 [60%] [-23.50dB]
    Front Right: Playback 71 [60%] [-23.50dB]
    Simple mixer control 'HP PGA Bypass',0
    Capabilities: volume
    Playback channels: Front Left - Front Right
    Capture channels: Front Left - Front Right
    Limits: 0 - 118
    Front Left: 71 [60%] [-23.50dB]
    Front Right: 71 [60%] [-23.50dB]
    Simple mixer control 'HPCOM',0
    Capabilities: pswitch
    Playback channels: Front Left - Front Right
    Mono:
    Front Left: Playback [on]
    Front Right: Playback [on]
    Simple mixer control 'HPCOM DAC',0
    Capabilities: pvolume
    Playback channels: Front Left - Front Right
    Limits: Playback 0 - 118
    Mono:
    Front Left: Playback 71 [60%] [-23.50dB]
    Front Right: Playback 71 [60%] [-23.50dB]
    Simple mixer control 'HPCOM PGA Bypass',0
    Capabilities: volume
    Playback channels: Front Left - Front Right
    Capture channels: Front Left - Front Right
    Limits: 0 - 118
    Front Left: 71 [60%] [-23.50dB]
    Front Right: 71 [60%] [-23.50dB]
    Simple mixer control 'Left AGC Attack time',0
    Capabilities: enum
    Items: '8ms' '11ms' '16ms' '20ms'
    Item0: '8ms'
    Simple mixer control 'Left AGC Decay time',0
    Capabilities: enum
    Items: '100ms' '200ms' '400ms' '500ms'
    Item0: '100ms'
    Simple mixer control 'Left AGC Target level',0
    Capabilities: enum
    Items: '-5.5dB' '-8dB' '-10dB' '-12dB' '-14dB' '-17dB' '-20dB' '-24dB'
    Item0: '-5.5dB'
    Simple mixer control 'Left DAC Mux',0
    Capabilities: enum
    Items: 'DAC_L1' 'DAC_L3' 'DAC_L2'
    Item0: 'DAC_L1'
    Simple mixer control 'Left HP Mixer DACL1',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [on]
    Simple mixer control 'Left HP Mixer DACR1',0
    Capabilities: pvolume pvolume-joined pswitch pswitch-joined
    Playback channels: Mono
    Limits: Playback 0 - 118
    Mono: Playback 118 [100%] [0.00dB] [off]
    Simple mixer control 'Left HP Mixer PGAL Bypass',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Left HP Mixer PGAR Bypass',0
    Capabilities: volume volume-joined pswitch pswitch-joined
    Playback channels: Mono
    Capture channels: Mono
    Limits: 0 - 118
    Mono: 118 [100%] [0.00dB] Playback [off]
    Simple mixer control 'Left HPCOM Mixer DACL1',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [on]
    Simple mixer control 'Left HPCOM Mixer DACR1',0
    Capabilities: pvolume pvolume-joined pswitch pswitch-joined
    Playback channels: Mono
    Limits: Playback 0 - 118
    Mono: Playback 118 [100%] [0.00dB] [off]
    Simple mixer control 'Left HPCOM Mixer PGAL Bypass',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Left HPCOM Mixer PGAR Bypass',0
    Capabilities: volume volume-joined pswitch pswitch-joined
    Playback channels: Mono
    Capture channels: Mono
    Limits: 0 - 118
    Mono: 118 [100%] [0.00dB] Playback [off]
    Simple mixer control 'Left HPCOM Mux',0
    Capabilities: enum
    Items: 'differential of HPLOUT' 'constant VCM' 'single-ended'
    Item0: 'differential of HPLOUT'
    Simple mixer control 'Left Line Mixer DACL1',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [on]
    Simple mixer control 'Left Line Mixer DACR1',0
    Capabilities: pvolume pvolume-joined pswitch pswitch-joined
    Playback channels: Mono
    Limits: Playback 0 - 118
    Mono: Playback 1 [1%] [-58.50dB] [off]
    Simple mixer control 'Left Line Mixer PGAL Bypass',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Left Line Mixer PGAR Bypass',0
    Capabilities: volume volume-joined pswitch pswitch-joined
    Playback channels: Mono
    Capture channels: Mono
    Limits: 0 - 118
    Mono: 118 [100%] [0.00dB] Playback [off]
    Simple mixer control 'Left Line1L Mux',0
    Capabilities: enum
    Items: 'single-ended' 'differential'
    Item0: 'single-ended'
    Simple mixer control 'Left Line1R Mux',0
    Capabilities: enum
    Items: 'single-ended' 'differential'
    Item0: 'single-ended'
    Simple mixer control 'Left PGA Mixer Line1L',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [on]
    Simple mixer control 'Left PGA Mixer Line1R',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Left PGA Mixer Mic2L',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Left PGA Mixer Mic2R',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Output Driver Power-On time',0
    Capabilities: enum
    Items: '0us' '10us' '100us' '1ms' '10ms' '50ms' '100ms' '200ms' '400ms' '800ms' '2s' '4s'
    Item0: '0us'
    Simple mixer control 'Output Driver Ramp-up step',0
    Capabilities: enum
    Items: '0ms' '1ms' '2ms' '4ms'
    Item0: '0ms'
    Simple mixer control 'PGA',0
    Capabilities: cvolume cswitch
    Capture channels: Front Left - Front Right
    Limits: Capture 0 - 119
    Front Left: Capture 32 [27%] [16.00dB] [on]
    Front Right: Capture 32 [27%] [16.00dB] [on]
    Simple mixer control 'Right AGC Attack time',0
    Capabilities: enum
    Items: '8ms' '11ms' '16ms' '20ms'
    Item0: '8ms'
    Simple mixer control 'Right AGC Decay time',0
    Capabilities: enum
    Items: '100ms' '200ms' '400ms' '500ms'
    Item0: '100ms'
    Simple mixer control 'Right AGC Target level',0
    Capabilities: enum
    Items: '-5.5dB' '-8dB' '-10dB' '-12dB' '-14dB' '-17dB' '-20dB' '-24dB'
    Item0: '-5.5dB'
    Simple mixer control 'Right DAC Mux',0
    Capabilities: enum
    Items: 'DAC_R1' 'DAC_R3' 'DAC_R2'
    Item0: 'DAC_R1'
    Simple mixer control 'Right HP Mixer DACL1',0
    Capabilities: pvolume pvolume-joined pswitch pswitch-joined
    Playback channels: Mono
    Limits: Playback 0 - 118
    Mono: Playback 118 [100%] [0.00dB] [off]
    Simple mixer control 'Right HP Mixer DACR1',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [on]
    Simple mixer control 'Right HP Mixer PGAL Bypass',0
    Capabilities: volume volume-joined pswitch pswitch-joined
    Playback channels: Mono
    Capture channels: Mono
    Limits: 0 - 118
    Mono: 118 [100%] [0.00dB] Playback [off]
    Simple mixer control 'Right HP Mixer PGAR Bypass',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Right HPCOM Mixer DACL1',0
    Capabilities: pvolume pvolume-joined pswitch pswitch-joined
    Playback channels: Mono
    Limits: Playback 0 - 118
    Mono: Playback 118 [100%] [0.00dB] [off]
    Simple mixer control 'Right HPCOM Mixer DACR1',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [on]
    Simple mixer control 'Right HPCOM Mixer PGAL Bypass',0
    Capabilities: volume volume-joined pswitch pswitch-joined
    Playback channels: Mono
    Capture channels: Mono
    Limits: 0 - 118
    Mono: 118 [100%] [0.00dB] Playback [off]
    Simple mixer control 'Right HPCOM Mixer PGAR Bypass',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Right HPCOM Mux',0
    Capabilities: enum
    Items: 'differential of HPROUT' 'constant VCM' 'single-ended' 'differential of HPLCOM' 'external feedback'
    Item0: 'differential of HPROUT'
    Simple mixer control 'Right Line Mixer DACL1',0
    Capabilities: pvolume pvolume-joined pswitch pswitch-joined
    Playback channels: Mono
    Limits: Playback 0 - 118
    Mono: Playback 118 [100%] [0.00dB] [off]
    Simple mixer control 'Right Line Mixer DACR1',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [on]
    Simple mixer control 'Right Line Mixer PGAL Bypass',0
    Capabilities: volume volume-joined pswitch pswitch-joined
    Playback channels: Mono
    Capture channels: Mono
    Limits: 0 - 118
    Mono: 118 [100%] [0.00dB] Playback [off]
    Simple mixer control 'Right Line Mixer PGAR Bypass',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Right Line1L Mux',0
    Capabilities: enum
    Items: 'single-ended' 'differential'
    Item0: 'single-ended'
    Simple mixer control 'Right Line1R Mux',0
    Capabilities: enum
    Items: 'single-ended' 'differential'
    Item0: 'single-ended'
    Simple mixer control 'Right PGA Mixer Line1L',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Right PGA Mixer Line1R',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [on]
    Simple mixer control 'Right PGA Mixer Mic2L',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]
    Simple mixer control 'Right PGA Mixer Mic2R',0
    Capabilities: pswitch pswitch-joined
    Playback channels: Mono
    Mono: Playback [off]

  • Hi, Yordan

    I modified my dts file and i2c1 is works well.

    But the mclk and bclk , dout is not work..i can't see any change.

    there is my dts file:

    /*
     * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.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.
     */
    /dts-v1/;
    #include "am33xx.dtsi"
    #include "am335x-bone-common.dtsi"
    #include <dt-bindings/display/tda998x.h>
    / {
       model = "TI AM335x BeagleBone Black";
       compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
          backlight {
               compatible      = "pwm-backlight";
                pwms = <&ehrpwm1 0 500000 0>;
                brightness-levels = <0 58 61 66 75 90 125 170 255>;
                default-brightness-level = <8>;
          };
          panel {
                compatible = "ti,tilcdc,panel";
                pinctrl-names = "default";
                pinctrl-0 = <&lcd_pins_default>;
                status = "okay";
          panel-info {
             ac-bias      = <255>;
             ac-bias-intrpt   = <0>;
             dma-burst-sz   = <16>;
             bpp      = <16>;
             fdd      = <0x80>;
             sync-edge   = <0>;
             sync-ctrl   = <1>;
             raster-order   = <0>;
             fifo-th      = <0>;
          };
          display-timings {
             480x272 {
                hactive      = <480>;
                vactive      = <272>;
                hback-porch   = <43>;
                hfront-porch   = <8>;
                hsync-len   = <4>;
                vback-porch   = <12>;
                vfront-porch   = <4>;
                vsync-len   = <10>;
                clock-frequency = <9000000>;
                hsync-active   = <0>;
                vsync-active   = <0>;
             };
          };
       };
    };
    &ldo3_reg {
       regulator-min-microvolt = <1800000>;
       regulator-max-microvolt = <1800000>;
       regulator-always-on;
    };
    &mmc1 {
       vmmc-supply = <&vmmcsd_fixed>;
    };
    &mmc2 {
       vmmc-supply = <&vmmcsd_fixed>;
       pinctrl-names = "default";
       pinctrl-0 = <&emmc_pins>;
       bus-width = <8>;
       status = "okay";
    };
    &cpu0_opp_table {
       /*
        * All PG 2.0 silicon may not support 1GHz but some of the early
        * BeagleBone Blacks have PG 2.0 silicon which is guaranteed
        * to support 1GHz OPP so enable it for PG 2.0 on this board.
        */
       oppnitro@1000000000 {
          opp-supported-hw = <0x06 0x0100>;
       };
    };
    &am33xx_pinmux {
       uart1_pins: pinmux_uart1_pins {
          pinctrl-single,pins = <
             0x180 (PIN_INPUT_PULLUP | MUX_MODE0)   /* uart1_rxd.uart1_rxd */
             0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)   /* uart1_txd.uart1_txd */
          >;
       };
       i2c1_pins: pinmux_i2c1_pins {
          pinctrl-single,pins = <
             0x158 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE2)   /* spi0_d1.i2c1_sda */
             0x15c (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE2)   /* spi0_cs0.i2c1_scl */
          >;
       };
       mcasp0_pins: mcasp0_pins {
          pinctrl-single,pins = <
             0x190 (PIN_INPUT_PULLDOWN | MUX_MODE0)    /*mcasp0_aclkx*/
             0x194 (PIN_INPUT_PULLDOWN | MUX_MODE0)    /*mcasp0_fsx*/
             0x198 (PIN_INPUT_PULLDOWN | MUX_MODE0)    /*mcasp0_axr0*/
             0x19c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)    /*mcasp0_axr2*/
             0x1ac (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /*mcasp0_ahclkx*/
          >;
       };   
       lcd_pins_default: lcd_pins_default {
          pinctrl-single,pins = <
             0xa0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data0.lcd_data0 */
             0xa4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data1.lcd_data1 */
             0xa8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data2.lcd_data2 */
             0xac (PIN_OUTPUT | MUX_MODE0)   /* lcd_data3.lcd_data3 */
             0xb0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data4.lcd_data4 */
             0xb4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data5.lcd_data5 */
             0xb8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data6.lcd_data6 */
             0xbc (PIN_OUTPUT | MUX_MODE0)   /* lcd_data7.lcd_data7 */
             0xc0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data8.lcd_data8 */
             0xc4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data9.lcd_data9 */
             0xc8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data10.lcd_data10 */
             0xcc (PIN_OUTPUT | MUX_MODE0)   /* lcd_data11.lcd_data11 */
             0xd0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data12.lcd_data12 */
             0xd4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data13.lcd_data13 */
             0xd8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data14.lcd_data14 */
             0xdc (PIN_OUTPUT | MUX_MODE0)   /* lcd_data15.lcd_data15 */
             0xe0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_vsync.lcd_vsync */
             0xe4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_hsync.lcd_hsync */
             0xe8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_pclk.lcd_pclk */
             0xec (PIN_OUTPUT | MUX_MODE0)   /* lcd_ac_bias_en.lcd_ac_bias_en */
             0x1a4 (PIN_OUTPUT_PULLUP | MUX_MODE7)   /* mcasp0_fsr.gpio3[19] */
          >;
       };
       lcd_cape_pins: lcd_cape_pins {
             pinctrl-single,pins = <
                   0x28 0x27    /*T6 button enable, INPUT | MODE7 b*/
             >;
          };
       pwm_bl_pins: pinmux_pwm_bl_pins {
          pinctrl-single,pins = <
                   0x48 0x06       /* gpmc_a2.ehrpwm1a, OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT */
                >;
          };
    };
    &lcdc {
       status = "okay";
       blue-and-red-wiring = "crossed";
    };
    &uart1 {
       pinctrl-names = "default";
       pinctrl-0 = <&uart1_pins>;
       status = "okay";
    };
    &i2c1 {
       pinctrl-names = "default";
       pinctrl-0 = <&i2c1_pins>;
       status = "okay";
       clock-frequency = <100000>;
       tlv320aic3104: tlv320aic3104@1b {
          #sound-dai-cells = <0>;
          compatible = "ti,tlv320aic3104";
          reg = <0x1b>;
          status = "okay";
       };
    };
    &mcasp0 {
       #sound-dai-cells = <0>;
       pinctrl-names = "default";
       pinctrl-0 = <&mcasp0_pins>;
       status = "okay";
       op-mode = <0>;          /* MCASP_IIS_MODE */
       tdm-slots = <2>;
       num-serializer = <16>;
       /* 4 serializers */
       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
          2 0 1 0   /* AXR0 AXR1 AXR2 AXR3 */
          0 0 0 0
          0 0 0 0
          0 0 0 0
       >;
       tx-num-evt = <1>;
       rx-num-evt = <1>;
    };
    &rtc {
       system-power-controller;
    };
    &sgx {
       status = "okay";
    };
    &epwmss1 {
       status = "okay";
       ehrpwm1: pwm@48302200 {
          status = "okay";
          pinctrl-names = "default";   
          pinctrl-0 = <&pwm_bl_pins>;   
       };
    };
    &tscadc {
            status = "okay";
            tsc {
                    ti,wires = <4>;
                    ti,x-plate-resistance = <200>;
                    ti,coordinate-readouts = <5>;
                    ti,wire-config = <0x00 0x11 0x22 0x33>;
                ti,charge-delay = <0x800>;
            };
          adc {
                ti,adc-channels = <4 5 6>;
          };
    };
    / { 
        sound {
         status = "okay";
          compatible = "ti,da830-evm-audio";
          ti,model = "TI BeagleBone Black";
          ti,audio-codec = <&tlv320aic3104>;
          ti,mcasp-controller = <&mcasp0>;
          ti,codec-clock-rate = <12000000>;
          ti,audio-routing =
             "Headphone Jack",       "HPLOUT",
             "Headphone Jack",       "HPROUT";
       };
    };
  • Hi,

    Have a look at the following wiki:
    processors.wiki.ti.com/.../Sitara_Linux_Audio_DAC_Example

    Carefully inspect your settings for:
    DAI Link Structure --> especially the .dai_fmt parameter, see if the settings match your use case:
    codec is clock and frame slave
    codec is clock master and frame slave
    codec is clock and frame master

    Best Regards,
    Yordan