[RFC PATCH 12/36] platform: arm64: Move ec devices to an ec subdirectory

Ben Horgan ben.horgan at arm.com
Thu Jul 24 03:56:35 PDT 2025


Hi James,

On 11/07/2025 19:36, James Morse wrote:
> commit 363c8aea257 "platform: Add ARM64 platform directory" added a
> subdirectory for arm64 platform devices, but claims that all such
> devices must be 'EC like'.
> 
> The arm64 MPAM driver manages an MMIO interface that appears in memory
> controllers, caches, IOMMU and connection points on the interconnect.
> It doesn't fit into any existing subsystem.
> 
> It would be convenient to use this subdirectory for drivers for other
> arm64 platform devices which aren't closely coupled to the architecture
> code and don't fit into any existing subsystem.
> 
> Move the existing code and maintainer entries to be under
> drivers/platform/arm64/ec. The MPAM driver will be added under
> drivers/platform/arm64/mpam.
> 
> Signed-off-by: James Morse <james.morse at arm.com>
> ---
>   MAINTAINERS                                   |  6 +-
>   drivers/platform/arm64/Kconfig                | 72 +-----------------
>   drivers/platform/arm64/Makefile               |  9 +--
>   drivers/platform/arm64/ec/Kconfig             | 73 +++++++++++++++++++
>   drivers/platform/arm64/ec/Makefile            | 10 +++
>   .../platform/arm64/{ => ec}/acer-aspire1-ec.c |  0
>   .../arm64/{ => ec}/huawei-gaokun-ec.c         |  0
>   .../arm64/{ => ec}/lenovo-yoga-c630.c         |  0
>   8 files changed, 88 insertions(+), 82 deletions(-)
>   create mode 100644 drivers/platform/arm64/ec/Kconfig
>   create mode 100644 drivers/platform/arm64/ec/Makefile
>   rename drivers/platform/arm64/{ => ec}/acer-aspire1-ec.c (100%)
>   rename drivers/platform/arm64/{ => ec}/huawei-gaokun-ec.c (100%)
>   rename drivers/platform/arm64/{ => ec}/lenovo-yoga-c630.c (100%)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 4bac4ea21b64..bea01d413666 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -3549,15 +3549,15 @@ S:	Maintained
>   F:	arch/arm64/boot/Makefile
>   F:	scripts/make_fit.py
>   
> -ARM64 PLATFORM DRIVERS
> -M:	Hans de Goede <hansg at kernel.org>
> +ARM64 EC PLATFORM DRIVERS
> +M:	Hans de Goede <hdegoede at redhat.com>
>   M:	Ilpo Järvinen <ilpo.jarvinen at linux.intel.com>
>   R:	Bryan O'Donoghue <bryan.odonoghue at linaro.org>
>   L:	platform-driver-x86 at vger.kernel.org
>   S:	Maintained
>   Q:	https://patchwork.kernel.org/project/platform-driver-x86/list/
>   T:	git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
> -F:	drivers/platform/arm64/
> +F:	drivers/platform/arm64/ec
>   
>   ARM64 PORT (AARCH64 ARCHITECTURE)
>   M:	Catalin Marinas <catalin.marinas at arm.com>
> diff --git a/drivers/platform/arm64/Kconfig b/drivers/platform/arm64/Kconfig
> index 06288aebc559..1eb8ab0855e5 100644
> --- a/drivers/platform/arm64/Kconfig
> +++ b/drivers/platform/arm64/Kconfig
> @@ -1,73 +1,3 @@
>   # SPDX-License-Identifier: GPL-2.0-only
> -#
> -# EC-like Drivers for aarch64 based devices.
> -#
>   
> -menuconfig ARM64_PLATFORM_DEVICES
> -	bool "ARM64 Platform-Specific Device Drivers"
> -	depends on ARM64 || COMPILE_TEST
> -	default ARM64
> -	help
> -	  Say Y here to get to see options for platform-specific device drivers
> -	  for arm64 based devices, primarily EC-like device drivers.
> -	  This option alone does not add any kernel code.
> -
> -	  If you say N, all options in this submenu will be skipped and disabled.
> -
> -if ARM64_PLATFORM_DEVICES

