|
int led_init(void)
{
gpf_up= (unsigned long)ioremap((unsigned long)0x56000058,4);
*(unsigned long *)gpf_up &= ~(0xf<<4);
gpf_con = (unsigned long)ioremap((unsigned long)0x56000050,4);
*(unsigned long *)gpf_con &= ~(0xff<<8);
*(unsigned long *)gpf_con |= 0x5400;
gpf_dat= (unsigned long)ioremap((unsigned long)0x56000054,4);
Major = register_chrdev(DRAM_MEM_MAJOR,DEVICE_NAME,&led_ops);
if(Major <0)
{
iounmap((void *)gpf_con);
iounmap((void *)gpf_dat);
iounmap((void *)gpf_up);
printk("DRAM_MEM init_module:failed with %d\n",Major);
return Major;
}
Major = DRAM_MEM_MAJOR;
printk("DRAM_MEM_MAJOR registred: Major = %d\n",Major);
return 0;
}
--------------------------------------------------------------------
linux下----ioremap iounmap |
|