Question about WM8962 without PMPF0100 PMIC.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Question about WM8962 without PMPF0100 PMIC.

3,453 Views
edwinrose
Contributor I

Hi All,

Now I'm developing the freescale i.MX6 platform.

For cost down purpose, I use discrete power solution without PMPF0100 PMIC.

Now I meet a issue about audio WM8962. It seems can't detect WM8962 as the following console.

I'm trying to disable the I2C signal to PMIC on SABRE Board, the same result with can't detect WM8962.

Both power and I2C are normal.

Please help me, thank you very much!

U-Boot 2009.08-dirty (Jul 25 2013 - 16:50:50)

CPU: Freescale i.MX6 family TO1.1 at 792 MHz

Temperature:   41 C, calibration data 0x5774c17d

mx6q pll1: 792MHz

mx6q pll2: 528MHz

mx6q pll3: 480MHz

mx6q pll8: 50MHz

ipg clock     : 66000000Hz

ipg per clock : 66000000Hz

uart clock    : 80000000Hz

cspi clock    : 60000000Hz

ahb clock     : 132000000Hz

axi clock   : 264000000Hz

emi_slow clock: 29333333Hz

ddr clock     : 528000000Hz

usdhc1 clock  : 198000000Hz

usdhc2 clock  : 198000000Hz

usdhc3 clock  : 198000000Hz

usdhc4 clock  : 198000000Hz

nfc clock     : 24000000Hz

Board: i.MX6Q-SABRESD: RevC Board: 0x63311 [POR ]

Boot Device: MMC

I2C:   ready

DRAM:   1 GB

MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3

In:    serial

Out:   serial

Err:   serial

Found PFUZE100! deviceid=10,revid=10

Net:   got MAC address from IIM: 00:04:9f:02:35:8f

FEC0 [PRIME]

Hit any key to stop autoboot:  0

kernel   @ 10808000 (4397036)

ramdisk  @ 11800000 (167741)

kernel cmdline:

        use uboot command line:

        console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60 fbmem=28M

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Initializing cgroup subsys cpuset

Initializing cgroup subsys cpu

Linux version 3.0.35-05524-g8513494-dirty (sean@ubuntu) (gcc version 4.4.3 (GCC) ) #72 SMP PREEMPT Tue Aug 13 17:33:07 CST 2013

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d

CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Freescale i.MX 6Quad/DualLite/Solo Sabre-SD Board

Ignoring unrecognised tag 0x54410008

Memory policy: ECC disabled, Data cache writealloc

CPU identified as i.MX6Q, silicon rev 1.1

PERCPU: Embedded 7 pages/cpu @c11d7000 s5760 r8192 d14720 u32768

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 203776

Kernel command line: console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60 fbmem=28M

PID hash table entries: 2048 (order: 1, 8192 bytes)

Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)

Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)

Memory: 576MB 228MB = 804MB total

Memory: 804340k/804340k available, 244236k reserved, 413696K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xfbe00000 - 0xffe00000   (  64 MB)

    vmalloc : 0xd9800000 - 0xf2000000   ( 392 MB)

    lowmem  : 0xc0000000 - 0xd9000000   ( 400 MB)

    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)

    modules : 0xbf000000 - 0xbfe00000   (  14 MB)

      .init : 0xc0008000 - 0xc0042000   ( 232 kB)

      .text : 0xc0042000 - 0xc082b534   (8102 kB)

      .data : 0xc082c000 - 0xc089d960   ( 455 kB)

       .bss : 0xc089d984 - 0xc09cd9f0   (1217 kB)

Preemptible hierarchical RCU implementation.

NR_IRQS:496

MXC GPIO hardware

sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms

MXC_Early serial console at MMIO 0x2020000 (options '115200')

bootconsole [ttymxc0] enabled

Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

Initializing cgroup subsys cpuacct

CPU: Testing write buffer coherency: ok

hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

CPU1: Booted secondary processor

CPU2: Booted secondary processor

