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.

AM3352 MCASP0音频配置问题

Other Parts Discussed in Thread: AM3352, TLV320AIC3106, PCA9539, TPS65910, TFP410

硬件环境:

 CPU:AM3352

 Codec:TLV320AIC3106IRGZR

 

硬件连接:

Codec管脚                                  |     CPU管脚
--------------------------------------- ---------------------------------------
AM335X_AUDA_MCLK      |     XDMA_EVENT_INTR0
AM335X_AUDA_FSX         |     MCASP0_FSX 
AM335X_AUDA_BCLK       |     MCASP0_ACLKX
AM335X_AUDA_DIN          |     MCASP0_AXR0
AM335X_AUDA_DOUT      |     MCASP0_AXR1

AM335X_I2C0_SCL           |      I2C0_SCL
AM335X_I2C0_SDA           |     I2C0_SDA 
--------------------------------------------------------------------------------

部分原理图如下:

设备树文件如下:

/*
* 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.
*/

/*
* AM335x Starter Kit
* www.ti.com/.../tmdssk3358
*/

/dts-v1/;

#include "am33xx.dtsi"
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
model = "TI AM335x EVM-SK";
compatible = "ti,am335x-evmsk", "ti,am33xx";

cpus {
cpu@0 {
cpu0-supply = <&vdd1_reg>;
};
};

memory {
device_type = "memory";
reg = <0x80000000 0x10000000>; /* 256 MB */
};

chosen { 
bootargs = "console=ttyO0,115200n8 root=/dev/ram0"; 
};

vbat: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "vbat";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
};

v3_3d: fixedregulator@1 {
compatible = "regulator-fixed";
regulator-name = "v3_3d";
regulator-boot-on;
};

emmc_vcc: fixedregulator@2 {
compatible = "regulator-fixed";
regulator-name = "emmc_vcc";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
};

matrix_keypad: matrix_keypad@0 { //3X6 keypad
compatible = "gpio-matrix-keypad";
debounce-delay-ms = <5>;
col-scan-delay-us = <2>;

pinctrl-names = "default","sleep";
pinctrl-0 = <&matrix_keypad_default>;
pinctrl-1 = <&matrix_keypad_sleep>;

row-gpios = <&gpio0 21 GPIO_ACTIVE_HIGH /* Bank1, pin21 */
&gpio0 17 GPIO_ACTIVE_HIGH /* Bank1, pin17 */
&gpio0 16 GPIO_ACTIVE_HIGH /* Bank1, pin16 */
&gpio2 21 GPIO_ACTIVE_HIGH>; /* Bank1, pin21 */

col-gpios = <
&gpio2 20 GPIO_ACTIVE_HIGH /* Bank1, pin20 */
&gpio2 19 GPIO_ACTIVE_HIGH /* Bank1, pin1 */
&gpio2 18 GPIO_ACTIVE_HIGH /* Bank1, pin18 */
>;

linux,keymap = <
0x00000003 /*line0,row0 KEY_3 3*/
0x01000006 /*line0,row1 KEY_6 6*/
0x02000009 /*line0,row2 KEY_9 9*/
0x0300000b /*line0,row3 KEY_POUND 11*/

0x00010002 /*line1,row0 KEY_2 2*/
0x01010005 /*line1,row1 KEY_5 5*/
0x02010008 /*line1,row2 KEY_8 8*/
0x03010064 /*line1,row3 KEY_0 0*/

0x00020001 /*line2,row0 KEY_1 1 */
0x01020004 /*line2,row1 KEY_4 4 */
0x02020007 /*line2,row2 KEY_7 7 */
0x0302000a /*line2,row3 KEY_star 10 */ 

>; 
};


vtt_fixed: fixedregulator@3 {
compatible = "regulator-fixed";
regulator-name = "vtt";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <1500000>;
gpio = <&gpio0 7 GPIO_ACTIVE_HIGH>;
regulator-always-on;
regulator-boot-on;
enable-active-high;
};


