Commit 24821392 authored by David S. Miller's avatar David S. Miller

[SPARC64]: Fix iomem warnings in envctrl driver.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9df3259e
...@@ -130,10 +130,8 @@ static int errno; ...@@ -130,10 +130,8 @@ static int errno;
*/ */
#define ENVCTRL_CPCI_IGNORED_NODE 0x70 #define ENVCTRL_CPCI_IGNORED_NODE 0x70
struct pcf8584_reg { #define PCF8584_DATA 0x00
unsigned char data; #define PCF8584_CSR 0x01
unsigned char csr;
};
/* Each child device can be monitored by up to PCF8584_MAX_CHANNELS. /* Each child device can be monitored by up to PCF8584_MAX_CHANNELS.
* Property of a port or channel as defined by the firmware. * Property of a port or channel as defined by the firmware.
...@@ -175,7 +173,7 @@ struct i2c_child_t { ...@@ -175,7 +173,7 @@ struct i2c_child_t {
char mon_type[PCF8584_MAX_CHANNELS]; char mon_type[PCF8584_MAX_CHANNELS];
}; };
volatile static struct pcf8584_reg *i2c = NULL; static void __iomem *i2c;
static struct i2c_child_t i2c_childlist[ENVCTRL_MAX_CPU*2]; static struct i2c_child_t i2c_childlist[ENVCTRL_MAX_CPU*2];
static unsigned char chnls_mask[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }; static unsigned char chnls_mask[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
static unsigned int warning_temperature = 0; static unsigned int warning_temperature = 0;
...@@ -185,22 +183,6 @@ static char read_cpu; ...@@ -185,22 +183,6 @@ static char read_cpu;
/* Forward declarations. */ /* Forward declarations. */
static struct i2c_child_t *envctrl_get_i2c_child(unsigned char); static struct i2c_child_t *envctrl_get_i2c_child(unsigned char);
/* Function description: Read a byte from an i2c controller register.
* Return: A byte from the passed in address.
*/
static inline unsigned char envctrl_readb(volatile unsigned char *p)
{
return readb(p);
}
/* Function description: Write a byte to an i2c controller register.
* Return: Nothing.
*/
static inline void envctrl_writeb(unsigned char val, volatile unsigned char *p)
{
writeb(val, p);
}
/* Function Description: Test the PIN bit (Pending Interrupt Not) /* Function Description: Test the PIN bit (Pending Interrupt Not)
* to test when serial transmission is completed . * to test when serial transmission is completed .
* Return : None. * Return : None.
...@@ -210,7 +192,7 @@ static void envtrl_i2c_test_pin(void) ...@@ -210,7 +192,7 @@ static void envtrl_i2c_test_pin(void)
int limit = 1000000; int limit = 1000000;
while (--limit > 0) { while (--limit > 0) {
if (!(envctrl_readb(&i2c->csr) & STATUS_PIN)) if (!(readb(i2c + PCF8584_CSR) & STATUS_PIN))
break; break;
udelay(1); udelay(1);
} }
...@@ -228,7 +210,7 @@ static void envctrl_i2c_test_bb(void) ...@@ -228,7 +210,7 @@ static void envctrl_i2c_test_bb(void)
while (--limit > 0) { while (--limit > 0) {
/* Busy bit 0 means busy. */ /* Busy bit 0 means busy. */
if (envctrl_readb(&i2c->csr) & STATUS_BB) if (readb(i2c + PCF8584_CSR) & STATUS_BB)
break; break;
udelay(1); udelay(1);
} }
...@@ -245,20 +227,20 @@ static int envctrl_i2c_read_addr(unsigned char addr) ...@@ -245,20 +227,20 @@ static int envctrl_i2c_read_addr(unsigned char addr)
envctrl_i2c_test_bb(); envctrl_i2c_test_bb();
/* Load address. */ /* Load address. */
envctrl_writeb(addr + 1, &i2c->data); writeb(addr + 1, i2c + PCF8584_DATA);
envctrl_i2c_test_bb(); envctrl_i2c_test_bb();
envctrl_writeb(OBD_SEND_START, &i2c->csr); writeb(OBD_SEND_START, i2c + PCF8584_CSR);
/* Wait for PIN. */ /* Wait for PIN. */
envtrl_i2c_test_pin(); envtrl_i2c_test_pin();
/* CSR 0 means acknowledged. */ /* CSR 0 means acknowledged. */
if (!(envctrl_readb(&i2c->csr) & STATUS_LRB)) { if (!(readb(i2c + PCF8584_CSR) & STATUS_LRB)) {
return envctrl_readb(&i2c->data); return readb(i2c + PCF8584_DATA);
} else { } else {
envctrl_writeb(OBD_SEND_STOP, &i2c->csr); writeb(OBD_SEND_STOP, i2c + PCF8584_CSR);
return 0; return 0;
} }
} }
...@@ -269,10 +251,10 @@ static int envctrl_i2c_read_addr(unsigned char addr) ...@@ -269,10 +251,10 @@ static int envctrl_i2c_read_addr(unsigned char addr)
static void envctrl_i2c_write_addr(unsigned char addr) static void envctrl_i2c_write_addr(unsigned char addr)
{ {
envctrl_i2c_test_bb(); envctrl_i2c_test_bb();
envctrl_writeb(addr, &i2c->data); writeb(addr, i2c + PCF8584_DATA);
/* Generate Start condition. */ /* Generate Start condition. */
envctrl_writeb(OBD_SEND_START, &i2c->csr); writeb(OBD_SEND_START, i2c + PCF8584_CSR);
} }
/* Function Description: Read 1 byte of data from addr /* Function Description: Read 1 byte of data from addr
...@@ -282,8 +264,8 @@ static void envctrl_i2c_write_addr(unsigned char addr) ...@@ -282,8 +264,8 @@ static void envctrl_i2c_write_addr(unsigned char addr)
static unsigned char envctrl_i2c_read_data(void) static unsigned char envctrl_i2c_read_data(void)
{ {
envtrl_i2c_test_pin(); envtrl_i2c_test_pin();
envctrl_writeb(CONTROL_ES0, &i2c->csr); /* Send neg ack. */ writeb(CONTROL_ES0, i2c + PCF8584_CSR); /* Send neg ack. */
return envctrl_readb(&i2c->data); return readb(i2c + PCF8584_DATA);
} }
/* Function Description: Instruct the device which port to read data from. /* Function Description: Instruct the device which port to read data from.
...@@ -292,7 +274,7 @@ static unsigned char envctrl_i2c_read_data(void) ...@@ -292,7 +274,7 @@ static unsigned char envctrl_i2c_read_data(void)
static void envctrl_i2c_write_data(unsigned char port) static void envctrl_i2c_write_data(unsigned char port)
{ {
envtrl_i2c_test_pin(); envtrl_i2c_test_pin();
envctrl_writeb(port, &i2c->data); writeb(port, i2c + PCF8584_DATA);
} }
/* Function Description: Generate Stop condition after last byte is sent. /* Function Description: Generate Stop condition after last byte is sent.
...@@ -301,7 +283,7 @@ static void envctrl_i2c_write_data(unsigned char port) ...@@ -301,7 +283,7 @@ static void envctrl_i2c_write_data(unsigned char port)
static void envctrl_i2c_stop(void) static void envctrl_i2c_stop(void)
{ {
envtrl_i2c_test_pin(); envtrl_i2c_test_pin();
envctrl_writeb(OBD_SEND_STOP, &i2c->csr); writeb(OBD_SEND_STOP, i2c + PCF8584_CSR);
} }
/* Function Description: Read adc device. /* Function Description: Read adc device.
...@@ -323,7 +305,7 @@ static unsigned char envctrl_i2c_read_8591(unsigned char addr, unsigned char por ...@@ -323,7 +305,7 @@ static unsigned char envctrl_i2c_read_8591(unsigned char addr, unsigned char por
envctrl_i2c_read_data(); envctrl_i2c_read_data();
envctrl_i2c_stop(); envctrl_i2c_stop();
return envctrl_readb(&i2c->data); return readb(i2c + PCF8584_DATA);
} }
/* Function Description: Read gpio device. /* Function Description: Read gpio device.
...@@ -1084,8 +1066,7 @@ static int __init envctrl_init(void) ...@@ -1084,8 +1066,7 @@ static int __init envctrl_init(void)
for_each_ebus(ebus) { for_each_ebus(ebus) {
for_each_ebusdev(edev, ebus) { for_each_ebusdev(edev, ebus) {
if (!strcmp(edev->prom_name, "i2c")) { if (!strcmp(edev->prom_name, "i2c")) {
i2c = ioremap( edev->resource[0].start, i2c = ioremap(edev->resource[0].start, 0x2);
sizeof(struct pcf8584_reg));
for_each_edevchild(edev, edev_child) { for_each_edevchild(edev, edev_child) {
if (!strcmp("gpio", edev_child->prom_name)) { if (!strcmp("gpio", edev_child->prom_name)) {
i2c_childlist[i].i2ctype = I2C_GPIO; i2c_childlist[i].i2ctype = I2C_GPIO;
...@@ -1108,15 +1089,15 @@ static int __init envctrl_init(void) ...@@ -1108,15 +1089,15 @@ static int __init envctrl_init(void)
} }
/* Set device address. */ /* Set device address. */
envctrl_writeb(CONTROL_PIN, &i2c->csr); writeb(CONTROL_PIN, i2c + PCF8584_CSR);
envctrl_writeb(PCF8584_ADDRESS, &i2c->data); writeb(PCF8584_ADDRESS, i2c + PCF8584_DATA);
/* Set system clock and SCL frequencies. */ /* Set system clock and SCL frequencies. */
envctrl_writeb(CONTROL_PIN | CONTROL_ES1, &i2c->csr); writeb(CONTROL_PIN | CONTROL_ES1, i2c + PCF8584_CSR);
envctrl_writeb(CLK_4_43 | BUS_CLK_90, &i2c->data); writeb(CLK_4_43 | BUS_CLK_90, i2c + PCF8584_DATA);
/* Enable serial interface. */ /* Enable serial interface. */
envctrl_writeb(CONTROL_PIN | CONTROL_ES0 | CONTROL_ACK, &i2c->csr); writeb(CONTROL_PIN | CONTROL_ES0 | CONTROL_ACK, i2c + PCF8584_CSR);
udelay(200); udelay(200);
/* Register the device as a minor miscellaneous device. */ /* Register the device as a minor miscellaneous device. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment