linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Darren Hart <dvhart@infradead.org>,
	Lee Jones <lee.jones@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	"H . Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org, Zha Qipeng <qipeng.zha@intel.com>,
	"David E . Box" <david.e.box@linux.intel.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Wim Van Sebroeck <wim@linux-watchdog.org>,
	Mark Brown <broonie@kernel.org>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v4 27/38] mfd: intel_soc_pmic_bxtwc: Convert to use new SCU IPC API
Date: Tue, 21 Jan 2020 19:01:03 +0300	[thread overview]
Message-ID: <20200121160114.60007-28-mika.westerberg@linux.intel.com> (raw)
In-Reply-To: <20200121160114.60007-1-mika.westerberg@linux.intel.com>

Convert the Intel Broxton Whiskey Cover PMIC driver to use the new SCU
IPC API. This allows us to get rid of the PMC IPC implementation which
is now covered in SCU IPC driver.

Also move PMIC specific IPC message constants to the PMIC driver from
the intel_pmc_ipc.h header.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 arch/x86/include/asm/intel_pmc_ipc.h |  3 ---
 drivers/mfd/intel_soc_pmic_bxtwc.c   | 22 +++++++++++++++-------
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/arch/x86/include/asm/intel_pmc_ipc.h b/arch/x86/include/asm/intel_pmc_ipc.h
index e6da1ce26256..b438a488f613 100644
--- a/arch/x86/include/asm/intel_pmc_ipc.h
+++ b/arch/x86/include/asm/intel_pmc_ipc.h
@@ -3,9 +3,6 @@
 #define  _ASM_X86_INTEL_PMC_IPC_H_
 
 /* Commands */
-#define PMC_IPC_PMIC_ACCESS		0xFF
-#define		PMC_IPC_PMIC_ACCESS_READ	0x0
-#define		PMC_IPC_PMIC_ACCESS_WRITE	0x1
 #define PMC_IPC_USB_PWR_CTRL		0xF0
 #define PMC_IPC_PMIC_BLACKLIST_SEL	0xEF
 #define PMC_IPC_PHY_CONFIG		0xEE
diff --git a/drivers/mfd/intel_soc_pmic_bxtwc.c b/drivers/mfd/intel_soc_pmic_bxtwc.c
index 739cfb5b69fe..60aba2a1561c 100644
--- a/drivers/mfd/intel_soc_pmic_bxtwc.c
+++ b/drivers/mfd/intel_soc_pmic_bxtwc.c
@@ -15,7 +15,7 @@
 #include <linux/mfd/intel_soc_pmic_bxtwc.h>
 #include <linux/module.h>
 
-#include <asm/intel_pmc_ipc.h>
+#include <asm/intel_scu_ipc.h>
 
 /* PMIC device registers */
 #define REG_ADDR_MASK		0xFF00
@@ -58,6 +58,10 @@
 /* Whiskey Cove PMIC share same ACPI ID between different platforms */
 #define BROXTON_PMIC_WC_HRV	4
 