SD_VCC: fixedregulator@4 {
compatible = "regulator-fixed";
regulator-name = "SD_VCC";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio1 14 0>;
regulator-boot-on;
enable-active-high;
regulator-bootenable-active-high;
vin-supply=<&vbat>;
};

sound {
compatible = "ti,da830-evm-audio";
ti,model = "AM335x-EVMSK";
ti,audio-codec = <&tlv320aic3106>;
ti,mcasp-controller = <&mcasp0>;
ti,codec-clock-rate = <24000000>;
ti,audio-routing =
"Line Out", "LLOUT",
"Line Out", "RLOUT",
"LINE1L", "Line In";
};

//pps {
// compatible = "pps-gpio";
// gpios = <&gpio2 2 0>;

// assert-falling-edge;
//};


};


&am33xx_pinmux {
pinctrl-names = "default";
pinctrl-0 = <&myglue2_pins &ddr3_vtt_toggle>;

ddr3_vtt_toggle: ddr3_vtt_toggle {
pinctrl-single,pins = <
0x164 (PIN_OUTPUT | MUX_MODE7) /* ecap0_in_pwm0_out.gpio0_7 */
>;
};

matrix_keypad_default: matrix_keypad_default {
pinctrl-single,pins = <

0x13c ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (L15) gmii1_rxd1.gpio2_20 */
0x138 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (L16) gmii1_rxd2.gpio2_19 */
0x134 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (L17) gmii1_rxd3.gpio2_18 */

0x124 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K16) gmii1_txd1.gpio0_21 */
0x120 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K15) gmii1_txd2.gpio0_17 */
0x11c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (J18) gmii1_txd3.gpio0_16 */
0x140 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (M16) gmii1_rxd0.gpio2_21 */

0x130 ( PIN_INPUT_PULLUP | MUX_MODE7 ) /* (L18) gmii1_rxclk.gpio3_10 */
0x12c ( PIN_INPUT_PULLUP | MUX_MODE7 ) /* (K18) gmii1_txclk.gpio3_9 */
0x114 ( PIN_INPUT_PULLUP | MUX_MODE7 ) /* (J16) gmii1_txen.gpio3_3 */
>;
};

matrix_keypad_sleep: matrix_keypad_sleep {
pinctrl-single,pins = <

0x13c ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (L15) gmii1_rxd1.gpio2_20 */
0x138 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (L16) gmii1_rxd2.gpio2_1 */
0x134 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (L17) gmii1_rxd3.gpio2_18 */

0x124 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K16) gmii1_txd1.gpio0_21 */
0x120 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K15) gmii1_txd2.gpio0_17 */
0x11c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (J18) gmii1_txd3.gpio0_16 */
0x140 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (M16) gmii1_rxd0.gpio2_21 */
>;
};

myglue2_pins: myglue2_pins_default {
pinctrl-single,pins = <
0x1b8 ( PIN_INPUT | MUX_MODE0 ) /* (A10) nRESETIN_OUT.nRESETIN_OUT */
0x1c0 ( PIN_INPUT | MUX_MODE0 ) /* (B18) nNMI.nNMI */
0x1b0 ( PIN_OUTPUT | MUX_MODE3 ) /* (A15) xdma_event_intr0.clkout1 */
>;
};

i2c0_pins: pinmux_i2c0_pins {
pinctrl-single,pins = <
0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
>;
};

uart0_pins: pinmux_uart0_pins {
pinctrl-single,pins = <
0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
>;
};


cpsw_default: cpsw_default {
pinctrl-single,pins = <
/* Slave 2 */
0x40 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a0.gmii2_txen */
0x44 (PIN_INPUT | MUX_MODE1) /* gpmc_a1.gmii2_rxdv */
0x48 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a2.gmii2_td3 */
0x4c (PIN_OUTPUT | MUX_MODE1) /* gpmc_a3.gmii2_td2 */
0x50 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a4.gmii2_td1 */
0x54 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a5.gmii2_td0 */
0x58 (PIN_INPUT | MUX_MODE1) /* gpmc_a6.gmii2_tclk */
0x5c (PIN_INPUT | MUX_MODE1) /* gpmc_a7.gmii2_rclk */
0x60 (PIN_INPUT | MUX_MODE1) /* gpmc_a8.gmii2_rd3 */
0x64 (PIN_INPUT | MUX_MODE1) /* gpmc_a9.gmii2_rd2 */
0x68 (PIN_INPUT | MUX_MODE1) /* gpmc_a10.gmii2_rd1 */
0x6c (PIN_INPUT | MUX_MODE1) /* gpmc_a11.gmii2_rd0 */ 

>;
};