CPU3: Booted secondary processor

Brought up 4 CPUs

SMP: Total of 4 processors activated (6324.22 BogoMIPS).

print_constraints: dummy:

NET: Registered protocol family 16

print_constraints: vddpu: 725 <--> 1300 mV at 700 mV fast normal

print_constraints: vddcore: 725 <--> 1300 mV at 1100 mV fast normal

print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal

print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal

print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal

print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal

hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.

hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.

hw-breakpoint: maximum watchpoint size is 4 bytes.

L310 cache controller enabled

l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x02070000, Cache size: 1048576 B

IMX usb wakeup probe

bio: create slab <bio-0> at 0

print_constraints: SPKVDD: 4200 mV

print_constraints: vmmc: 3300 mV

vgaarb: loaded

SCSI subsystem initialized

spi_imx imx6q-ecspi.0: probed

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

Freescale USB OTG Driver loaded, $Revision: 1.55 $

add wake up source irq 75

mc_pfuze 1-0014: recv failed!:-5,0

mc_pfuze: probe of 1-0014 failed with error -1

imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)

imx-ipuv3 imx-ipuv3.1: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)

mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 driver probed

mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 dphy version is 0x3130302a

MIPI CSI2 driver module loaded

Advanced Linux Sound Architecture Driver Version 1.0.24.

Bluetooth: Core ver 2.16

NET: Registered protocol family 31

Bluetooth: HCI device and connection manager initialized

Bluetooth: HCI socket layer initialized

Bluetooth: L2CAP socket layer initialized

Bluetooth: SCO socket layer initialized

max17135 2-0048: PMIC MAX17135 for eInk display

i2c-core: driver [max17135] using legacy suspend method

i2c-core: driver [max17135] using legacy resume method

Switching to clocksource mxc_timer1

NET: Registered protocol family 2

IP route cache hash table entries: 16384 (order: 4, 65536 bytes)

TCP established hash table entries: 65536 (order: 7, 524288 bytes)

TCP bind hash table entries: 65536 (order: 7, 786432 bytes)

TCP: Hash tables configured (established 65536 bind 65536)

TCP reno registered

UDP hash table entries: 256 (order: 1, 8192 bytes)

UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)

NET: Registered protocol family 1

RPC: Registered named UNIX socket transport module.

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

Unpacking initramfs...

Freeing initrd memory: 160K

PMU: registered new PMU device of type 0

Static Power Management for Freescale i.MX6

wait mode is enabled for i.MX6

cpaddr = d9880000 suspend_iram_base=d991c000

PM driver module loaded

IMX PCIe port: link down!

IMX usb wakeup probe

i.MXC CPU frequency driver

highmem bounce pool size: 64 pages

ashmem: initialized

JFFS2 version 2.2. (NAND) ? 2001-2006 Red Hat, Inc.

msgmni has been set to 763

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

mxc_mipi_dsi mxc_mipi_dsi: i.MX MIPI DSI driver probed

MIPI DSI driver module loaded

mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver hdmi

mxc_hdmi mxc_hdmi: Detected HDMI controller 0x13:0xa:0xa0:0xc1

fbcvt: 1920x1080@60: CVT Name - 2.073M9

imx-ipuv3 imx-ipuv3.1: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)

mxc_sdc_fb mxc_sdc_fb.1: register mxc display driver hdmi

mxc_hdmi mxc_hdmi: Error only one HDMI output support now!

mxc_sdc_fb mxc_sdc_fb.1: NO mxc display driver found!

mxc_sdc_fb mxc_sdc_fb.2: register mxc display driver ldb

_regulator_get: get() with no identifier

imx-sdma imx-sdma: loaded firmware 1.1

imx-sdma imx-sdma: initialized

fbcvt: 1920x1080@60: CVT Name - 2.073M9

Serial: IMX driver

imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX

imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX

console [ttymxc0] enabled, bootconsole disabled

console [ttymxc0] enabled, bootconsole disabled

