All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Jarkko Nikula <jarkko.nikula@linux.intel.com>,
	Wolfram Sang <wsa@the-dreams.de>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Serge Semin <fancer.lancer@gmail.com>,
	Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Rob Herring <robh+dt@kernel.org>,
	devicetree@vger.kernel.org, linux-mips@vger.kernel.org,
	linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 08/11] i2c: designware: Convert driver to using regmap API
Date: Wed, 27 May 2020 19:03:37 +0300	[thread overview]
Message-ID: <20200527160337.GL1634618@smile.fi.intel.com> (raw)
In-Reply-To: <20200527153046.6172-9-Sergey.Semin@baikalelectronics.ru>

On Wed, May 27, 2020 at 06:30:43PM +0300, Serge Semin wrote:
> Seeing the DW I2C driver is using flags-based accessors with two
> conditional clauses it would be better to replace them with the regmap
> API IO methods and to initialize the regmap object with read/write
> callbacks specific to the controller registers map implementation. This
> will be also handy for the drivers with non-standard registers mapping
> (like an embedded into the Baikal-T1 System Controller DW I2C block, which
> glue-driver is a part of this series).
> 
> As before the driver tries to detect the mapping setup at probe stage and
> creates a regmap object accordingly, which will be used by the rest of the
> code to correctly access the controller registers. In two places it was
> appropriate to convert the hand-written read-modify-write and
> read-poll-loop design patterns to the corresponding regmap API
> ready-to-use methods.
> 
> Note the regmap IO methods return value is checked only at the probe
> stage. The rest of the code won't do this because basically we have
> MMIO-based regmap so non of the read/write methods can fail (this also
> won't be needed for the Baikal-T1-specific I2C controller).

...

> +	struct regmap_config map_cfg = {
> +		.reg_bits = 32,
> +		.val_bits = 32,
> +		.reg_stride = 4,
> +		.disable_locking = true,
> +		.reg_read = dw_reg_read,
> +		.reg_write = dw_reg_write,

> +		.max_register = DW_IC_COMP_TYPE

Perhaps leave comma here as well.

> +	};

...

> +	/*
> +	 * Note we'll check the return value of the regmap IO accessors only
> +	 * at the probe stage. The rest of the code won't do this because
> +	 * basically we have MMIO-based regmap so non of the read/write methods
> +	 * can fail.
> +	 */
> +	dev->map = devm_regmap_init(dev->dev, NULL, dev, &map_cfg);
> +	if (IS_ERR(dev->map)) {
> +		dev_err(dev->dev, "Failed to init the registers map\n");

> +		return PTR_ERR(dev->map);
> +	}
> +
>  	return 0;

	return PTR_ERR_OR_ZERO(dev->map);

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2020-05-27 16:03 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-27 15:30 [PATCH v5 00/11] i2c: designeware: Add Baikal-T1 System I2C support Serge Semin
2020-05-27 15:30 ` [PATCH v5 01/11] dt-bindings: i2c: Convert DW I2C binding to DT schema Serge Semin
2020-05-27 15:30 ` [PATCH v5 02/11] dt-bindings: i2c: Discard i2c-slave flag from the DW I2C example Serge Semin
2020-05-27 15:33   ` Serge Semin
2020-05-29 18:13     ` Rob Herring
2020-05-29 18:22       ` Serge Semin
2020-05-29 18:42         ` Andy Shevchenko
2020-05-29 18:45           ` Serge Semin
2020-05-29 18:58             ` Serge Semin
2020-06-08 23:46               ` Rob Herring
2020-05-27 15:30 ` [PATCH v5 03/11] dt-bindings: i2c: dw: Add Baikal-T1 SoC I2C controller Serge Semin
2020-05-27 15:35   ` Serge Semin
2020-05-27 15:30 ` [PATCH v5 04/11] i2c: designware: Use `-y` to build multi-object modules Serge Semin
2020-05-27 15:30 ` [PATCH v5 05/11] i2c: designware: slave: Set DW I2C core module dependency Serge Semin
2020-05-27 15:30 ` [PATCH v5 06/11] i2c: designware: Add Baytrail sem config DW I2C platform dependency Serge Semin
2020-05-27 15:55   ` Andy Shevchenko
2020-05-27 16:05     ` Serge Semin
2020-05-27 16:44   ` Andy Shevchenko
2020-05-27 15:30 ` [PATCH v5 07/11] i2c: designware: Discard Cherry Trail model flag Serge Semin
2020-05-27 15:57   ` Andy Shevchenko
2020-05-27 16:07     ` Serge Semin
2020-05-27 15:30 ` [PATCH v5 08/11] i2c: designware: Convert driver to using regmap API Serge Semin
2020-05-27 16:03   ` Andy Shevchenko [this message]
2020-05-27 16:09     ` Serge Semin
2020-05-27 15:30 ` [PATCH v5 09/11] i2c: designware: Retrieve quirk flags as early as possible Serge Semin
2020-05-27 15:30 ` [PATCH v5 10/11] i2c: designware: Move reg-space remapping into a dedicated function Serge Semin
2020-05-27 15:30 ` [PATCH v5 11/11] i2c: designware: Add Baikal-T1 System I2C support Serge Semin
2020-05-27 16:05   ` Andy Shevchenko
2020-05-27 16:10     ` Serge Semin
2020-05-27 16:08 ` [PATCH v5 00/11] i2c: designeware: " Andy Shevchenko
2020-05-27 16:15   ` Serge Semin

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=20200527160337.GL1634618@smile.fi.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=Alexey.Malahov@baikalelectronics.ru \
    --cc=Sergey.Semin@baikalelectronics.ru \
    --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
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.