ec/lenovo/h8: Add Kconfig option for Fn-Ctrl swap

Having to use a runtime configurable option backend like CMOS just to
specify the value of the "fn_ctrl_swap" option is annoying. Introduce
a new Kconfig option to allow specifying the fallback value, which is
only used when the option backend cannot provide a value.

Change-Id: I00bb3cd60c443fc0c8adb82e8e0c436dfc5de24b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/67836
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
diff --git a/src/ec/lenovo/h8/Kconfig b/src/ec/lenovo/h8/Kconfig
index 698816f..57d7da6 100644
--- a/src/ec/lenovo/h8/Kconfig
+++ b/src/ec/lenovo/h8/Kconfig
@@ -28,6 +28,14 @@
 	  Disable BDC detection and assume bluetooth is installed. Required for
 	  bluetooth on wifi cards, as it's not possible to detect it in coreboot.
 
+config H8_FN_CTRL_SWAP
+	bool "Swap Fn and Ctrl keys"
+	help
+	  Specifies the fallback value of the "fn_ctrl_swap" option, which is
+	  only used when the value cannot be obtained from the option backend.
+	  The main use-case for this Kconfig option is to enable Fn-Ctrl swap
+	  without using any runtime configurable option backends (e.g. CMOS).
+
 config H8_HAS_BAT_THRESHOLDS_IMPL
 	bool
 	default n
diff --git a/src/ec/lenovo/h8/h8.c b/src/ec/lenovo/h8/h8.c
index bbe6490..3df20c1 100644
--- a/src/ec/lenovo/h8/h8.c
+++ b/src/ec/lenovo/h8/h8.c
@@ -311,7 +311,7 @@
 	if (conf->has_uwb)
 		h8_uwb_enable(get_uint_option("uwb", 1));
 
-	h8_fn_ctrl_swap(get_uint_option("fn_ctrl_swap", 0));
+	h8_fn_ctrl_swap(get_uint_option("fn_ctrl_swap", CONFIG(H8_FN_CTRL_SWAP)));
 
 	h8_sticky_fn(get_uint_option("sticky_fn", 0));