loop: module loaded

Can't recover from RESET HBA!

No sata disk.

m25p80 spi0.0: unrecognized JEDEC id ffffff

e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI

e1000: Copyright (c) 1999-2006 Intel Corporation.

e1000e: Intel(R) PRO/1000 Network Driver - 1.3.10-k2

e1000e: Copyright(c) 1999 - 2011 Intel Corporation.

Intel(R) Gigabit Ethernet Network Driver - version 3.0.6-k2

Copyright (c) 2007-2011 Intel Corporation.

vcan: Virtual CAN interface driver

CAN device driver interface

flexcan netdevice driver

FEC Ethernet Driver

fec_enet_mii_bus: probed

PPP generic driver version 2.4.2

PPP Deflate Compression module registered

PPP BSD Compression module registered

PPP MPPE Compression module registered

NET: Registered protocol family 24

PPTP driver version 0.8.5

tun: Universal TUN/TAP device driver, 1.6

tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller

fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1

fsl-ehci fsl-ehci.0: irq 75, io base 0x02184000

fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

add wake up source irq 72

fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller

fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2

fsl-ehci fsl-ehci.1: irq 72, io base 0x02184200

fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 1 port detected

usbcore: registered new interface driver cdc_acm

cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

usbcore: registered new interface driver usbserial

usbserial: USB Serial Driver core

USB Serial support registered for GSM modem (1-port)

usbcore: registered new interface driver option

option: v0.7.2:USB Driver for GSM modems

USB Serial support registered for Qualcomm USB modem

usbcore: registered new interface driver qcserial

ARC USBOTG Device Controller driver (1 August 2005)

android_usb gadget: Mass Storage Function, version: 2009/09/11

android_usb gadget: Number of LUNs=1

lun0: LUN: removable file: (no medium)

Gadget Android: controller 'fsl-usb2-udc' not recognized

android_usb gadget: android_usb ready

Suspend udc for OTG auto detect

fsl-usb2-udc: bind to driver android_usb

mousedev: PS/2 mouse device common for all mice

input: gpio-keys as /devices/platform/gpio-keys/input/input0

input: max11801_ts as /devices/platform/imx-i2c.1/i2c-1/1-0048/input/input1

egalax_ts 1-0004: egalax_ts: failed to read firmware version

egalax_ts: probe of 1-0004 failed with error -5

egalax_ts 2-0004: egalax_ts: failed to read firmware version

egalax_ts: probe of 2-0004 failed with error -5

usb 1-1: new low speed USB device number 2 using fsl-ehci

usb 1-1: device v046d pc00e is not supported

elan - Read Hello Packet Failed

elan-touch: probe of 2-0010 failed with error -22

i2c-core: driver [isl29023] using legacy suspend method

i2c-core: driver [isl29023] using legacy resume method

using rtc device, snvs_rtc, for alarms

snvs_rtc snvs_rtc.0: rtc core: registered snvs_rtc as rtc0

i2c /dev entries driver

Linux video capture interface: v2.00

ov5642_read_reg:write reg error:reg=300a

ov5642_probe:cannot find camera

ov5640_read_reg:write reg error:reg=300a

ov5640_probe:cannot find camera

mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video16

mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video17

mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video18

mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video19

usbcore: registered new interface driver uvcvideo

USB Video Class driver (v1.1.0)

mag3110 2-000e: check mag3110 chip ID

input: mag3110 as /devices/virtual/input/input2

mag3110 2-000e: mag3110 is probed

i2c-core: driver [mag3110] using legacy suspend method

i2c-core: driver [mag3110] using legacy resume method

input: mma845x as /devices/virtual/input/input3

imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=1)

device-mapper: uevent: version 1.0.3

device-mapper: ioctl: 4.20.0-ioctl (2011-02-02) initialised: dm-devel@redhat.com

Bluetooth: Virtual HCI driver ver 1.3

Bluetooth: HCI UART driver ver 2.2