> -
> -config EC_ACER_ASPIRE1
> -	tristate "Acer Aspire 1 Embedded Controller driver"
> -	depends on ARCH_QCOM || COMPILE_TEST
> -	depends on I2C
> -	depends on DRM
> -	depends on POWER_SUPPLY
> -	depends on INPUT
> -	help
> -	  Say Y here to enable the EC driver for the (Snapdragon-based)
> -	  Acer Aspire 1 laptop. The EC handles battery and charging
> -	  monitoring as well as some misc functions like the lid sensor
> -	  and USB Type-C DP HPD events.
> -
> -	  This driver provides battery and AC status support for the mentioned
> -	  laptop where this information is not properly exposed via the
> -	  standard ACPI devices.
> -
> -config EC_HUAWEI_GAOKUN
> -	tristate "Huawei Matebook E Go Embedded Controller driver"
> -	depends on ARCH_QCOM || COMPILE_TEST
> -	depends on I2C
> -	depends on INPUT
> -	depends on HWMON
> -	select AUXILIARY_BUS
> -
> -	help
> -	  Say Y here to enable the EC driver for the Huawei Matebook E Go
> -	  which is a sc8280xp-based 2-in-1 tablet. The driver handles battery
> -	  (information, charge control) and USB Type-C DP HPD events as well
> -	  as some misc functions like the lid sensor and temperature sensors,
> -	  etc.
> -
> -	  This driver provides battery and AC status support for the mentioned
> -	  laptop where this information is not properly exposed via the
> -	  standard ACPI devices.
> -
> -	  Say M or Y here to include this support.
> -
> -config EC_LENOVO_YOGA_C630
> -	tristate "Lenovo Yoga C630 Embedded Controller driver"
> -	depends on ARCH_QCOM || COMPILE_TEST
> -	depends on I2C
> -	select AUXILIARY_BUS
> -	help
> -	  Driver for the Embedded Controller in the Qualcomm Snapdragon-based
> -	  Lenovo Yoga C630, which provides battery and power adapter
> -	  information.
> -
> -	  This driver provides battery and AC status support for the mentioned
> -	  laptop where this information is not properly exposed via the
> -	  standard ACPI devices.
> -
> -	  Say M or Y here to include this support.
> -
> -endif # ARM64_PLATFORM_DEVICES
> +source "drivers/platform/arm64/ec/Kconfig"
> diff --git a/drivers/platform/arm64/Makefile b/drivers/platform/arm64/Makefile
> index 46a99eba3264..ce840a8cf8cc 100644
> --- a/drivers/platform/arm64/Makefile
> +++ b/drivers/platform/arm64/Makefile
> @@ -1,10 +1,3 @@
>   # SPDX-License-Identifier: GPL-2.0-only
> -#
> -# Makefile for linux/drivers/platform/arm64
> -#
> -# This dir should only include drivers for EC-like devices.
> -#
>   
> -obj-$(CONFIG_EC_ACER_ASPIRE1)	+= acer-aspire1-ec.o
> -obj-$(CONFIG_EC_HUAWEI_GAOKUN)	+= huawei-gaokun-ec.o
> -obj-$(CONFIG_EC_LENOVO_YOGA_C630) += lenovo-yoga-c630.o
> +obj-y             += ec/
> diff --git a/drivers/platform/arm64/ec/Kconfig b/drivers/platform/arm64/ec/Kconfig
> new file mode 100644
> index 000000000000..06288aebc559
> --- /dev/null
> +++ b/drivers/platform/arm64/ec/Kconfig
> @@ -0,0 +1,73 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +#
> +# EC-like Drivers for aarch64 based devices.
> +#
> +
> +menuconfig ARM64_PLATFORM_DEVICES
> +	bool "ARM64 Platform-Specific Device Drivers"
> +	depends on ARM64 || COMPILE_TEST
> +	default ARM64
> +	help
> +	  Say Y here to get to see options for platform-specific device drivers
> +	  for arm64 based devices, primarily EC-like device drivers.
> +	  This option alone does not add any kernel code.
> +
> +	  If you say N, all options in this submenu will be skipped and disabled.
> +
> +if ARM64_PLATFORM_DEVICES
Shouldn't this be kept in the directory above? By the description this 
would be expected to apply to all drivers in drivers/platfrom/arm64.> +
> +config EC_ACER_ASPIRE1
> +	tristate "Acer Aspire 1 Embedded Controller driver"
> +	depends on ARCH_QCOM || COMPILE_TEST
> +	depends on I2C
> +	depends on DRM
> +	depends on POWER_SUPPLY
> +	depends on INPUT
> +	help
> +	  Say Y here to enable the EC driver for the (Snapdragon-based)
> +	  Acer Aspire 1 laptop. The EC handles battery and charging
> +	  monitoring as well as some misc functions like the lid sensor
> +	  and USB Type-C DP HPD events.
> +
> +	  This driver provides battery and AC status support for the mentioned
> +	  laptop where this information is not properly exposed via the
> +	  standard ACPI devices.
> +
> +config EC_HUAWEI_GAOKUN
> +	tristate "Huawei Matebook E Go Embedded Controller driver"
> +	depends on ARCH_QCOM || COMPILE_TEST
> +	depends on I2C
> +	depends on INPUT
> +	depends on HWMON
> +	select AUXILIARY_BUS
> +
> +	help
> +	  Say Y here to enable the EC driver for the Huawei Matebook E Go
> +	  which is a sc8280xp-based 2-in-1 tablet. The driver handles battery
> +	  (information, charge control) and USB Type-C DP HPD events as well
> +	  as some misc functions like the lid sensor and temperature sensors,
> +	  etc.
> +
> +	  This driver provides battery and AC status support for the mentioned
> +	  laptop where this information is not properly exposed via the
> +	  standard ACPI devices.
> +
> +	  Say M or Y here to include this support.
> +
> +config EC_LENOVO_YOGA_C630
> +	tristate "Lenovo Yoga C630 Embedded Controller driver"
> +	depends on ARCH_QCOM || COMPILE_TEST
> +	depends on I2C
> +	select AUXILIARY_BUS
> +	help
> +	  Driver for the Embedded Controller in the Qualcomm Snapdragon-based
> +	  Lenovo Yoga C630, which provides battery and power adapter
> +	  information.
> +
> +	  This driver provides battery and AC status support for the mentioned
> +	  laptop where this information is not properly exposed via the
> +	  standard ACPI devices.
> +
> +	  Say M or Y here to include this support.
> +
> +endif # ARM64_PLATFORM_DEVICES
> diff --git a/drivers/platform/arm64/ec/Makefile b/drivers/platform/arm64/ec/Makefile
> new file mode 100644
> index 000000000000..b3a7c4096f08
> --- /dev/null
> +++ b/drivers/platform/arm64/ec/Makefile
> @@ -0,0 +1,10 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +#
> +# Makefile for linux/drivers/platform/arm64/ec
> +#
> +# This dir should only include drivers for EC-like devices.
> +#
> +
> +obj-$(CONFIG_EC_ACER_ASPIRE1)	+= acer-aspire1-ec.o
> +obj-$(CONFIG_EC_HUAWEI_GAOKUN)	+= huawei-gaokun-ec.o
> +obj-$(CONFIG_EC_LENOVO_YOGA_C630) += lenovo-yoga-c630.o
> diff --git a/drivers/platform/arm64/acer-aspire1-ec.c b/drivers/platform/arm64/ec/acer-aspire1-ec.c
> similarity index 100%
> rename from drivers/platform/arm64/acer-aspire1-ec.c
> rename to drivers/platform/arm64/ec/acer-aspire1-ec.c
> diff --git a/drivers/platform/arm64/huawei-gaokun-ec.c b/drivers/platform/arm64/ec/huawei-gaokun-ec.c
> similarity index 100%
> rename from drivers/platform/arm64/huawei-gaokun-ec.c
> rename to drivers/platform/arm64/ec/huawei-gaokun-ec.c
> diff --git a/drivers/platform/arm64/lenovo-yoga-c630.c b/drivers/platform/arm64/ec/lenovo-yoga-c630.c
> similarity index 100%
> rename from drivers/platform/arm64/lenovo-yoga-c630.c
> rename to drivers/platform/arm64/ec/lenovo-yoga-c630.c
Thanks,

Ben




More information about the linux-arm-kernel mailing list