+#define PMC_PMIC_ACCESS		0xFF
+#define PMC_PMIC_READ		0x0
+#define PMC_PMIC_WRITE		0x1
+
 enum bxtwc_irqs {
 	BXTWC_PWRBTN_LVL1_IRQ = 0,
 	BXTWC_TMU_LVL1_IRQ,
@@ -288,9 +292,9 @@ static int regmap_ipc_byte_reg_read(void *context, unsigned int reg,
 
 	ipc_in[0] = reg;
 	ipc_in[1] = i2c_addr;
-	ret = intel_pmc_ipc_command(PMC_IPC_PMIC_ACCESS,
-			PMC_IPC_PMIC_ACCESS_READ,
-			ipc_in, sizeof(ipc_in), (u32 *)ipc_out, 1);
+	ret = intel_scu_ipc_dev_command(pmic->scu, PMC_PMIC_ACCESS,
+					PMC_PMIC_READ, ipc_in, sizeof(ipc_in),
+					ipc_out, sizeof(ipc_out));
 	if (ret) {
 		dev_err(pmic->dev, "Failed to read from PMIC\n");
 		return ret;
@@ -321,9 +325,9 @@ static int regmap_ipc_byte_reg_write(void *context, unsigned int reg,
 	ipc_in[0] = reg;
 	ipc_in[1] = i2c_addr;
 	ipc_in[2] = val;
-	ret = intel_pmc_ipc_command(PMC_IPC_PMIC_ACCESS,
-			PMC_IPC_PMIC_ACCESS_WRITE,
-			ipc_in, sizeof(ipc_in), NULL, 0);
+	ret = intel_scu_ipc_dev_command(pmic->scu, PMC_PMIC_ACCESS,
+					PMC_PMIC_WRITE, ipc_in, sizeof(ipc_in),
+					NULL, 0);
 	if (ret) {
 		dev_err(pmic->dev, "Failed to write to PMIC\n");
 		return ret;
@@ -457,6 +461,10 @@ static int bxtwc_probe(struct platform_device *pdev)
 	dev_set_drvdata(&pdev->dev, pmic);
 	pmic->dev = &pdev->dev;
 
+	pmic->scu = devm_intel_scu_ipc_dev_get(&pdev->dev);
+	if (!pmic->scu)
+		return -EPROBE_DEFER;
+
 	pmic->regmap = devm_regmap_init(&pdev->dev, NULL, pmic,
 					&bxtwc_regmap_config);
 	if (IS_ERR(pmic->regmap)) {
-- 
2.24.1


  parent reply	other threads:[~2020-01-21 16:01 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-21 16:00 [PATCH v4 00/38] platform/x86: Rework intel_scu_ipc and intel_pmc_ipc drivers Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 01/38] platform/x86: intel_mid_powerbtn: Take a copy of ddata Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 02/38] platform/x86: intel_scu_ipcutil: Remove default y from Kconfig Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 03/38] platform/x86: intel_scu_ipc: Add constants for register offsets Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 04/38] platform/x86: intel_scu_ipc: Remove Lincroft support Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 05/38] platform/x86: intel_scu_ipc: Drop intel_scu_ipc_i2c_cntrl() Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 06/38] platform/x86: intel_scu_ipc: Fix interrupt support Mika Westerberg
2020-01-22 13:34   ` Greg Kroah-Hartman
2020-01-22 14:30     ` Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 07/38] platform/x86: intel_scu_ipc: Sleeping is fine when polling Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 08/38] platform/x86: intel_scu_ipc: Drop unused prototype intel_scu_ipc_fw_update() Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 09/38] platform/x86: intel_scu_ipc: Drop unused macros Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 10/38] platform/x86: intel_scu_ipc: Drop intel_scu_ipc_io[read|write][8|16]() Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 11/38] platform/x86: intel_scu_ipc: Drop intel_scu_ipc_raw_command() Mika Westerberg
2020-01-22 13:36   ` Greg Kroah-Hartman
2020-01-22 14:33     ` Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 12/38] platform/x86: intel_scu_ipc: Split out SCU IPC functionality from the SCU driver Mika Westerberg
2020-01-22 13:40   ` Greg Kroah-Hartman
2020-01-22 14:35     ` Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 13/38] platform/x86: intel_scu_ipc: Reformat kernel-doc comments of exported functions Mika Westerberg
2020-01-22 13:40   ` Greg Kroah-Hartman
2020-01-22 14:36     ` Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 14/38] platform/x86: intel_scu_ipc: Introduce new SCU IPC API Mika Westerberg
2020-01-22 13:43   ` Greg Kroah-Hartman
2020-01-22 14:40     ` Mika Westerberg
2020-01-22 14:49       ` Greg Kroah-Hartman
2020-01-22 15:04         ` Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 15/38] platform/x86: intel_mid_powerbtn: Convert to use " Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 16/38] watchdog: intel-mid_wdt: " Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 17/38] platform/x86: intel_scu_ipcutil: " Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 18/38] platform/x86: intel_pmc_ipc: Make intel_pmc_gcr_update() static Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 19/38] platform/x86: intel_pmc_ipc: Make intel_pmc_ipc_simple_command() static Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 20/38] platform/x86: intel_pmc_ipc: Make intel_pmc_ipc_raw_cmd() static Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 21/38] platform/x86: intel_pmc_ipc: Drop intel_pmc_gcr_read() and intel_pmc_gcr_write() Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 22/38] platform/x86: intel_pmc_ipc: Drop ipc_data_readb() Mika Westerberg
2020-01-21 16:00 ` [PATCH v4 23/38] platform/x86: intel_pmc_ipc: Get rid of unnecessary includes Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 24/38] platform/x86: intel_scu_ipc: Add managed function to register SCU IPC Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 25/38] platform/x86: intel_pmc_ipc: Start using " Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 26/38] mfd: intel_soc_pmic: Add SCU IPC member to struct intel_soc_pmic Mika Westerberg
2020-01-21 16:01 ` Mika Westerberg [this message]
2020-01-22 13:46   ` [PATCH v4 27/38] mfd: intel_soc_pmic_bxtwc: Convert to use new SCU IPC API Greg Kroah-Hartman
2020-01-22 14:41     ` Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 28/38] mfd: intel_soc_pmic_mrfld: " Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 29/38] platform/x86: intel_telemetry: " Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 30/38] platform/x86: intel_pmc_ipc: Drop intel_pmc_ipc_command() Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 31/38] x86/platform/intel-mid: Add empty stubs for intel_scu_devices_[create|destroy]() Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 32/38] platform/x86: intel_pmc_ipc: Move PCI IDs to intel_scu_pcidrv.c Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 33/38] platform/x86: intel_pmc_ipc: Use octal permissions in sysfs attributes Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 34/38] platform/x86: intel_pmc_ipc: Propagate error from kstrtoul() Mika Westerberg
2020-01-21 17:51   ` Andy Shevchenko
2020-01-21 16:01 ` [PATCH v4 35/38] platform/x86: intel_pmc_ipc: Switch to use driver->dev_groups Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 36/38] platform/x86: intel_telemetry: Add telemetry_get_pltdata() Mika Westerberg
2020-01-21 18:00   ` Andy Shevchenko
2020-01-21 16:01 ` [PATCH v4 37/38] platform/x86: intel_pmc_ipc: Convert to MFD Mika Westerberg
2020-01-21 18:26   ` Andy Shevchenko
2020-01-22 10:55     ` Mika Westerberg
2020-01-22 12:34   ` Lee Jones
2020-01-22 12:53     ` Mika Westerberg
2020-01-22 13:27       ` Lee Jones
2020-01-22 14:45         ` Mika Westerberg
2020-01-23  8:01           ` Lee Jones
2020-01-23  8:56             ` Mika Westerberg
2020-01-21 16:01 ` [PATCH v4 38/38] MAINTAINERS: Update entry for Intel Broxton PMC driver Mika Westerberg
2020-01-21 16:21 ` [PATCH v4 00/38] platform/x86: Rework intel_scu_ipc and intel_pmc_ipc drivers Mark Brown
2020-01-21 16:33   ` Mika Westerberg
2020-01-21 16:45     ` Mark Brown
2020-01-21 17:00       ` Mika Westerberg
2020-01-21 17:06         ` Mark Brown
2020-01-21 17:21           ` Mika Westerberg

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=20200121160114.60007-28-mika.westerberg@linux.intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=broonie@kernel.org \
    --cc=david.e.box@linux.intel.com \
    --cc=dvhart@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mingo@redhat.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=qipeng.zha@intel.com \
    --cc=tglx@linutronix.de \
    --cc=wim@linux-watchdog.org \
    --cc=x86@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).