From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
linux-arm-kernel@lists.infradead.org, linux-spi@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Daniel Mack <daniel@zonque.org>,
Haojian Zhuang <haojian.zhuang@gmail.com>,
Robert Jarzmik <robert.jarzmik@free.fr>,
Mark Brown <broonie@kernel.org>
Subject: [PATCH v4 1/5] spi: pxa2xx: Respect Intel SSP type given by a property
Date: Thu, 20 Oct 2022 22:44:56 +0300 [thread overview]
Message-ID: <20221020194500.10225-2-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <20221020194500.10225-1-andriy.shevchenko@linux.intel.com>
Allow to set the Intel SSP type by reading the property.
Only apply this to the known MFD enumerated devices.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/spi/spi-pxa2xx.c | 12 ++++++++++++
include/linux/pxa2xx_ssp.h | 1 +
2 files changed, 13 insertions(+)
diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index 03ed6d4a14cd..f3ba1b0588fb 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1460,17 +1460,29 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
struct resource *res;
struct pci_dev *pcidev = dev_is_pci(parent) ? to_pci_dev(parent) : NULL;
const struct pci_device_id *pcidev_id = NULL;
+ u32 value = SSP_UNDEFINED;
enum pxa_ssp_type type;
+ bool mfd_enumerated;
const void *match;
int status;
u64 uid;
+ /* For MFD enumerated devices always ask for a property */
+ mfd_enumerated = platform_get_resource_byname(pdev, IORESOURCE_MEM, "lpss_priv");
+ if (mfd_enumerated) {
+ status = device_property_read_u32(dev, "intel,spi-pxa2xx-type", &value);
+ if (status)
+ return ERR_PTR(status);
+ }
+
if (pcidev)
pcidev_id = pci_match_id(pxa2xx_spi_pci_compound_match, pcidev);
match = device_get_match_data(&pdev->dev);
if (match)
type = (enum pxa_ssp_type)match;
+ else if (value > SSP_UNDEFINED && value < SSP_MAX)
+ type = (enum pxa_ssp_type)value;
else if (pcidev_id)
type = (enum pxa_ssp_type)pcidev_id->driver_data;
else
diff --git a/include/linux/pxa2xx_ssp.h b/include/linux/pxa2xx_ssp.h
index a3fec2de512f..cd1973e6ac4b 100644
--- a/include/linux/pxa2xx_ssp.h
+++ b/include/linux/pxa2xx_ssp.h
@@ -229,6 +229,7 @@ enum pxa_ssp_type {
LPSS_SPT_SSP,
LPSS_BXT_SSP,
LPSS_CNL_SSP,
+ SSP_MAX
};
struct ssp_device {
--
2.35.1
WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
linux-arm-kernel@lists.infradead.org, linux-spi@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Daniel Mack <daniel@zonque.org>,
Haojian Zhuang <haojian.zhuang@gmail.com>,
Robert Jarzmik <robert.jarzmik@free.fr>,
Mark Brown <broonie@kernel.org>
Subject: [PATCH v4 1/5] spi: pxa2xx: Respect Intel SSP type given by a property
Date: Thu, 20 Oct 2022 22:44:56 +0300 [thread overview]
Message-ID: <20221020194500.10225-2-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <20221020194500.10225-1-andriy.shevchenko@linux.intel.com>
Allow to set the Intel SSP type by reading the property.
Only apply this to the known MFD enumerated devices.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/spi/spi-pxa2xx.c | 12 ++++++++++++
include/linux/pxa2xx_ssp.h | 1 +
2 files changed, 13 insertions(+)
diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index 03ed6d4a14cd..f3ba1b0588fb 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1460,17 +1460,29 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
struct resource *res;
struct pci_dev *pcidev = dev_is_pci(parent) ? to_pci_dev(parent) : NULL;
const struct pci_device_id *pcidev_id = NULL;
+ u32 value = SSP_UNDEFINED;
enum pxa_ssp_type type;
+ bool mfd_enumerated;
const void *match;
int status;
u64 uid;
+ /* For MFD enumerated devices always ask for a property */
+ mfd_enumerated = platform_get_resource_byname(pdev, IORESOURCE_MEM, "lpss_priv");
+ if (mfd_enumerated) {
+ status = device_property_read_u32(dev, "intel,spi-pxa2xx-type", &value);
+ if (status)
+ return ERR_PTR(status);
+ }
+
if (pcidev)
pcidev_id = pci_match_id(pxa2xx_spi_pci_compound_match, pcidev);
match = device_get_match_data(&pdev->dev);
if (match)
type = (enum pxa_ssp_type)match;
+ else if (value > SSP_UNDEFINED && value < SSP_MAX)
+ type = (enum pxa_ssp_type)value;
else if (pcidev_id)
type = (enum pxa_ssp_type)pcidev_id->driver_data;
else
diff --git a/include/linux/pxa2xx_ssp.h b/include/linux/pxa2xx_ssp.h
index a3fec2de512f..cd1973e6ac4b 100644
--- a/include/linux/pxa2xx_ssp.h
+++ b/include/linux/pxa2xx_ssp.h
@@ -229,6 +229,7 @@ enum pxa_ssp_type {
LPSS_SPT_SSP,
LPSS_BXT_SSP,
LPSS_CNL_SSP,
+ SSP_MAX
};
struct ssp_device {
--
2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-10-20 19:44 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-20 19:44 [PATCH v4 0/5] spi: pxa2xx: Pass the SSP type via device property Andy Shevchenko
2022-10-20 19:44 ` Andy Shevchenko
2022-10-20 19:44 ` Andy Shevchenko [this message]
2022-10-20 19:44 ` [PATCH v4 1/5] spi: pxa2xx: Respect Intel SSP type given by a property Andy Shevchenko
2022-10-21 12:16 ` Mark Brown
2022-10-21 12:16 ` Mark Brown
2022-10-21 12:26 ` Andy Shevchenko
2022-10-21 12:26 ` Andy Shevchenko
2022-10-20 19:44 ` [PATCH v4 2/5] spi: pxa2xx: Remove no more needed PCI ID table Andy Shevchenko
2022-10-20 19:44 ` Andy Shevchenko
2022-10-20 19:44 ` [PATCH v4 3/5] spi: pxa2xx: Move OF and ACPI ID tables closer to their user Andy Shevchenko
2022-10-20 19:44 ` Andy Shevchenko
2022-10-20 19:44 ` [PATCH v4 4/5] spi: pxa2xx: Consistently use dev variable in pxa2xx_spi_init_pdata() Andy Shevchenko
2022-10-20 19:44 ` Andy Shevchenko
2022-10-20 19:45 ` [PATCH v4 5/5] spi: pxa2xx: Switch from PM ifdeffery to pm_ptr() Andy Shevchenko
2022-10-20 19:45 ` Andy Shevchenko
2022-10-21 15:31 ` (subset) [PATCH v4 0/5] spi: pxa2xx: Pass the SSP type via device property Mark Brown
2022-10-21 15:31 ` Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221020194500.10225-2-andriy.shevchenko@linux.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=broonie@kernel.org \
--cc=daniel@zonque.org \
--cc=haojian.zhuang@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=robert.jarzmik@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.