ACPI: LPSS: Provide an SSP type to the driver
[sfrench/cifs-2.6.git] / drivers / acpi / acpi_lpss.c
index c28954411af9db6c14a64a5761b0b7279812fe87..fbe0756259c5a72bc962a06363fb201b77a1e0eb 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/pm_domain.h>
 #include <linux/pm_runtime.h>
 #include <linux/pwm.h>
+#include <linux/pxa2xx_ssp.h>
 #include <linux/suspend.h>
 #include <linux/delay.h>
 
@@ -219,10 +220,16 @@ static void bsw_pwm_setup(struct lpss_private_data *pdata)
        pwm_add_table(bsw_pwm_lookup, ARRAY_SIZE(bsw_pwm_lookup));
 }
 
-static const struct lpss_device_desc lpt_dev_desc = {
+static const struct property_entry lpt_spi_properties[] = {
+       PROPERTY_ENTRY_U32("intel,spi-pxa2xx-type", LPSS_LPT_SSP),
+       { }
+};
+
+static const struct lpss_device_desc lpt_spi_dev_desc = {
        .flags = LPSS_CLK | LPSS_CLK_GATE | LPSS_CLK_DIVIDER | LPSS_LTR
                        | LPSS_SAVE_CTX,
        .prv_offset = 0x800,
+       .properties = lpt_spi_properties,
 };
 
 static const struct lpss_device_desc lpt_i2c_dev_desc = {
@@ -282,9 +289,15 @@ static const struct lpss_device_desc bsw_uart_dev_desc = {
        .properties = uart_properties,
 };
 
+static const struct property_entry byt_spi_properties[] = {
+       PROPERTY_ENTRY_U32("intel,spi-pxa2xx-type", LPSS_BYT_SSP),
+       { }
+};
+
 static const struct lpss_device_desc byt_spi_dev_desc = {
        .flags = LPSS_CLK | LPSS_CLK_GATE | LPSS_CLK_DIVIDER | LPSS_SAVE_CTX,
        .prv_offset = 0x400,
+       .properties = byt_spi_properties,
 };
 
 static const struct lpss_device_desc byt_sdio_dev_desc = {
@@ -305,11 +318,17 @@ static const struct lpss_device_desc bsw_i2c_dev_desc = {
        .resume_from_noirq = true,
 };
 
+static const struct property_entry bsw_spi_properties[] = {
+       PROPERTY_ENTRY_U32("intel,spi-pxa2xx-type", LPSS_BSW_SSP),
+       { }
+};
+
 static const struct lpss_device_desc bsw_spi_dev_desc = {
        .flags = LPSS_CLK | LPSS_CLK_GATE | LPSS_CLK_DIVIDER | LPSS_SAVE_CTX
                        | LPSS_NO_D3_DELAY,
        .prv_offset = 0x400,
        .setup = lpss_deassert_reset,
+       .properties = bsw_spi_properties,
 };
 
 static const struct x86_cpu_id lpss_cpu_ids[] = {
@@ -329,8 +348,8 @@ static const struct acpi_device_id acpi_lpss_device_ids[] = {
        { "INTL9C60", LPSS_ADDR(lpss_dma_desc) },
 
        /* Lynxpoint LPSS devices */
-       { "INT33C0", LPSS_ADDR(lpt_dev_desc) },
-       { "INT33C1", LPSS_ADDR(lpt_dev_desc) },
+       { "INT33C0", LPSS_ADDR(lpt_spi_dev_desc) },
+       { "INT33C1", LPSS_ADDR(lpt_spi_dev_desc) },
        { "INT33C2", LPSS_ADDR(lpt_i2c_dev_desc) },
        { "INT33C3", LPSS_ADDR(lpt_i2c_dev_desc) },
        { "INT33C4", LPSS_ADDR(lpt_uart_dev_desc) },
@@ -356,8 +375,8 @@ static const struct acpi_device_id acpi_lpss_device_ids[] = {
        { "808622C1", LPSS_ADDR(bsw_i2c_dev_desc) },
 
        /* Broadwell LPSS devices */
-       { "INT3430", LPSS_ADDR(lpt_dev_desc) },
-       { "INT3431", LPSS_ADDR(lpt_dev_desc) },
+       { "INT3430", LPSS_ADDR(lpt_spi_dev_desc) },
+       { "INT3431", LPSS_ADDR(lpt_spi_dev_desc) },
        { "INT3432", LPSS_ADDR(lpt_i2c_dev_desc) },
        { "INT3433", LPSS_ADDR(lpt_i2c_dev_desc) },
        { "INT3434", LPSS_ADDR(lpt_uart_dev_desc) },
@@ -366,7 +385,7 @@ static const struct acpi_device_id acpi_lpss_device_ids[] = {
        { "INT3437", },
 
        /* Wildcat Point LPSS devices */
-       { "INT3438", LPSS_ADDR(lpt_dev_desc) },
+       { "INT3438", LPSS_ADDR(lpt_spi_dev_desc) },
 
        { }
 };