Bluetooth: HCIATH3K protocol initialized

Bluetooth: Generic Bluetooth USB driver ver 0.6

usbcore: registered new interface driver btusb

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

mmc0: SDHCI controller on platform [sdhci-esdhc-imx.3] using DMA

mmc1: SDHCI controller on platform [sdhci-esdhc-imx.2] using DMA

mmc2: SDHCI controller on platform [sdhci-esdhc-imx.1] using DMA

mxc_vdoa mxc_vdoa: i.MX Video Data Order Adapter(VDOA) driver probed

VPU initialized

mxc_asrc registered

revserved_memory_account:viv_gpu registerd

Thermal calibration data is 0x5774c17d

Thermal sensor with ratio = 181

Anatop Thermal registered as thermal_zone0

anatop_thermal_probe: default cooling device is cpufreq!

input: Logitech USB-PS/2 Optical Mouse as /devices/platform/fsl-ehci.0/usb1/1-1/1-1:1.0/input/input4

generic-usb 0003:046D:C00E.0001: input,hidraw0: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-fsl-ehci.0-1/input0

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

logger: created 256K log 'log_main'

logger: created 256K log 'log_events'

logger: created 256K log 'log_radio'

logger: created 256K log 'log_system'

usbcore: registered new interface driver snd-usb-audio

mxc_hdmi_soc mxc_hdmi_soc.0: MXC HDMI Audio

Cirrus Logic CS42888 ALSA SoC Codec Driver

i2c-core: driver [cs42888] using legacy suspend method

i2c-core: driver [cs42888] using legacy resume method

wm8962 0-001a: Failed to get supply 'DCVDD': -19

wm8962 0-001a: Failed to request supplies: -19

wm8962 0-001a: asoc: failed to probe CODEC wm8962.0-001a: -19

asoc: failed to instantiate card wm8962-audio: -19

mmc0: new high speed DDR MMC card at address 0001

mmcblk0: mmc0:0001 SEM08G 7.39 GiB

imx_3stack asoc driver

asoc: mxc-hdmi-soc <-> imx-hdmi-soc-dai.0 mapping ok

ALSA device list:

  #0: imx-hdmi-soc

Netfilter messages via NETLINK v0.30.

mmcblk0boot0: mmc0:0001 SEM08G partition 1 2.00 MiB

nf_conntrack version 0.5.0 (12570 buckets, 50280 max)

mmcblk0boot1: mmc0:0001 SEM08G partition 2 2.00 MiB

ctnetlink v0.93: registering with nfnetlink.

NF_TPROXY: Transparent proxy support initialized, version 4.1.0

NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd.

xt_time: kernel timezone is -0000

IPv4 over IPv4 tunneling driver

GRE over IPv4 demultiplexor driver

ip_tables: (C) 2000-2006 Netfilter Core Team

arp_tables: (C) 2002 David S. Miller

mmcblk0: p1 p2 p3 < p5 p6 p7 p8 p9 > p4

TCP cubic registered

NET: Registered protocol family 10

mmcblk0boot1: unknown partition table

ip6_tables: (C) 2000-2006 Netfilter Core Team

IPv6 over IPv4 tunneling driver

NET: Registered protocol family 17

NET: Registered protocol family 15

can: controller area network core (rev 20090105 abi 8)

NET: Registered protocol family 29

can: raw protocol (rev 20090105)

can: broadcast manager protocol (rev 20090105 t)

Bluetooth: RFCOMM TTY layer initialized

Bluetooth: RFCOMM socket layer initialized

mmcblk0boot0: unknown partition table

Bluetooth: RFCOMM ver 1.11

Bluetooth: BNEP (Ethernet Emulation) ver 1.3

Bluetooth: BNEP filters: protocol multicast

Bluetooth: HIDP (Human Interface Emulation) ver 1.2

L2TP core driver, V2.0

PPPoL2TP kernel driver, V2.0

L2TP IP encapsulation support (L2TPv3)

