Fix all warnings in the tree
[coreboot.git] / src / southbridge / sis / sis966 / sis966_smbus.h
index 503a385e2974412496ffdf2876f9409c3ee16dc1..087ea47f2395136776f24fdaed0858cef44067bf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * This file is part of the LinuxBIOS project.
+ * This file is part of the coreboot project.
  *
  * Copyright (C) 2004 Tyan Computer
  * Written by Yinghai Lu <yhlu@tyan.com> for Tyan Computer.
  */
 #define SMBUS_TIMEOUT  (100*1000*10)
 
-static inline void smbus_delay(void)
-{
-       outb(0x80, 0x80);
-}
-
-static int smbus_wait_until_ready(unsigned smbus_io_base)
-{
-       unsigned long loops;
-       loops = SMBUS_TIMEOUT;
-       do {
-               unsigned char val;
-               smbus_delay();
-               val = inb(smbus_io_base + SMBHSTSTAT);
-               val &= 0x1f;
-               if (val == 0) {
-                       return 0;
-               }
-               outb(val,smbus_io_base + SMBHSTSTAT);
-       } while(--loops);
-       return -2;
-}
-
-static int smbus_wait_until_done(unsigned smbus_io_base)
-{
-       unsigned long loops;
-       loops = SMBUS_TIMEOUT;
-       do {
-               unsigned char val;
-               smbus_delay();
-
-               val = inb(smbus_io_base + 0x00);
-               if ( (val & 0xff) != 0x02) {
-                       return 0;
-               }
-       } while(--loops);
-       return -3;
-}
-static int do_smbus_recv_byte(unsigned smbus_io_base, unsigned device)
-{
-       unsigned char global_status_register;
-       unsigned char byte;
-
-       /* set the device I'm talking too */
-       outb(((device & 0x7f) << 1)|1 , smbus_io_base + SMBXMITADD);
-       smbus_delay();
-
-       /* byte data recv */
-       outb(0x05, smbus_io_base + SMBHSTPRTCL);
-       smbus_delay();
-
-       /* poll for transaction completion */
-       if (smbus_wait_until_done(smbus_io_base) < 0) {
-               return -3;
-       }
-
-       global_status_register = inb(smbus_io_base + SMBHSTSTAT) & 0x80; /* lose check */
-
-       /* read results of transaction */
-       byte = inb(smbus_io_base + SMBHSTCMD);
-
-       if (global_status_register != 0x80) { // lose check, otherwise it should be 0
-               return -1;
-       }
-       return byte;
-}
-static int do_smbus_send_byte(unsigned smbus_io_base, unsigned device, unsigned char val)
-{
-       unsigned global_status_register;
-
-       outb(val, smbus_io_base + SMBHSTDAT0);
-       smbus_delay();
-
-       /* set the command... */
-       outb(val, smbus_io_base + SMBHSTCMD);
-       smbus_delay();
-
-       /* set the device I'm talking too */
-       outb(((device & 0x7f) << 1) | 0, smbus_io_base + SMBXMITADD);
-       smbus_delay();
-
-       /* set up for a byte data write */
-       outb(0x04, smbus_io_base + SMBHSTPRTCL);
-       smbus_delay();
-
-       /* poll for transaction completion */
-       if (smbus_wait_until_done(smbus_io_base) < 0) {
-               return -3;
-       }
-       global_status_register = inb(smbus_io_base + SMBHSTSTAT) & 0x80; /* lose check */;
-
-       if (global_status_register != 0x80) {
-               return -1;
-       }
-       return 0;
-}
-static int do_smbus_read_byte(unsigned smbus_io_base, unsigned device, unsigned address)
-{
-       unsigned char global_status_register;
-       unsigned char byte;
-
-       outb(0xff, smbus_io_base + 0x00);
-       smbus_delay();
-       outb(0x20, smbus_io_base + 0x03);
-       smbus_delay();
-
-       outb(((device & 0x7f) << 1)|1 , smbus_io_base + 0x04);
-       smbus_delay();
-       outb(address & 0xff, smbus_io_base + 0x05);
-       smbus_delay();
-       outb(0x12, smbus_io_base + 0x03);
-       smbus_delay();
-
-int    i,j;
-for(i=0;i<0x1000;i++)
-{
-       if (inb(smbus_io_base + 0x00) != 0x08)
-       {       smbus_delay();
-               for(j=0;j<0xFFFF;j++);
-       }
-};
-
-       global_status_register = inb(smbus_io_base + 0x00);
-       byte = inb(smbus_io_base + 0x08);
-
-       if (global_status_register != 0x08) { // lose check, otherwise it should be 0
-               print_debug("Fail");print_debug("\r\t");
-                       return -1;
-       }
-               print_debug("Success");print_debug("\r\t");
-       return byte;
-}
-
-
-static int do_smbus_write_byte(unsigned smbus_io_base, unsigned device, unsigned address, unsigned char val)
-{
-       unsigned global_status_register;
-
-       outb(val, smbus_io_base + SMBHSTDAT0);
-       smbus_delay();
-
-       /* set the device I'm talking too */
-       outb(((device & 0x7f) << 1) | 0, smbus_io_base + SMBXMITADD);
-       smbus_delay();
-
-       outb(address & 0xff, smbus_io_base + SMBHSTCMD);
-       smbus_delay();
-
-       /* set up for a byte data write */
-       outb(0x06, smbus_io_base + SMBHSTPRTCL);
-       smbus_delay();
-
-       /* poll for transaction completion */
-       if (smbus_wait_until_done(smbus_io_base) < 0) {
-               return -3;
-       }
-       global_status_register = inb(smbus_io_base + SMBHSTSTAT) & 0x80; /* lose check */;
-
-       if (global_status_register != 0x80) {
-               return -1;
-       }
-       return 0;
-}
+int smbus_wait_until_ready(unsigned smbus_io_base);
+int smbus_wait_until_done(unsigned smbus_io_base);
+int do_smbus_recv_byte(unsigned smbus_io_base, unsigned device);
+int do_smbus_send_byte(unsigned smbus_io_base, unsigned device, unsigned char val);
+int smbus_read_byte(unsigned device, unsigned address);
+int smbus_write_byte(unsigned device, unsigned address, unsigned char val);