30
30
31
31
#define DRV_NAME "cros_ec_lpcs"
32
32
#define ACPI_DRV_NAME "GOOG0004"
33
+ #define FRMW_ACPI_DRV_NAME "FRMWC004"
33
34
34
35
/* True if ACPI device is present */
35
36
static bool cros_ec_lpc_acpi_device_found ;
@@ -514,7 +515,7 @@ static int cros_ec_lpc_probe(struct platform_device *pdev)
514
515
acpi_status status ;
515
516
struct cros_ec_device * ec_dev ;
516
517
struct cros_ec_lpc * ec_lpc ;
517
- struct lpc_driver_data * driver_data ;
518
+ const struct lpc_driver_data * driver_data ;
518
519
u8 buf [2 ] = {};
519
520
int irq , ret ;
520
521
u32 quirks ;
@@ -526,6 +527,9 @@ static int cros_ec_lpc_probe(struct platform_device *pdev)
526
527
ec_lpc -> mmio_memory_base = EC_LPC_ADDR_MEMMAP ;
527
528
528
529
driver_data = platform_get_drvdata (pdev );
530
+ if (!driver_data )
531
+ driver_data = acpi_device_get_match_data (dev );
532
+
529
533
if (driver_data ) {
530
534
quirks = driver_data -> quirks ;
531
535
@@ -696,12 +700,6 @@ static void cros_ec_lpc_remove(struct platform_device *pdev)
696
700
cros_ec_unregister (ec_dev );
697
701
}
698
702
699
- static const struct acpi_device_id cros_ec_lpc_acpi_device_ids [] = {
700
- { ACPI_DRV_NAME , 0 },
701
- { }
702
- };
703
- MODULE_DEVICE_TABLE (acpi , cros_ec_lpc_acpi_device_ids );
704
-
705
703
static const struct lpc_driver_data framework_laptop_npcx_lpc_driver_data __initconst = {
706
704
.quirks = CROS_EC_LPC_QUIRK_REMAP_MEMORY ,
707
705
.quirk_mmio_memory_base = 0xE00 ,
@@ -713,6 +711,13 @@ static const struct lpc_driver_data framework_laptop_mec_lpc_driver_data __initc
713
711
.quirk_aml_mutex_name = "ECMT" ,
714
712
};
715
713
714
+ static const struct acpi_device_id cros_ec_lpc_acpi_device_ids [] = {
715
+ { ACPI_DRV_NAME , 0 },
716
+ { FRMW_ACPI_DRV_NAME , (kernel_ulong_t )& framework_laptop_npcx_lpc_driver_data },
717
+ { }
718
+ };
719
+ MODULE_DEVICE_TABLE (acpi , cros_ec_lpc_acpi_device_ids );
720
+
716
721
static const struct dmi_system_id cros_ec_lpc_dmi_table [] __initconst = {
717
722
{
718
723
/*
@@ -866,7 +871,8 @@ static int __init cros_ec_lpc_init(void)
866
871
int ret ;
867
872
const struct dmi_system_id * dmi_match ;
868
873
869
- cros_ec_lpc_acpi_device_found = !!cros_ec_lpc_get_device (ACPI_DRV_NAME );
874
+ cros_ec_lpc_acpi_device_found = !!cros_ec_lpc_get_device (ACPI_DRV_NAME ) ||
875
+ !!cros_ec_lpc_get_device (FRMW_ACPI_DRV_NAME );
870
876
871
877
dmi_match = dmi_first_match (cros_ec_lpc_dmi_table );
872
878
0 commit comments