We put an AM3354BZCZ60 on our board. We tried viewing the smartreflex values in u-boot in 0x44e106a0-0x44e106f0 and 0x44e10770-ox44e10830. We expected to see more non-zero values but it seemed to contain about the same data as in am3354zcz60 2BAR2PW that is on another board.
So the 1st question is, are we looking in the correct addresses for smartreflex values?
The next question is sr_init failing. With the AM3354BZCZ60, we still see:
sr_init: platform driver register failed
In mach-omap2/am33xx-smartreflex-class2.c, I added some debug code:
static int __init sr_init(void) { int ret; printk(KERN_INFO "--- sr_init c2"); ret = platform_driver_probe(&smartreflex_driver, am33xx_sr_probe); if (ret) { pr_err("%s: platform driver register failed, err %d\n", __func__, ret); return ret; }
I see "--- sr_init c2" printed, so it is calling this version of sr_init. the value of ret is -19.
This corresponds to -ENODEV in platform.c, line 530:
if (code == 0 && list_empty(&drv->driver.p->klist_devices.k_list)) retval = -ENODEV;
Supposedly, ENODEV means:
The device you are trying to access doesn't exist, or the drivers for this device aren't loaded. This can occur if you refer to a file in /dev that has no driver loaded for it, or when loading a driver if no hardware exists.
Our .config file has:
CONFIG_AM33XX_SMARTREFLEX=y
# CONFIG_OMAP_SMARTREFLEX is not set
CONFIG_GPIO_TPS65910=y
CONFIG_GENERIC_PWM=y
CONFIG_DAVINCI_EHRPWM=y
CONFIG_ECAP_PWM=y
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
Is there something else that needs to be configured in the kernel?