Loading drivers/rtc/rtc-rs5c313.c +17 −17 Original line number Diff line number Diff line Loading @@ -80,21 +80,21 @@ /* SCSPTR1 data */ unsigned char scsptr1_data; #define RS5C313_CEENABLE ctrl_outb(RS5C313_CE_RTCCE, RS5C313_CE); #define RS5C313_CEDISABLE ctrl_outb(0x00, RS5C313_CE) #define RS5C313_MISCOP ctrl_outb(0x02, 0xB0000008) #define RS5C313_CEENABLE __raw_writeb(RS5C313_CE_RTCCE, RS5C313_CE); #define RS5C313_CEDISABLE __raw_writeb(0x00, RS5C313_CE) #define RS5C313_MISCOP __raw_writeb(0x02, 0xB0000008) static void rs5c313_init_port(void) { /* Set SCK as I/O port and Initialize SCSPTR1 data & I/O port. */ ctrl_outb(ctrl_inb(SCSMR1) & ~SCSMR1_CA, SCSMR1); ctrl_outb(ctrl_inb(SCSCR1) & ~SCSCR1_CKE, SCSCR1); __raw_writeb(__raw_readb(SCSMR1) & ~SCSMR1_CA, SCSMR1); __raw_writeb(__raw_readb(SCSCR1) & ~SCSCR1_CKE, SCSCR1); /* And Initialize SCL for RS5C313 clock */ scsptr1_data = ctrl_inb(SCSPTR1) | SCL; /* SCL:H */ ctrl_outb(scsptr1_data, SCSPTR1); scsptr1_data = ctrl_inb(SCSPTR1) | SCL_OEN; /* SCL output enable */ ctrl_outb(scsptr1_data, SCSPTR1); scsptr1_data = __raw_readb(SCSPTR1) | SCL; /* SCL:H */ __raw_writeb(scsptr1_data, SCSPTR1); scsptr1_data = __raw_readb(SCSPTR1) | SCL_OEN; /* SCL output enable */ __raw_writeb(scsptr1_data, SCSPTR1); RS5C313_CEDISABLE; /* CE:L */ } Loading @@ -106,21 +106,21 @@ static void rs5c313_write_data(unsigned char data) /* SDA:Write Data */ scsptr1_data = (scsptr1_data & ~SDA) | ((((0x80 >> i) & data) >> (7 - i)) << 2); ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); if (i == 0) { scsptr1_data |= SDA_OEN; /* SDA:output enable */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); } ndelay(700); scsptr1_data &= ~SCL; /* SCL:L */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); ndelay(700); scsptr1_data |= SCL; /* SCL:H */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); } scsptr1_data &= ~SDA_OEN; /* SDA:output disable */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); } static unsigned char rs5c313_read_data(void) Loading @@ -131,12 +131,12 @@ static unsigned char rs5c313_read_data(void) for (i = 0; i < 8; i++) { ndelay(700); /* SDA:Read Data */ data |= ((ctrl_inb(SCSPTR1) & SDA) >> 2) << (7 - i); data |= ((__raw_readb(SCSPTR1) & SDA) >> 2) << (7 - i); scsptr1_data &= ~SCL; /* SCL:L */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); ndelay(700); scsptr1_data |= SCL; /* SCL:H */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); } return data & 0x0F; } Loading Loading
drivers/rtc/rtc-rs5c313.c +17 −17 Original line number Diff line number Diff line Loading @@ -80,21 +80,21 @@ /* SCSPTR1 data */ unsigned char scsptr1_data; #define RS5C313_CEENABLE ctrl_outb(RS5C313_CE_RTCCE, RS5C313_CE); #define RS5C313_CEDISABLE ctrl_outb(0x00, RS5C313_CE) #define RS5C313_MISCOP ctrl_outb(0x02, 0xB0000008) #define RS5C313_CEENABLE __raw_writeb(RS5C313_CE_RTCCE, RS5C313_CE); #define RS5C313_CEDISABLE __raw_writeb(0x00, RS5C313_CE) #define RS5C313_MISCOP __raw_writeb(0x02, 0xB0000008) static void rs5c313_init_port(void) { /* Set SCK as I/O port and Initialize SCSPTR1 data & I/O port. */ ctrl_outb(ctrl_inb(SCSMR1) & ~SCSMR1_CA, SCSMR1); ctrl_outb(ctrl_inb(SCSCR1) & ~SCSCR1_CKE, SCSCR1); __raw_writeb(__raw_readb(SCSMR1) & ~SCSMR1_CA, SCSMR1); __raw_writeb(__raw_readb(SCSCR1) & ~SCSCR1_CKE, SCSCR1); /* And Initialize SCL for RS5C313 clock */ scsptr1_data = ctrl_inb(SCSPTR1) | SCL; /* SCL:H */ ctrl_outb(scsptr1_data, SCSPTR1); scsptr1_data = ctrl_inb(SCSPTR1) | SCL_OEN; /* SCL output enable */ ctrl_outb(scsptr1_data, SCSPTR1); scsptr1_data = __raw_readb(SCSPTR1) | SCL; /* SCL:H */ __raw_writeb(scsptr1_data, SCSPTR1); scsptr1_data = __raw_readb(SCSPTR1) | SCL_OEN; /* SCL output enable */ __raw_writeb(scsptr1_data, SCSPTR1); RS5C313_CEDISABLE; /* CE:L */ } Loading @@ -106,21 +106,21 @@ static void rs5c313_write_data(unsigned char data) /* SDA:Write Data */ scsptr1_data = (scsptr1_data & ~SDA) | ((((0x80 >> i) & data) >> (7 - i)) << 2); ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); if (i == 0) { scsptr1_data |= SDA_OEN; /* SDA:output enable */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); } ndelay(700); scsptr1_data &= ~SCL; /* SCL:L */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); ndelay(700); scsptr1_data |= SCL; /* SCL:H */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); } scsptr1_data &= ~SDA_OEN; /* SDA:output disable */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); } static unsigned char rs5c313_read_data(void) Loading @@ -131,12 +131,12 @@ static unsigned char rs5c313_read_data(void) for (i = 0; i < 8; i++) { ndelay(700); /* SDA:Read Data */ data |= ((ctrl_inb(SCSPTR1) & SDA) >> 2) << (7 - i); data |= ((__raw_readb(SCSPTR1) & SDA) >> 2) << (7 - i); scsptr1_data &= ~SCL; /* SCL:L */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); ndelay(700); scsptr1_data |= SCL; /* SCL:H */ ctrl_outb(scsptr1_data, SCSPTR1); __raw_writeb(scsptr1_data, SCSPTR1); } return data & 0x0F; } Loading