cpsw_sleep: cpsw_sleep {
pinctrl-single,pins = <
/* Slave 2 reset value*/
0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x58 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x5c (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x60 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) 
>;
};

davinci_mdio_default: davinci_mdio_default {
pinctrl-single,pins = <
/* MDIO */
0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
>;
};

davinci_mdio_sleep: davinci_mdio_sleep {
pinctrl-single,pins = <
/* MDIO reset value */
0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};

mmc1_pins_default: pinmux_mmc1_pins {
pinctrl-single,pins = <
0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
0x0FC (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
>;
};

mmc1_pins_sleep: pinmux_mmc1_pins_sleep {
pinctrl-single,pins = <
0x0F0 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x0F4 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x0F8 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x0FC (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x100 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x104 (PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};

mcasp0_pins: mcasp0_pins {
pinctrl-single,pins = <
0x190 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
0x194 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
0x198 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr0.mcasp0_axr0 */
0x1A8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr1.mcasp0_axr1 */
>;
};


mmc2_pins: pinmux_mmc2_pins {
pinctrl-single,pins = <
0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */
0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* (U8) gpmc_ad4.mmc1_dat4 */
0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* (V8) gpmc_ad5.mmc1_dat5 */
0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* (R9) gpmc_ad6.mmc1_dat6 */
0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* (T9) gpmc_ad7.mmc1_dat7 */
>;
};
};


&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;
status = "okay";
};


&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;

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

tps: tps@2d {
reg = <0x2d>;
};

eeprom: eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
pagesize = <32>;
};

tlv320aic3106: tlv320aic3106@1b {
compatible = "ti,tlv320aic3106";
ai3x-micbias-vg = <2>;
reg = <0x1b>;
status = "okay";

/* Regulators */
AVDD-supply = <&vbat>;
IOVDD-supply = <&vbat>;
DRVDD-supply = <&vbat>;
DVDD-supply = <&vbat>;
};

pca953x:pca953x@74{
compatible = "nxp,pca9539";
reg=<0x74>;
status="okay";
interrupt-parent = <&gpio0>;
interrupts = <29 IRQ_TYPE_EDGE_FALLING>; 
};

};

&usb {
status = "okay";
};

&usb_ctrl_mod {
status = "okay";
};

&usb0_phy {
status = "okay";
};

&usb1_phy {
status = "okay";
};

&usb0 {
status = "okay";
};

&usb1 {
status = "okay";
dr_mode = "host";
};

&cppi41dma {
status = "okay";
};

&wkup_m3_ipc {
ti,needs-vtt-toggle;
ti,vtt-gpio-pin = <7>;
ti,scale-data-fw = "am335x-evm-scale-data.bin";
};

#include "tps65910.dtsi"

