1 #include <console/console.h>
2 #include <device/device.h>
3 #include <device/smbus.h>
4 #include <device/pci.h>
5 #include <device/pci_ids.h>
6 #include <device/pci_ops.h>
7 #include <cpu/x86/msr.h>
10 static void lm63_init(device_t dev)
13 if (dev->enabled && dev->path.type == DEVICE_PATH_I2C) {
14 if (ops_smbus_bus(get_pbus_smbus(dev))) {
15 if (dev->bus->dev->path.type == DEVICE_PATH_I2C)
16 smbus_set_link(dev); // it is under mux
17 result = smbus_read_byte(dev, 0x03);
20 smbus_write_byte(dev, 0x03, result & 0xff); // config lm63
25 static void lm63_noop(device_t dummy)
29 static struct device_operations lm63_operations = {
30 .read_resources = lm63_noop,
31 .set_resources = lm63_noop,
32 .enable_resources = lm63_noop,
36 static void enable_dev(struct device *dev)
38 dev->ops = &lm63_operations;
41 struct chip_operations drivers_i2c_lm63_ops = {
42 CHIP_NAME("National Semiconductor LM63")
43 .enable_dev = enable_dev,