Tool/software: Linux
Hi Biser:
I am using the old version kernel with following config
static struct pinmux_config gpmc_dr_pin_mux[] = {
{"gpmc_ad0.gpmc_ad0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad1.gpmc_ad1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad2.gpmc_ad2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad3.gpmc_ad3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad4.gpmc_ad4", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad5.gpmc_ad5", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad6.gpmc_ad6", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_dat1.gpmc_a22", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
{"mmc0_dat0.gpmc_a23", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
{"mmc0_clk.gpmc_a24", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
{"gpmc_csn0.gpmc_csn0", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
{"gpmc_ben0_cle.gpmc_ben0_cle", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
{"gpmc_ben1.gpmc_ben1",OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
{"gpmc_oen_ren.gpmc_oen_ren", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
{"gpmc_wen.gpmc_wen", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
{NULL, 0},
};
Then I can see the config7 register of gpmcs0 is 0x42 which will allocate the hardware address 0x2000000 .
then the config1 is 0 .
when I use the address to write data in kernel mode or user mode like the following method ,
I do see the data line gpmc_ad0 to gpmc_ad7 roll.
for(j = 0; j < 0xF0000000; j++) {
for (i = 0; i < 0x5; i++) {
reg_addr=p+ (i << 22);
if(i%2)
iowrite8(0x5c,reg_addr);
else iowrite8(0xa3,reg_addr);
mdelay(1)
}
But I do not see the address line A22 A23 A24 roll canyou help me to fix?
Best regards
wangl