L2TP netlink interface

L2TP ethernet pseudowire support (L2TPv3)

lib80211: common routines for IEEE802.11 drivers

VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4

Bus freq driver module loaded

Bus freq driver Enabled

mxc_dvfs_core_probe

DVFS driver module loaded

regulator_init_complete: SPKVDD: incomplete constraints, leaving on

snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)

Freeing init memory: 232K

in/gpu_init.sh', disabling 'gpu_init'

init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'

android_usb: already disabled

mtp_bind_config

root@android:/ # input: eCompass as /devices/virtual/input/input5

ERROR: v4l2 capture: slave not found!

ERROR: v4l2 capture: slave not found!

ERROR: v4l2 capture: slave not found!

ERROR: v4l2 capture: slave not found!

warning: `zygote' uses 32-bit capabilities (legacy support in use)

request_suspend_state: wakeup (3->0) at 19100811670 (1970-01-02 00:00:07.478867000 UTC)

eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=1:01, irq=-1)

ADDRCONF(NETDEV_UP): eth0: link is not ready

acc_open

acc_release

CPU3: shutdown

CPU2: shutdown

Labels (4)
0 Kudos
Reply
9 Replies

1,661 Views
manuel_ugarte
NXP Employee
NXP Employee


Hi.

DCVDD is at U7 WM8962 pin G2.

The main issue I was having was that there were no power on that pin because the PMIC was not solder correctly. The Linux boot up software was trying to detect the Audio chip and it did not found it. After reflowing the PMIC and all connections were made correctly then the Audio worked fine.

Thanks, Manuel.

0 Kudos
Reply

1,661 Views
b36401
NXP Employee
NXP Employee

You can refer "Porting Audio Codecs to a Custom Board" chapter
of Porting Guide I attached.

http://photo.afti.ru/tmp/fs/i.MX_6Dual6Quad_BSP_Porting_Guide.zip

0 Kudos
Reply

1,661 Views
manuel_ugarte
NXP Employee
NXP Employee

Hello.

The link is broken. Can you please update the link?

Also, I am seeing the same issue reported by Edwin on the MX6Q-SDP and MX6Q-SDP boards provided by FSL.

Manuel.

0 Kudos
Reply

1,661 Views
edwinrose
Contributor I

Hi Manuel,

I had solved this issue.

Hint you may try check the following items,

1. Check DCVDD power or mask DCVDD in code.

2. Audio detect function.

Edwin


0 Kudos
Reply

1,661 Views
wangtsungli
Contributor IV

Hi edwinrose

I'm working on i.MX6 Quad sabreSD platform which without PMIC design on the board too.

Could you help me on the issue when booting system will auto sleep and can not resume.

Is there anything PM kernel driver I need to modify?

Or I need to disabled any kernel driver?

Could you give me a hint?

Thanks in Advanced!

0 Kudos
Reply

1,661 Views
changyuheng
Contributor II

Hi Edwin,

I'm not familiar with this field. Could you please explain more briefly about the second hint "audio detection function"?

Henry

0 Kudos
Reply

1,661 Views
changyuheng
Contributor II

I solved the problem. Still not found the root cause, I just gave it a workaround by bypassing checking those power supplies.

IMHO, the size of the power supply array could be refactored to:

-#define WM8962_NUM_SUPPLIES 8
-static const char *wm8962_supply_names[WM8962_NUM_SUPPLIES] = {
+static const char *wm8962_supply_names[] = {
+#define WM8962_NUM_SUPPLIES sizeof(wm8962_supply_names)/sizeof(char *)

in the file sound/soc/codecs/wm8962.c.

0 Kudos
Reply

1,661 Views
manuel_ugarte
NXP Employee
NXP Employee


Hi, Edwin.

Thanks for the information. DCVDD on our board was not solder correctly.

Thanks, Manuel.

0 Kudos
Reply

1,661 Views
ct3paul
Contributor II

HI,

0 Kudos
Reply