static int __init ds1302_probe(void) { int retval, res, baur; baur=(boot_cpu_data.bus_clock/(2*1000*1000)); printk("%s: Set PLD_RTCBAUR = %d\n", ds1302_name,baur); outw(0x0000,(unsigned long)PLD_RTCCR); outw(0x0000,(unsigned long)PLD_RTCRSTODT); outw(baur,(unsigned long)PLD_RTCBAUR); /* Try to talk to timekeeper. */ ds1302_wenable(); /* write RAM byte 0 */ /* write something magic */ out_byte_rtc(0xc0,MAGIC_PATTERN); /* read RAM byte 0 */ if((res = in_byte_rtc(0xc1)) == MAGIC_PATTERN) { char buf[100]; ds1302_wdisable(); printk("%s: RTC found.\n", ds1302_name); get_rtc_status(buf); printk(buf); retval = 1; } else { printk("%s: RTC not found.\n", ds1302_name); retval = 0; } return retval; }
static int ds1302_probe(void) { int retval, res; TK_RST_DIR(1); TK_SCL_DIR(1); TK_SDA_DIR(0); /* Try to talk to timekeeper. */ ds1302_wenable(); start(); out_byte(0xc0); /* write RAM byte 0 */ out_byte(MAGIC_PATTERN); /* write something magic */ start(); out_byte(0xc1); /* read RAM byte 0 */ if((res = in_byte()) == MAGIC_PATTERN) { char buf[100]; stop(); ds1302_wdisable(); printk("%s: RTC found.\n", ds1302_name); printk("%s: SDA, SCL, RST on PB%i, PB%i, %s%i\n", ds1302_name, CONFIG_ETRAX_DS1302_SDABIT, CONFIG_ETRAX_DS1302_SCLBIT, #ifdef CONFIG_ETRAX_DS1302_RST_ON_GENERIC_PORT "GENIO", #else "PB", #endif CONFIG_ETRAX_DS1302_RSTBIT); get_rtc_status(buf); printk(buf); retval = 1; } else { stop(); printk("%s: RTC not found.\n", ds1302_name); retval = 0; } return retval; }
static int get_root_array(char * page, int type, char **start, off_t offset, int length) { switch (type) { case PROC_LOADAVG: return get_loadavg(page); case PROC_UPTIME: return get_uptime(page); case PROC_MEMINFO: return get_meminfo(page); #ifdef CONFIG_PCI case PROC_PCI: return get_pci_list(page); #endif case PROC_CPUINFO: return get_cpuinfo(page); case PROC_VERSION: return get_version(page); #ifdef CONFIG_DEBUG_MALLOC case PROC_MALLOC: return get_malloc(page); #endif #ifdef CONFIG_MODULES case PROC_MODULES: return get_module_list(page); case PROC_KSYMS: return get_ksyms_list(page, start, offset, length); #endif case PROC_STAT: return get_kstat(page); case PROC_DEVICES: return get_device_list(page); case PROC_INTERRUPTS: return get_irq_list(page); case PROC_FILESYSTEMS: return get_filesystem_list(page); case PROC_DMA: return get_dma_list(page); case PROC_IOPORTS: return get_ioport_list(page); #ifdef CONFIG_BLK_DEV_MD case PROC_MD: return get_md_status(page); #endif #ifdef __SMP_PROF__ case PROC_SMP_PROF: return get_smp_prof_list(page); #endif case PROC_CMDLINE: return get_cmdline(page); case PROC_MTAB: return get_filesystem_info( page ); #ifdef CONFIG_RTC case PROC_RTC: return get_rtc_status(page); #endif case PROC_LOCKS: return get_locks_status(page); } return -EBADF; }