diff options
Diffstat (limited to 'src/superio/smsc')
-rw-r--r-- | src/superio/smsc/sch4037/Makefile.inc | 1 | ||||
-rw-r--r-- | src/superio/smsc/sch4037/sch4037.h | 5 | ||||
-rw-r--r-- | src/superio/smsc/sch4037/sch4037_early_init.c | 11 | ||||
-rw-r--r-- | src/superio/smsc/sch4037/superio.c | 43 |
4 files changed, 27 insertions, 33 deletions
diff --git a/src/superio/smsc/sch4037/Makefile.inc b/src/superio/smsc/sch4037/Makefile.inc index d1fc8ae29b..473f731cce 100644 --- a/src/superio/smsc/sch4037/Makefile.inc +++ b/src/superio/smsc/sch4037/Makefile.inc @@ -17,4 +17,5 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # +romstage-$(CONFIG_SUPERIO_SMSC_SCH4037) += sch4037_early_init.c ramstage-$(CONFIG_SUPERIO_SMSC_SCH4037) += superio.c diff --git a/src/superio/smsc/sch4037/sch4037.h b/src/superio/smsc/sch4037/sch4037.h index d065489a38..23f1e1e485 100644 --- a/src/superio/smsc/sch4037/sch4037.h +++ b/src/superio/smsc/sch4037/sch4037.h @@ -20,7 +20,6 @@ #ifndef SUPERIO_SCH_4037_H #define SUPERIO_SCH_4037_H - #define SCH4037_FDD 0 /* FDD */ #define SCH4037_LPT 3 /* LPT */ #define SMSCSUPERIO_SP1 4 /* Com1 */ @@ -31,4 +30,6 @@ #define SCH4037_RUNTIME 0x0A /* Runtime */ #define SCH4037_XBUS 0x0B /* X-BUS */ -#endif //SUPERIO_SCH_4037_H +void sch4037_early_init(unsigned port); + +#endif /* SUPERIO_SCH_4037_H */ diff --git a/src/superio/smsc/sch4037/sch4037_early_init.c b/src/superio/smsc/sch4037/sch4037_early_init.c index 29517ed662..099e5f27c6 100644 --- a/src/superio/smsc/sch4037/sch4037_early_init.c +++ b/src/superio/smsc/sch4037/sch4037_early_init.c @@ -19,21 +19,24 @@ #include <arch/io.h> +#include <device/pnp.h> +#include <stdint.h> + #include "sch4037.h" -static inline void pnp_enter_conf_state(device_t dev) +static void pnp_enter_conf_state(device_t dev) { - unsigned port = dev>>8; + unsigned port = dev >> 8; outb(0x55, port); } static void pnp_exit_conf_state(device_t dev) { - unsigned port = dev>>8; + unsigned port = dev >> 8; outb(0xaa, port); } -static inline void sch4037_early_init(unsigned port) +void sch4037_early_init(unsigned port) { device_t dev; diff --git a/src/superio/smsc/sch4037/superio.c b/src/superio/smsc/sch4037/superio.c index 35df43126f..ad8d8b4219 100644 --- a/src/superio/smsc/sch4037/superio.c +++ b/src/superio/smsc/sch4037/superio.c @@ -24,20 +24,23 @@ #include <device/pnp.h> #include <superio/conf_mode.h> #include <console/console.h> -#include <device/smbus.h> -#include <string.h> #include <pc80/keyboard.h> #include <stdlib.h> + #include "sch4037.h" -/* Forward declarations */ -static void enable_dev(device_t dev); -static void sch4037_init(device_t dev); +static void sch4037_init(device_t dev) +{ + if (!dev->enabled) { + return; + } -struct chip_operations superio_smsc_sch4037_ops = { - CHIP_NAME("SMSC SCH4037 Super I/O") - .enable_dev = enable_dev, -}; + switch(dev->path.pnp.device) { + case SCH4037_KBC: + pc_keyboard_init(); + break; + } +} static struct device_operations ops = { .read_resources = pnp_read_resources, @@ -54,24 +57,10 @@ static struct pnp_info pnp_dev_info[] = { static void enable_dev(device_t dev) { - printk(BIOS_SPEW, "file '%s',line %d, %s()\n", __FILE__, __LINE__, __func__); pnp_enable_devices(dev, &pnp_ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info); } -static void sch4037_init(device_t dev) -{ - struct resource *res0, *res1; - - if (!dev->enabled) { - return; - } - - switch(dev->path.pnp.device) { - - case SCH4037_KBC: - res0 = find_resource(dev, PNP_IDX_IO0); - res1 = find_resource(dev, PNP_IDX_IO1); - pc_keyboard_init(); - break; - } -} +struct chip_operations superio_smsc_sch4037_ops = { + CHIP_NAME("SMSC SCH4037 Super I/O") + .enable_dev = enable_dev, +}; |