unsigned long __init smsc_fdc37m81x_init(unsigned long port) { const int field = sizeof(unsigned long) * 2; u8 chip_id; if (g_smsc_fdc37m81x_base) printk(KERN_WARNING "%s: stepping on old base=0x%0*lx\n", __func__, field, g_smsc_fdc37m81x_base); g_smsc_fdc37m81x_base = port; smsc_fdc37m81x_config_beg(); chip_id = smsc_fdc37m81x_rd(SMSC_FDC37M81X_DID); if (chip_id == SMSC_FDC37M81X_CHIP_ID) smsc_fdc37m81x_config_end(); else { printk(KERN_WARNING "%s: unknown chip id 0x%02x\n", __func__, chip_id); g_smsc_fdc37m81x_base = 0; } return g_smsc_fdc37m81x_base; }
unsigned long __init smsc_fdc37m81x_init(unsigned long port) { u8 chip_id; if (g_smsc_fdc37m81x_base) { printk("smsc_fdc37m81x_init() stepping on old base=0x%08x\n", g_smsc_fdc37m81x_base); } g_smsc_fdc37m81x_base = port; smsc_fdc37m81x_config_beg(); chip_id = smsc_fdc37m81x_rd(SMSC_FDC37M81X_DID); if (chip_id == SMSC_FDC37M81X_CHIP_ID) { smsc_fdc37m81x_config_end(); } else { printk("smsc_fdc37m81x_init() unknow chip id 0x%02x\n", chip_id); g_smsc_fdc37m81x_base = 0; } return (g_smsc_fdc37m81x_base); }
void smsc_fdc37m81x_config_dump_one(char *key, u8 dev, u8 reg) { printk("%s: dev=0x%02x reg=0x%02x val=0x%02x\n", key, dev, reg, smsc_fdc37m81x_rd(reg)); return; }
u8 smsc_fdc37m81x_config_get(u8 reg) { u8 val = 0; if (g_smsc_fdc37m81x_base) val = smsc_fdc37m81x_rd(reg); return val; }
u8 smsc_fdc37m81x_config_get(u8 reg) { u8 val = 0; if (g_smsc_fdc37m81x_base) { val = smsc_fdc37m81x_rd(reg); } return (val); }
void smsc_fdc37m81x_config_dump(void) { u8 orig; char *fname = "smsc_fdc37m81x_config_dump()"; smsc_fdc37m81x_config_beg(); orig = smsc_fdc37m81x_rd(SMSC_FDC37M81X_DNUM); printk("%s: common\n", fname); smsc_fdc37m81x_config_dump_one(fname, SMSC_FDC37M81X_NONE, SMSC_FDC37M81X_DNUM); smsc_fdc37m81x_config_dump_one(fname, SMSC_FDC37M81X_NONE, SMSC_FDC37M81X_DID); smsc_fdc37m81x_config_dump_one(fname, SMSC_FDC37M81X_NONE, SMSC_FDC37M81X_DREV); smsc_fdc37m81x_config_dump_one(fname, SMSC_FDC37M81X_NONE, SMSC_FDC37M81X_PCNT); smsc_fdc37m81x_config_dump_one(fname, SMSC_FDC37M81X_NONE, SMSC_FDC37M81X_PMGT); printk("%s: keyboard\n", fname); smsc_dc37m81x_wr(SMSC_FDC37M81X_DNUM, SMSC_FDC37M81X_KBD); smsc_fdc37m81x_config_dump_one(fname, SMSC_FDC37M81X_KBD, SMSC_FDC37M81X_ACTIVE); smsc_fdc37m81x_config_dump_one(fname, SMSC_FDC37M81X_KBD, SMSC_FDC37M81X_INT); smsc_fdc37m81x_config_dump_one(fname, SMSC_FDC37M81X_KBD, SMSC_FDC37M81X_INT2); smsc_fdc37m81x_config_dump_one(fname, SMSC_FDC37M81X_KBD, SMSC_FDC37M81X_LDCR_F0); smsc_dc37m81x_wr(SMSC_FDC37M81X_DNUM, orig); smsc_fdc37m81x_config_end(); return; }
static void smsc_fdc37m81x_config_dump_one(const char *key, u8 dev, u8 reg) { printk(KERN_INFO "%s: dev=0x%02x reg=0x%02x val=0x%02x\n", key, dev, reg, smsc_fdc37m81x_rd(reg)); }