1 /* SPDX-License-Identifier: GPL-2.0-only */
4 #include <device/device.h>
5 #include <drivers/intel/gma/int15.h>
7 #include <ec/smsc/mec1308/ec.h>
10 #include <southbridge/intel/bd82x6x/pch.h>
13 void mainboard_suspend_resume(void)
15 /* Enable EC ACPI mode for the OS before resume */
16 send_ec_command(EC_SMI_DISABLE
);
17 send_ec_command(EC_ACPI_ENABLE
);
20 static void mainboard_init(struct device
*dev
)
22 /* Initialize the Embedded Controller */
26 static int lumpy_smbios_type41_irq(int *handle
, unsigned long *current
,
27 const char *name
, u8 irq
, u8 addr
)
29 struct smbios_type41
*t
= smbios_carve_table(*current
,
30 SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION
,
33 t
->reference_designation
= smbios_add_string(t
->eos
, name
);
34 t
->device_type
= SMBIOS_DEVICE_TYPE_OTHER
;
36 t
->device_type_instance
= irq
;
37 t
->segment_group_number
= 0;
39 t
->function_number
= 0;
42 const int len
= smbios_full_table_len(&t
->header
, t
->eos
);
49 static int lumpy_onboard_smbios_data(struct device
*dev
, int *handle
,
50 unsigned long *current
)
54 len
+= lumpy_smbios_type41_irq(handle
, current
,
55 BOARD_LIGHTSENSOR_NAME
,
56 BOARD_LIGHTSENSOR_IRQ
,
57 BOARD_LIGHTSENSOR_I2C_ADDR
);
59 len
+= lumpy_smbios_type41_irq(handle
, current
,
62 BOARD_TRACKPAD_I2C_ADDR
);
67 // mainboard_enable is executed as first thing after
70 static void mainboard_enable(struct device
*dev
)
72 dev
->ops
->init
= mainboard_init
;
73 dev
->ops
->get_smbios_data
= lumpy_onboard_smbios_data
;
74 install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS
, GMA_INT15_PANEL_FIT_DEFAULT
, GMA_INT15_BOOT_DISPLAY_DEFAULT
, 0);
77 struct chip_operations mainboard_ops
= {
78 .enable_dev
= mainboard_enable
,