superio/winbond/w83627*: use hwm5_conf.h for HWM setup
Change-Id: Id78042606f02e02035dc917d162d0c98c9de38a4 Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/35862 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr>
This commit is contained in:
parent
4a0899fe52
commit
08abfa3814
|
@ -20,6 +20,7 @@
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <device/pnp.h>
|
#include <device/pnp.h>
|
||||||
#include <superio/conf_mode.h>
|
#include <superio/conf_mode.h>
|
||||||
|
#include <superio/hwm5_conf.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <pc80/keyboard.h>
|
#include <pc80/keyboard.h>
|
||||||
#include <pc80/mc146818rtc.h>
|
#include <pc80/mc146818rtc.h>
|
||||||
|
@ -65,12 +66,12 @@ static void init_hwm(u16 base)
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(hwm_reg_values); i += 3) {
|
for (i = 0; i < ARRAY_SIZE(hwm_reg_values); i += 3) {
|
||||||
reg = hwm_reg_values[i];
|
reg = hwm_reg_values[i];
|
||||||
value = pnp_read_index(base, reg);
|
value = pnp_read_hwm5_index(base, reg);
|
||||||
value &= 0xff & (~(hwm_reg_values[i + 1]));
|
value &= 0xff & (~(hwm_reg_values[i + 1]));
|
||||||
value |= 0xff & hwm_reg_values[i + 2];
|
value |= 0xff & hwm_reg_values[i + 2];
|
||||||
printk(BIOS_DEBUG, "base = 0x%04x, reg = 0x%02x, "
|
printk(BIOS_DEBUG, "base = 0x%04x, reg = 0x%02x, "
|
||||||
"value = 0x%02x\n", base, reg, value);
|
"value = 0x%02x\n", base, reg, value);
|
||||||
pnp_write_index(base, reg, value);
|
pnp_write_hwm5_index(base, reg, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,8 +88,7 @@ static void w83627ehg_init(struct device *dev)
|
||||||
break;
|
break;
|
||||||
case W83627EHG_HWM:
|
case W83627EHG_HWM:
|
||||||
res0 = find_resource(dev, PNP_IDX_IO0);
|
res0 = find_resource(dev, PNP_IDX_IO0);
|
||||||
#define HWM_INDEX_PORT 5
|
init_hwm(res0->base);
|
||||||
init_hwm(res0->base + HWM_INDEX_PORT);
|
|
||||||
break;
|
break;
|
||||||
case W83627EHG_ACPI:
|
case W83627EHG_ACPI:
|
||||||
init_acpi(dev);
|
init_acpi(dev);
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <device/pnp.h>
|
#include <device/pnp.h>
|
||||||
#include <superio/conf_mode.h>
|
#include <superio/conf_mode.h>
|
||||||
|
#include <superio/hwm5_conf.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <pc80/keyboard.h>
|
#include <pc80/keyboard.h>
|
||||||
#include <pc80/mc146818rtc.h>
|
#include <pc80/mc146818rtc.h>
|
||||||
|
@ -72,12 +73,12 @@ static void init_hwm(u16 base)
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(hwm_reg_values); i += 3) {
|
for (i = 0; i < ARRAY_SIZE(hwm_reg_values); i += 3) {
|
||||||
reg = hwm_reg_values[i];
|
reg = hwm_reg_values[i];
|
||||||
value = pnp_read_index(base, reg);
|
value = pnp_read_hwm5_index(base, reg);
|
||||||
value &= 0xff & hwm_reg_values[i + 1];
|
value &= 0xff & hwm_reg_values[i + 1];
|
||||||
value |= 0xff & hwm_reg_values[i + 2];
|
value |= 0xff & hwm_reg_values[i + 2];
|
||||||
printk(BIOS_DEBUG, "base = 0x%04x, reg = 0x%02x, "
|
printk(BIOS_DEBUG, "base = 0x%04x, reg = 0x%02x, "
|
||||||
"value = 0x%02x\n", base, reg, value);
|
"value = 0x%02x\n", base, reg, value);
|
||||||
pnp_write_index(base, reg, value);
|
pnp_write_hwm5_index(base, reg, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,8 +95,7 @@ static void w83627hf_init(struct device *dev)
|
||||||
break;
|
break;
|
||||||
case W83627HF_HWM:
|
case W83627HF_HWM:
|
||||||
res0 = find_resource(dev, PNP_IDX_IO0);
|
res0 = find_resource(dev, PNP_IDX_IO0);
|
||||||
#define HWM_INDEX_PORT 5
|
init_hwm(res0->base);
|
||||||
init_hwm(res0->base + HWM_INDEX_PORT);
|
|
||||||
break;
|
break;
|
||||||
case W83627HF_ACPI:
|
case W83627HF_ACPI:
|
||||||
init_acpi(dev);
|
init_acpi(dev);
|
||||||
|
|
Loading…
Reference in New Issue