如何在Android里面uboot传参数

在我们设计的时候,通常用uboot传参数是少不了的,下面就让我和大家俩说说哦

比如我有两款音频芯片,不管是电路板是焊接的是RT5621还是wm8976,用一个升级包就可以搞定,我该如何办呐?

 

1:在我们启动之前可以用setenv boardargs “codec=wm8976”

                                          然后 save

2:下面的代码加载Mach-smdkc110.c里面(Android 2.3系统)

//********** urbetter+ for PCB type *************

 char sound_codec[8]="wm8976";
 EXPORT_SYMBOL(sound_codec);
static int __init Sound_setup(char *str)
{
 printk("Sound_setup: str=%s\n", str);
 strcpy(sound_codec, str);
}
__setup("codec=", Sound_setup);
#endif

3:在我们使用的时候就可以在Mach-smdkc110.c

 if(!strcmp(sound_codec, "wm8976"))
 {
  
    printk("mach-smdkc110->smdkc110_machine_init &&&&&&&&&&&&&&&&&& wm8976 ok\n");
    i2c_register_board_info(1, i2c_devs1_wm8976, ARRAY_SIZE(i2c_devs1_wm8976));
 }
 if(!strcmp(sound_codec, "rt5621"))
 {
  printk("mach-smdkc110->smdkc110_machine_init &&&&&&&&&&&&&&&&&& rt5621 is ok\n");

 }

我们做的思路就是首先在uboot里面用IIC读取rt5621的ID,如果是说明就是RT5621芯片,不是的话就是wm8976芯片,然后再用uboot来传输参数,我在Mach-smdkc110.c里面进行判断,以来加载该芯片。

            这只是我们的方案,大家有更好的可以一起讨论一下!谢谢

你可能感兴趣的:(c,android,Codec)