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>
11 static void lm63_init(device_t dev)
14 if (dev->enabled && dev->path.type == DEVICE_PATH_I2C)
16 if(ops_smbus_bus(get_pbus_smbus(dev))) {
17 if( dev->bus->dev->path.type == DEVICE_PATH_I2C) smbus_set_link(dev); // it is under mux
18 result = smbus_read_byte(dev, 0x03);
21 smbus_write_byte(dev, 0x03, result & 0xff); // config lm63
27 static void lm63_noop(device_t dummy)
31 static struct device_operations lm63_operations = {
32 .read_resources = lm63_noop,
33 .set_resources = lm63_noop,
34 .enable_resources = lm63_noop,
38 static void enable_dev(struct device *dev)
40 dev->ops = &lm63_operations;
43 struct chip_operations drivers_i2c_lm63_ops = {
44 CHIP_NAME("National Semiconductor LM63")
45 .enable_dev = enable_dev,