&tps {
vcc1-supply = <&vbat>;
vcc2-supply = <&vbat>;
vcc3-supply = <&vbat>;
vcc4-supply = <&vbat>;
vcc5-supply = <&vbat>;
vcc6-supply = <&vbat>;
vcc7-supply = <&vbat>;
vccio-supply = <&vbat>;

regulators {
vrtc_reg: regulator@0 {
regulator-always-on;
};

vio_reg: regulator@1 {
regulator-always-on;
};

vdd1_reg: regulator@2 {
/* VDD_MPU voltage limits 0.95V - 1.325V with +/-4% tolerance */
regulator-name = "vdd_mpu";
regulator-min-microvolt = <912500>;
regulator-max-microvolt = <1378000>;
regulator-boot-on;
regulator-always-on;
};

vdd2_reg: regulator@3 {
/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
regulator-name = "vdd_core";
regulator-min-microvolt = <912500>;
regulator-max-microvolt = <1150000>;
regulator-boot-on;
regulator-always-on;
};

vdd3_reg: regulator@4 {
regulator-always-on;
};

vdig1_reg: regulator@5 {
regulator-always-on;
};

vdig2_reg: regulator@6 {
regulator-always-on;
};

vpll_reg: regulator@7 {
regulator-always-on;
};

vdac_reg: regulator@8 {
regulator-always-on;
};

vaux1_reg: regulator@9 {
regulator-always-on;
};

vaux2_reg: regulator@10 {
regulator-always-on;
};

vaux33_reg: regulator@11 {
regulator-always-on;
};

vmmc_reg: regulator@12 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
};

&mac {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&cpsw_default>;
pinctrl-1 = <&cpsw_sleep>;
//dual_emac = <1>;
status = "okay";
active_slave = <1>; // -> select EMAC1.
};

&davinci_mdio {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&davinci_mdio_default>;
pinctrl-1 = <&davinci_mdio_sleep>;
status = "okay";
};


&cpsw_emac1 {
phy_id = <&davinci_mdio>, <10>;
phy-mode = "mii";
dual_emac_res_vlan = <1>;
};

&mmc1 {
status = "okay";
vmmc-supply = <&SD_VCC>;
bus-width = <4>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mmc1_pins_default>;
pinctrl-1 = <&mmc1_pins_sleep>;
cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
};

&sham {
status = "okay";
};

&aes {
status = "okay";
};

&gpio0 {
ti,no-reset-on-init;
};
&mmc2 {
status = "okay";
vmmc-supply = <&emmc_vcc>;
ti,non-removable;
bus-width = <8>;
cap-power-off-card;
keep-power-in-suspend;
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>;
};
&mcasp0 {
pinctrl-names = "default";
pinctrl-0 = <&mcasp0_pins>;
status = "okay";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
/* 4 serializers AXR0 AXR1 AXR2 AXR3 */
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
1 2 0 0 
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};

启动linux,调试串口0输出如下:

[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: TI AM335x EVM-SK
[ 0.000000] cma: Reserved 24 MiB at 0x8b800000
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (neon )
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64960
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/ram0
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Memory: 197276K/262144K available (7163K kernel code, 290K rwdata, 1776K rodata, 28eserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] .text : 0xc0008000 - 0xc08c30ac (8941 kB)
[ 0.000000] .init : 0xc08c4000 - 0xc090c000 ( 288 kB)
[ 0.000000] .data : 0xc090c000 - 0xc0954be8 ( 291 kB)
[ 0.000000] .bss : 0xc0957000 - 0xc0991cdc ( 236 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Additional per-CPU info printed with stalls.
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000018] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000043] clocksource timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 796358519
[ 0.000057] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000283] Console: colour dummy device 80x30
[ 0.000313] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[ 0.000322] This ensures that you still see kernel messages. Please
[ 0.000330] update your kernel commandline.
[ 0.000354] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
[ 0.118873] pid_max: default: 32768 minimum: 301
[ 0.118999] Security Framework initialized
[ 0.119066] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.119080] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.119940] Initializing cgroup subsys blkio
[ 0.119969] Initializing cgroup subsys memory
[ 0.120023] Initializing cgroup subsys devices
[ 0.120042] Initializing cgroup subsys freezer
[ 0.120060] Initializing cgroup subsys perf_event
[ 0.120092] CPU: Testing write buffer coherency: ok
[ 0.120554] Setting up static identity map for 0x80008200 - 0x80008270
[ 0.122473] devtmpfs: initialized
[ 0.135344] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.147652] omap_hwmod: tptc0 using broken dt data from edma
[ 0.147801] omap_hwmod: tptc1 using broken dt data from edma
[ 0.147933] omap_hwmod: tptc2 using broken dt data from edma
[ 0.152934] omap_hwmod: debugss: _wait_target_disable failed
[ 0.209791] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604
[ 0.212535] pinctrl core: initialized pinctrl subsystem
[ 0.214085] NET: Registered protocol family 16
[ 0.216890] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.218258] before arch_cpu_idle_prepare
[ 0.218273] before cpu_idle_loop
[ 0.218281] entering into cpu_idle_loop
[ 0.238878] cpuidle: using governor ladder
[ 0.268866] cpuidle: using governor menu
[ 0.273591] OMAP GPIO hardware version 0.1
[ 0.285829] No ATAGs?
[ 0.285861] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.329866] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[ 0.335347] vgaarb: loaded
[ 0.336076] SCSI subsystem initialized
[ 0.336940] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@21e
[ 0.337179] pps_core: LinuxPPS API ver. 1 registered
[ 0.337190] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linu
[ 0.337231] PTP clock support registered
[ 0.337776] Advanced Linux Sound Architecture Driver Initialized.
[ 0.338801] Switched to clocksource timer1
[ 0.352658] NET: Registered protocol family 2
[ 0.353711] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.353757] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.353794] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.353882] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.353908] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.354116] NET: Registered protocol family 1
[ 0.354582] RPC: Registered named UNIX socket transport module.
[ 0.354600] RPC: Registered udp transport module.
[ 0.354609] RPC: Registered tcp transport module.
[ 0.354618] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.355046] Trying to unpack rootfs image as initramfs...
[ 0.356535] rootfs image is not initramfs (no cpio magic); looks like an initrd
[ 0.549456] Freeing initrd memory: 27748K (cd413000 - cef2c000)
[ 0.549933] CPU PMU: Failed to parse /pmu/interrupt-affinity[0]
[ 0.549994] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[ 0.552584] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.552674] audit: initializing netlink subsys (disabled)
[ 0.552768] audit: type=2000 audit(0.540:1): initialized
[ 0.562475] VFS: Disk quotas dquot_6.6.0
[ 0.562740] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.565660] NFS: Registering the id_resolver key type
[ 0.565744] Key type id_resolver registered
[ 0.565754] Key type id_legacy registered
[ 0.565851] jffs2: version 2.2. (NAND) (SUMMARY) ? 2001-2006 Red Hat, Inc.
[ 0.570729] NET: Registered protocol family 38
[ 0.570821] io scheduler noop registered
[ 0.570838] io scheduler deadline registered
[ 0.570918] io scheduler cfq registered (default)
[ 0.572315] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.576737] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[ 0.581473] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 155, base_baud = 3000000) is a 825
[ 1.225585] console_name:ttyS;console_index:0
[ 1.229987] console [ttyS0] enabled
[ 1.233489] we really not attempt to ungister earlycon0
[ 1.240738] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[ 1.247599] [drm] Initialized drm 1.1.0 20060810
[ 1.252339] Error: Driver 'tfp410' is already registered, aborting...
[ 1.272439] brd: module loaded
[ 1.282185] loop: module loaded
[ 1.287135] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 1.295908] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[ 1.303085] e1000: Copyright (c) 1999-2006 Intel Corporation.
[ 1.308966] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
[ 1.314826] e1000e: Copyright(c) 1999 - 2014 Intel Corporation.
[ 1.378883] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 1.385029] davinci_mdio 4a101000.mdio: detected phy mask fffffbff
[ 1.392268] libphy: 4a101000.mdio: probed
[ 1.396314] davinci_mdio 4a101000.mdio: phy[10]: device 4a101000.mdio:0a, driver NatSemi DP8364
[ 1.405865] cpsw 4a100000.ethernet: Missing slave[0] phy_id property
[ 1.412479] cpsw 4a100000.ethernet: Detected MACID = 60:64:05:f6:61:11
[ 1.421607] input: matrix_keypad@0 as /devices/platform/matrix_keypad@0/input/input0
[ 1.430575] i2c /dev entries driver
[ 1.434151] pps_ldisc: PPS line discipline registered
[ 1.441611] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 1.449987] omap_hsmmc 48060000.mmc: Got CD GPIO
[ 1.455482] SD_VCC: supplied by vbat
[ 1.539568] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[ 1.548274] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[ 1.558496] remoteproc0: wkup_m3 is available
[ 1.563196] remoteproc0: Note: remoteproc is still under development and considered experiment
[ 1.572367] remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility is
[ 1.583168] remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
[ 1.599011] remoteproc0: Falling back to user helper
[ 1.605068] davinci_evm sound: ASoC: CODEC DAI tlv320aic3x-hifi not registered
[ 1.612678] davinci_evm sound: snd_soc_register_card failed (-517)
[ 1.620314] oprofile: using arm/armv7
[ 1.624200] GACT probability on
[ 1.627474] Mirror/redirect action on
[ 1.631249] Simple TC action Loaded
[ 1.635734] netem: version 1.3
[ 1.638924] u32 classifier
[ 1.641720] mmc1: MAN_BKOPS_EN bit is not set
[ 1.646123] input device check on
[ 1.649855] Actions configured
[ 1.653780] Initializing XFRM netlink socket
[ 1.658247] NET: Registered protocol family 17
[ 1.662859] NET: Registered protocol family 15
[ 1.667583] NET: Registered protocol family 33
[ 1.672156] mmc1: new high speed MMC card at address 0001
[ 1.678187] Key type rxrpc registered
[ 1.681998] mmcblk0: mmc1:0001 P1XXXX 3.60 GiB 
[ 1.686698] Key type rxrpc_s registered
[ 1.690643] mmcblk0boot0: mmc1:0001 P1XXXX partition 1 16.0 MiB
[ 1.697091] RxRPC: Registered security type 2 'rxkad'
[ 1.702421] NET: Registered protocol family 35
[ 1.707045] Key type dns_resolver registered
[ 1.711484] mmcblk0boot1: mmc1:0001 P1XXXX partition 2 16.0 MiB
[ 1.718934] mmcblk0: p1 p2
[ 1.722037] omap_voltage_late_init: Voltage driver support not added
[ 1.731202] cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
[ 1.740087] cpu cpu0: cpu0 clock notifier not ready, retry
[ 1.746101] ThumbEE CPU extension supported.
[ 1.750528] Registering SWP/SWPB emulation handler
[ 1.779080] tps65910 0-002d: No interrupt support, no core IRQ
[ 1.811301] tlv320aic3x-codec 0-001b: ===========================sound soc probe ok============
[ 1.823270] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 1.832327] davinci_evm sound: tlv320aic3x-hifi <-> 48038000.mcasp mapping ok
[ 1.846583] vdd_mpu: supplied by vbat
[ 1.856575] SD_VCC: disabling
[ 1.859728] v3_3d: disabling
[ 1.862754] ALSA device list:
[ 1.865738] #0: AM335x-EVMSK
[ 1.869621] RAMDISK: gzip image found at block 0
[ 6.567134] VFS: Mounted root (ext2 filesystem) readonly on device 1:0.
[ 6.574354] devtmpfs: mounted
[ 6.578017] Freeing unused kernel memory: 288K (c08c4000 - c090c000)
[ 6.584500] be ready...
INIT: version 2.88 booting
Error opening /dev/fb0: No such file or directory
Starting udev
[ 6.958465] udevd[100]: starting version 182
bootlogd: cannot allocate pseudo tty: No such file or directory
[ 11.913953] random: dd urandom read with 39 bits of entropy available
Populating dev cache

登录shell ,执行下面的命令,播放一个音频文件

root@am335x-evm:/mnt/mmcblk0p2/sound# aplay 0.wav 
Playing WAVE '0.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono

然后aplay一直无法返回

上一个版本的硬件使用的是MCASP1的通道,调试也是通过的,本次调试硬件版本是在上一个版本的基础上调整了I2S通道,调整到MCASP0,其他基本没有变。

请问:MCASP0的配置是不是还有别的地方需要配置?