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/AM5716: Continuous MMC clock

Part Number: AM5716
Other Parts Discussed in Thread: SYSCONFIG

Tool/software: Linux

Dear Team,

I need continuous clock to card even out of transaction period from MMC1 & MMC3 in UHS mode of operation

MMC1 base clock selected to 128MHz, MMC3 base clock selected to 192MHz

I have configured

I have set CLKEXTFREE (1 << 16)  of CON register in omap_hsmmc.c driver probe.

//Setting free-running clock
    OMAP_HSMMC_WRITE(host->base, CON,
                (OMAP_HSMMC_READ(host->base, CON) | (1 << 16)));

When I probe the clock signal I could not see continuous clock on the bus. Clock is observed only when there is transaction on the bus.

I have also tried to disable "AUTOIDLE" but no luck

val = OMAP_HSMMC_READ(host->base, HL_SYSCONFIG);
    val &= ~( 1 << 0);
    OMAP_HSMMC_WRITE(host->base, HL_SYSCONFIG, val);

Register details below:

# cat /sys/kernel/debug/mmc*/regs
mmc0:
sdio irq mode    polling
ctx_loss:    1

regs:
CON:        0x00110680
PSTATE:        0x00010000
HCTL:        0x00000b12
SYSCTL:        0x000c0047
IE:        0x00000000
ISE:        0x00000000
CAPA:        0x26e90080
SYSCON:        0x0000301c
mmc1:
sdio irq mode    polling
ctx_loss:    1

regs:
CON:        0x00180620
PSTATE:        0x01f00000
HCTL:        0x00000d10
SYSCTL:        0x000e0087
IE:        0x00000000
ISE:        0x00000000
CAPA:        0x22e90080
SYSCON:        0x0000301d
mmc2:
sdio irq mode    polling
ctx_loss:    1

regs:
CON:        0x00010680
PSTATE:        0x01f10000
HCTL:        0x00000b02
SYSCTL:        0x000e00c7
IE:        0x00000000
ISE:        0x00000000
CAPA:        0x26e10080
SYSCON:        0x0000301c
#

# cat /sys/kernel/debug/mmc*/ios
s
clock:        128000000 Hz
vdd:        21 (3.3 ~ 3.4 V)
bus mode:    2 (push-pull)
chip select:    0 (don't care)
power mode:    2 (on)
bus width:    2 (4 bits)
timing spec:    6 (sd uhs SDR104)
signal voltage:    0 (1.80 V)
driver type:    0 (driver type B)
clock:        52000000 Hz
vdd:        21 (3.3 ~ 3.4 V)
bus mode:    2 (push-pull)
chip select:    0 (don't care)
power mode:    2 (on)
bus width:    3 (8 bits)
timing spec:    8 (mmc DDR52)
signal voltage:    0 (3.30 V)
driver type:    0 (driver type B)
clock:        64000000 Hz
vdd:        21 (3.3 ~ 3.4 V)
bus mode:    2 (push-pull)
chip select:    0 (don't care)
power mode:    2 (on)
bus width:    2 (4 bits)
timing spec:    5 (sd uhs SDR50)
signal voltage:    0 (1.80 V)
driver type:    0 (driver type B)
#


Please help how this can be resolved.

Thanks,

Vamshi G.