summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/southbridge/via/common/early_smbus_delay.c26
-rw-r--r--src/southbridge/via/common/early_smbus_is_busy.c31
-rw-r--r--src/southbridge/via/common/early_smbus_print_error.c51
-rw-r--r--src/southbridge/via/common/early_smbus_read_byte.c51
-rw-r--r--src/southbridge/via/common/early_smbus_reset.c30
-rw-r--r--src/southbridge/via/common/early_smbus_wait_until_ready.c42
-rw-r--r--src/southbridge/via/common/via_early_smbus.h51
7 files changed, 0 insertions, 282 deletions
diff --git a/src/southbridge/via/common/early_smbus_delay.c b/src/southbridge/via/common/early_smbus_delay.c
deleted file mode 100644
index c75152c3a7..0000000000
--- a/src/southbridge/via/common/early_smbus_delay.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2011-2013 Alexandru Gagniuc <mr.nuke.me@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <arch/io.h>
-#include <device/early_smbus.h>
-
-/**
- * \brief Brief delay for SMBus transactions
- */
-void smbus_delay(void)
-{
- inb(0x80);
-}
diff --git a/src/southbridge/via/common/early_smbus_is_busy.c b/src/southbridge/via/common/early_smbus_is_busy.c
deleted file mode 100644
index 8321a55bd5..0000000000
--- a/src/southbridge/via/common/early_smbus_is_busy.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2013 Alexandru Gagniuc <mr.nuke.me@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <arch/io.h>
-#include <device/early_smbus.h>
-
-#include "via_early_smbus.h"
-
-/**
- * \brief Checks if the SMBus is currently busy with a transaction
- *
- * @param smbus_dev The base SMBus IO port
- */
-int smbus_is_busy(u32 smbus_dev)
-{
- /* Check if bit 0 of the status register is 1 (busy) or 0 (ready) */
- return ((inb(SMBHSTSTAT(smbus_dev)) & (1 << 0)) == 1);
-}
diff --git a/src/southbridge/via/common/early_smbus_print_error.c b/src/southbridge/via/common/early_smbus_print_error.c
deleted file mode 100644
index cf65b2ec59..0000000000
--- a/src/southbridge/via/common/early_smbus_print_error.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2013 Alexandru Gagniuc <mr.nuke.me@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <device/early_smbus.h>
-
-#include "via_early_smbus.h"
-
-/**
- * \brief Print an error, should it occur. If no error, just exit.
- *
- * @param smbus_dev The base SMBus IO port
- * @param host_status The data returned on the host status register after
- * a transaction is processed.
- * @param loops The number of times a transaction was attempted.
- * @return 0 if no error occurred
- * 1 if an error was detected
- */
-int smbus_print_error(u32 smbus_dev, u8 host_status, int loops)
-{
- /* Check if there actually was an error. */
- if ((host_status == 0x00 || host_status == 0x40 ||
- host_status == 0x42) && (loops < SMBUS_TIMEOUT))
- return 0;
-
- if (loops >= SMBUS_TIMEOUT)
- printsmbus("SMBus timeout\n");
- if (host_status & (1 << 4))
- printsmbus("Interrupt/SMI# was Failed Bus Transaction\n");
- if (host_status & (1 << 3))
- printsmbus("Bus error\n");
- if (host_status & (1 << 2))
- printsmbus("Device error\n");
- if (host_status & (1 << 1))
- printsmbus("Interrupt/SMI# completed successfully\n");
- if (host_status & (1 << 0))
- printsmbus("Host busy\n");
- return 1;
-}
diff --git a/src/southbridge/via/common/early_smbus_read_byte.c b/src/southbridge/via/common/early_smbus_read_byte.c
deleted file mode 100644
index 4f6e29e71b..0000000000
--- a/src/southbridge/via/common/early_smbus_read_byte.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2013 Alexandru Gagniuc <mr.nuke.me@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <arch/io.h>
-#include <device/early_smbus.h>
-
-#include "via_early_smbus.h"
-
-/**
- * \brief Read a byte from the SMBus.
- *
- * @param smbus_dev The base SMBus IO port
- * @param addr The address location of the DIMM on the SMBus.
- * @param offset The offset the data is located at.
- */
-u8 smbus_read_byte(u32 smbus_dev, u8 addr, u8 offset)
-{
- u8 val;
-
- /* Initialize SMBus sequence */
- smbus_reset(smbus_dev);
- /* Clear host data port. */
- outb(0x00, SMBHSTDAT0(smbus_dev));
-
- smbus_wait_until_ready(smbus_dev);
-
- /* Actual addr to reg format. */
- addr = (addr << 1);
- addr |= 1; /* read command */
- outb(addr, SMBXMITADD(smbus_dev));
- outb(offset, SMBHSTCMD(smbus_dev));
- /* Start transaction, byte data read. */
- outb(0x48, SMBHSTCTL(smbus_dev));
- smbus_wait_until_ready(smbus_dev);
-
- val = inb(SMBHSTDAT0(smbus_dev));
- return val;
-}
diff --git a/src/southbridge/via/common/early_smbus_reset.c b/src/southbridge/via/common/early_smbus_reset.c
deleted file mode 100644
index 44975408cb..0000000000
--- a/src/southbridge/via/common/early_smbus_reset.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2013 Alexandru Gagniuc <mr.nuke.me@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <arch/io.h>
-#include <device/early_smbus.h>
-
-#include "via_early_smbus.h"
-
-/**
- * \brief Clear the SMBus host status register
- *
- * @param smbus_dev The base SMBus IO port
- */
-void smbus_reset(u32 smbus_dev)
-{
- outb(0xdf, SMBHSTSTAT(smbus_dev));
-}
diff --git a/src/southbridge/via/common/early_smbus_wait_until_ready.c b/src/southbridge/via/common/early_smbus_wait_until_ready.c
deleted file mode 100644
index 6b189362ec..0000000000
--- a/src/southbridge/via/common/early_smbus_wait_until_ready.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2013 Alexandru Gagniuc <mr.nuke.me@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <arch/io.h>
-#include <device/early_smbus.h>
-
-#include "via_early_smbus.h"
-
-/**
- * \brief Wait for the SMBus to become ready to process a new transaction.
- *
- * @param smbus_dev The base SMBus IO port
- */
-int smbus_wait_until_ready(u32 smbus_dev)
-{
- int loops;
-
- printsmbus("Waiting until SMBus ready\n");
-
- /* Loop up to SMBUS_TIMEOUT times, waiting for bit 0 of the
- * SMBus Host Status register to go to 0, indicating the operation
- * was completed successfully. I don't remember why I did it this way,
- * but I think it was because ROMCC was running low on registers */
- loops = 0;
- while (smbus_is_busy(smbus_dev) && loops < SMBUS_TIMEOUT)
- ++loops;
-
- return smbus_print_error(smbus_dev, inb(SMBHSTSTAT(smbus_dev)), loops);
-}
diff --git a/src/southbridge/via/common/via_early_smbus.h b/src/southbridge/via/common/via_early_smbus.h
deleted file mode 100644
index 1dce9b6049..0000000000
--- a/src/southbridge/via/common/via_early_smbus.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2013 Alexandru Gagniuc <mr.nuke.me@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-/**
- * @file via_early_smbus.h
- *
- * This file contains generic definitions used in VIA SMBus controllers.
- *
- * Functions defined in device/early/smbus.h are each implemented in a separate
- * early_smbus_[func_name].c file. This makes it possible to override any of
- * these functions by not including them in your build, via Makefile.c. This is
- * useful when there is a need to work around chipset bugs.
- *
- * These implementations work with most via chipsets. Any VIA port should try
- * to use these. Makefile.inc needs to be adapted to link against the files
- * providing SMBus functionality:
- * @code
- * romstage-y += ./../../../southbridge/via/common/early_smbus_func.c
- * @endcode
- */
-
-/**
- * \brief SMBus IO ports in relation to the base IO port
- */
-
-#define SMBHSTSTAT(base) ((u16)base + 0x0)
-#define SMBSLVSTAT(base) ((u16)base + 0x1)
-#define SMBHSTCTL(base) ((u16)base + 0x2)
-#define SMBHSTCMD(base) ((u16)base + 0x3)
-#define SMBXMITADD(base) ((u16)base + 0x4)
-#define SMBHSTDAT0(base) ((u16)base + 0x5)
-#define SMBHSTDAT1(base) ((u16)base + 0x6)
-#define SMBBLKDAT(base) ((u16)base + 0x7)
-#define SMBSLVCTL(base) ((u16)base + 0x8)
-#define SMBTRNSADD(base) ((u16)base + 0x9)
-#define SMBSLVDATA (base) ((u16)base + 0xa)
-
-#define SMBUS_TIMEOUT (100*1000*10)