drivers/i2c/sx9324: Add support for Linux's SX9324 driver

SX9324 driver is updated per Linux's documentation found at
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml

Supporting logic for the deprecated SX932x driver is hence guarded by
DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER

This patch by itself does not introduce functional changes to any board.
The legacy SX932x Linux driver never reached upstream Linux and is only
available in ChromeOS kernel fork of 4.4 and 5.4. Linux later accepted
a different implementation named SX9324 and has been available since
5.4. Ideally all variants should adopt the new driver; however, during
the transition phase, coreboot must support both drivers. It is better
to have a single firmware build that can work with both Linux kernel
drivers by specifying both sets of properties. Legacy driver support
should be deleted once all variants finish migration.

BUG=b:242662878
TEST=Dump ACPI SSDT then verify _DSD entries related to the legacy
     SX932x driver are identical w/ and w/o this patch
     (Tested on Craask and Nivviks)

Change-Id: I42cd6841c3a270c242ed2e739db245e858eadb3b
Signed-off-by: Victor Ding <victording@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69192
Reviewed-by: Reka Norman <rekanorman@chromium.org>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
diff --git a/src/drivers/i2c/sx9324/sx9324.c b/src/drivers/i2c/sx9324/sx9324.c
index 2ca9f36..3678491 100644
--- a/src/drivers/i2c/sx9324/sx9324.c
+++ b/src/drivers/i2c/sx9324/sx9324.c
@@ -56,7 +56,23 @@
 
 	/* DSD */
 	dsd = acpi_dp_new_table("_DSD");
+	acpi_dp_add_integer_array(dsd, "semtech,ph0-pin", config->ph0_pin, ARRAY_SIZE(config->ph0_pin));
+	acpi_dp_add_integer_array(dsd, "semtech,ph1-pin", config->ph1_pin, ARRAY_SIZE(config->ph1_pin));
+	acpi_dp_add_integer_array(dsd, "semtech,ph2-pin", config->ph2_pin, ARRAY_SIZE(config->ph2_pin));
+	acpi_dp_add_integer_array(dsd, "semtech,ph3-pin", config->ph3_pin, ARRAY_SIZE(config->ph3_pin));
+	acpi_dp_add_integer(dsd, "semtech,ph01-resolution", config->ph01_resolution);
+	acpi_dp_add_integer(dsd, "semtech,ph23-resolution", config->ph23_resolution);
+	acpi_dp_add_integer(dsd, "semtech,startup-sensor", config->startup_sensor);
+	acpi_dp_add_integer(dsd, "semtech,ph01-proxraw-strength", config->ph01_proxraw_strength);
+	acpi_dp_add_integer(dsd, "semtech,ph23-proxraw-strength", config->ph23_proxraw_strength);
+	acpi_dp_add_integer(dsd, "semtech,avg-pos-strength", config->avg_pos_strength);
+	acpi_dp_add_integer(dsd, "semtech,input-precharge-resistor-ohms", config->input_precharge_resistor_ohms);
+	acpi_dp_add_integer(dsd, "semtech,input-analog-gain", config->input_analog_gain);
+	acpi_dp_add_string(dsd, "semtech,cs-idle-sleep", config->cs_idle_sleep);
+	acpi_dp_add_string(dsd, "semtech,int-comp-resistor", config->int_comp_resistor);
+#if CONFIG(DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER)
 #include "registers.h"
+#endif
 	acpi_dp_write(dsd);
 
 	acpigen_pop_len(); /* Device */