Linux-i2c Archive on lore.kernel.org
 help / color / Atom feed
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
To: Jarkko Nikula <jarkko.nikula@linux.intel.com>,
	Wolfram Sang <wsa@the-dreams.de>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Serge Semin <Sergey.Semin@baikalelectronics.ru>,
	Serge Semin <fancer.lancer@gmail.com>,
	Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Rob Herring <robh+dt@kernel.org>, <linux-mips@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <linux-i2c@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v3 10/12] i2c: designware: Retrieve quirk flags as early as possible
Date: Wed, 27 May 2020 00:55:26 +0300
Message-ID: <20200526215528.16417-11-Sergey.Semin@baikalelectronics.ru> (raw)
In-Reply-To: <20200526215528.16417-1-Sergey.Semin@baikalelectronics.ru>

Some platforms might need to activate the driver quirks at a very early
probe stage. For instance, Baikal-T1 System I2C doesn't need to map the
registers space as ones belong to the system controller. Instead it will
request the syscon regmap from the parental DT node. In order to be able
to do so let's retrieve the model flags right after the DW I2C private
data is created.

Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: linux-mips@vger.kernel.org
Cc: devicetree@vger.kernel.org

---

Changelog v3:
- This is a new patch, which has been created due to declining the
  glue-layer approach.
---
 drivers/i2c/busses/i2c-designware-platdrv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 57475f19448a..5ef7ffcf7f85 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -252,6 +252,8 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
 	if (!dev)
 		return -ENOMEM;
 
+	dev->flags |= (uintptr_t)device_get_match_data(&pdev->dev);
+
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	dev->base = devm_ioremap_resource(&pdev->dev, mem);
 	if (IS_ERR(dev->base))
@@ -295,8 +297,6 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
 	else
 		t->bus_freq_hz = I2C_MAX_FAST_MODE_FREQ;
 
-	dev->flags |= (uintptr_t)device_get_match_data(&pdev->dev);
-
 	if (pdev->dev.of_node)
 		dw_i2c_of_configure(pdev);
 
-- 
2.26.2


  parent reply index

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-26 21:55 [PATCH v3 00/12] i2c: designeware: Add Baikal-T1 System I2C support Serge Semin
2020-05-26 21:55 ` [PATCH v3 01/12] scripts/dtc: check: Add 10bit/slave i2c reg flags support Serge Semin
2020-05-27  1:17   ` Rob Herring
2020-05-27  9:46     ` Serge Semin
2020-05-27 11:20     ` Serge Semin
2020-05-26 21:55 ` [PATCH v3 02/12] dt-bindings: i2c: Convert DW I2C binding to DT schema Serge Semin
2020-05-27  1:20   ` Rob Herring
2020-05-26 21:55 ` [PATCH v3 03/12] dt-bindings: i2c: Discard i2c-slave flag from the DW I2C example Serge Semin
2020-05-27  9:30   ` Andy Shevchenko
2020-05-27 12:07     ` Serge Semin
2020-05-27 13:32       ` Andy Shevchenko
2020-05-26 21:55 ` [PATCH v3 04/12] dt-bindings: i2c: dw: Add Baikal-T1 SoC I2C controller Serge Semin
2020-05-26 21:55 ` [PATCH v3 05/12] i2c: designware: Use `-y` to build multi-object modules Serge Semin
2020-05-26 21:55 ` [PATCH v3 06/12] i2c: designware: slave: Set DW I2C core module dependency Serge Semin
2020-05-26 21:55 ` [PATCH v3 07/12] i2c: designware: Add Baytrail sem config DW I2C platform dependency Serge Semin
2020-05-26 21:55 ` [PATCH v3 08/12] i2c: designware: Discard Cherry Trail model flag Serge Semin
2020-05-26 21:55 ` [PATCH v3 09/12] i2c: designware: Convert driver to using regmap API Serge Semin
2020-05-26 21:55 ` Serge Semin [this message]
2020-05-26 21:55 ` [PATCH v3 11/12] i2c: designware: Move reg-space remapping into a dedicated function Serge Semin
2020-05-27  9:26   ` Andy Shevchenko
2020-05-27  9:50     ` Serge Semin
2020-05-27 10:18       ` Andy Shevchenko
2020-05-26 21:55 ` [PATCH v3 12/12] i2c: designware: Add Baikal-T1 System I2C support Serge Semin
2020-05-27 13:30 ` [PATCH v3 00/12] i2c: designeware: " Andy Shevchenko

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=20200526215528.16417-11-Sergey.Semin@baikalelectronics.ru \
    --to=sergey.semin@baikalelectronics.ru \
    --cc=Alexey.Malahov@baikalelectronics.ru \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=fancer.lancer@gmail.com \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=robh+dt@kernel.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=wsa@the-dreams.de \
    /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

Linux-i2c Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-i2c/0 linux-i2c/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-i2c linux-i2c/ https://lore.kernel.org/linux-i2c \
		linux-i2c@vger.kernel.org
	public-inbox-index linux-i2c

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-i2c


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git