From: Nikita Shubin via B4 Relay <devnull+nikita.shubin.maquefel.me@kernel.org> To: Nikita Shubin <nikita.shubin@maquefel.me>, Linus Walleij <linus.walleij@linaro.org>, Dmitry Torokhov <dmitry.torokhov@gmail.com>, Damien Le Moal <dlemoal@kernel.org>, Andy Shevchenko <andriy.shevchenko@linux.intel.com> Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>, linux-kernel@vger.kernel.org, "Arnd Bergmann" <arnd@arndb.de> Subject: [PATCH v6 03/40] ARM: ep93xx: add regmap aux_dev Date: Tue, 12 Dec 2023 11:20:20 +0300 [thread overview] Message-ID: <20231212-ep93xx-v6-3-c307b8ac9aa8@maquefel.me> (raw) In-Reply-To: <20231212-ep93xx-v6-0-c307b8ac9aa8@maquefel.me> From: Nikita Shubin <nikita.shubin@maquefel.me> The following driver's should be instantiated by ep93xx syscon driver: - reboot - pinctrl - clock They all require access to DEVCFG register with a shared lock held, to avoid conflict writing to swlocked parts of DEVCFG. Provide common resources such as base, regmap and spinlock via auxiliary bus framework. Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me> --- include/linux/soc/cirrus/ep93xx.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/include/linux/soc/cirrus/ep93xx.h b/include/linux/soc/cirrus/ep93xx.h index 56fbe2dc59b1..fc35be3af723 100644 --- a/include/linux/soc/cirrus/ep93xx.h +++ b/include/linux/soc/cirrus/ep93xx.h @@ -3,6 +3,18 @@ #define _SOC_EP93XX_H struct platform_device; +struct regmap; + +enum ep93xx_soc_model { + EP93XX_9301_SOC, + EP93XX_9307_SOC, + EP93XX_9312_SOC +}; + +#include <linux/auxiliary_bus.h> +#include <linux/compiler_types.h> +#include <linux/container_of.h> +#include <linux/spinlock.h> #define EP93XX_CHIP_REV_D0 3 #define EP93XX_CHIP_REV_D1 4 @@ -10,6 +22,20 @@ struct platform_device; #define EP93XX_CHIP_REV_E1 6 #define EP93XX_CHIP_REV_E2 7 +struct ep93xx_regmap_adev { + struct auxiliary_device adev; + struct regmap *map; + void __iomem *base; + spinlock_t *lock; + void (*write)(struct regmap *map, spinlock_t *lock, unsigned int reg, + unsigned int val); + void (*update_bits)(struct regmap *map, spinlock_t *lock, + unsigned int reg, unsigned int mask, unsigned int val); +}; + +#define to_ep93xx_regmap_adev(_adev) \ + container_of((_adev), struct ep93xx_regmap_adev, adev) + #ifdef CONFIG_ARCH_EP93XX int ep93xx_pwm_acquire_gpio(struct platform_device *pdev); void ep93xx_pwm_release_gpio(struct platform_device *pdev); -- 2.41.0
WARNING: multiple messages have this Message-ID (diff)
From: Nikita Shubin <nikita.shubin@maquefel.me> To: Nikita Shubin <nikita.shubin@maquefel.me>, Linus Walleij <linus.walleij@linaro.org>, Dmitry Torokhov <dmitry.torokhov@gmail.com>, Damien Le Moal <dlemoal@kernel.org>, Andy Shevchenko <andriy.shevchenko@linux.intel.com> Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>, linux-kernel@vger.kernel.org, "Arnd Bergmann" <arnd@arndb.de> Subject: [PATCH v6 03/40] ARM: ep93xx: add regmap aux_dev Date: Tue, 12 Dec 2023 11:20:20 +0300 [thread overview] Message-ID: <20231212-ep93xx-v6-3-c307b8ac9aa8@maquefel.me> (raw) In-Reply-To: <20231212-ep93xx-v6-0-c307b8ac9aa8@maquefel.me> The following driver's should be instantiated by ep93xx syscon driver: - reboot - pinctrl - clock They all require access to DEVCFG register with a shared lock held, to avoid conflict writing to swlocked parts of DEVCFG. Provide common resources such as base, regmap and spinlock via auxiliary bus framework. Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me> --- include/linux/soc/cirrus/ep93xx.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/include/linux/soc/cirrus/ep93xx.h b/include/linux/soc/cirrus/ep93xx.h index 56fbe2dc59b1..fc35be3af723 100644 --- a/include/linux/soc/cirrus/ep93xx.h +++ b/include/linux/soc/cirrus/ep93xx.h @@ -3,6 +3,18 @@ #define _SOC_EP93XX_H struct platform_device; +struct regmap; + +enum ep93xx_soc_model { + EP93XX_9301_SOC, + EP93XX_9307_SOC, + EP93XX_9312_SOC +}; + +#include <linux/auxiliary_bus.h> +#include <linux/compiler_types.h> +#include <linux/container_of.h> +#include <linux/spinlock.h> #define EP93XX_CHIP_REV_D0 3 #define EP93XX_CHIP_REV_D1 4 @@ -10,6 +22,20 @@ struct platform_device; #define EP93XX_CHIP_REV_E1 6 #define EP93XX_CHIP_REV_E2 7 +struct ep93xx_regmap_adev { + struct auxiliary_device adev; + struct regmap *map; + void __iomem *base; + spinlock_t *lock; + void (*write)(struct regmap *map, spinlock_t *lock, unsigned int reg, + unsigned int val); + void (*update_bits)(struct regmap *map, spinlock_t *lock, + unsigned int reg, unsigned int mask, unsigned int val); +}; + +#define to_ep93xx_regmap_adev(_adev) \ + container_of((_adev), struct ep93xx_regmap_adev, adev) + #ifdef CONFIG_ARCH_EP93XX int ep93xx_pwm_acquire_gpio(struct platform_device *pdev); void ep93xx_pwm_release_gpio(struct platform_device *pdev); -- 2.41.0
next prev parent reply other threads:[~2023-12-12 8:22 UTC|newest] Thread overview: 145+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-12-12 8:20 [PATCH v6 00/40] ep93xx device tree conversion Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:20 ` [PATCH v6 01/40] ARM: ep93xx: Add terminator to gpiod_lookup_table Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-13 17:24 ` Andy Shevchenko 2023-12-13 17:24 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 02/40] gpio: ep93xx: split device in multiple Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin via B4 Relay [this message] 2023-12-12 8:20 ` [PATCH v6 03/40] ARM: ep93xx: add regmap aux_dev Nikita Shubin 2023-12-13 17:28 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 04/40] clk: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 17:42 ` Andy Shevchenko 2023-12-23 8:35 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 05/40] pinctrl: add a Cirrus ep93xx SoC pin controller Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 17:51 ` Andy Shevchenko 2023-12-23 8:55 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 06/40] power: reset: Add a driver for the ep93xx reset Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 17:54 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 07/40] dt-bindings: soc: Add Cirrus EP93xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 6:53 ` Krzysztof Kozlowski 2023-12-12 8:20 ` [PATCH v6 08/40] soc: Add SoC driver for Cirrus ep93xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 18:37 ` Andy Shevchenko 2023-12-23 10:06 ` Nikita Shubin 2023-12-23 11:32 ` Arnd Bergmann 2023-12-12 8:20 ` [PATCH v6 09/40] dt-bindings: dma: Add Cirrus EP93xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 10/40] dma: cirrus: Convert to DT for " Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 18:28 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 11/40] dt-bindings: watchdog: Add Cirrus EP93x Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 12/40] watchdog: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 17:56 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 13/40] dt-bindings: pwm: Add " Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 14/40] pwm: ep93xx: add DT support for " Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 17:56 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 15/40] dt-bindings: spi: Add " Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 16/40] spi: ep93xx: add DT support for " Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 18:13 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 17/40] dt-bindings: net: Add " Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 18/40] net: cirrus: add DT support for " Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 18:39 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 19/40] dt-bindings: mtd: Add ts7200 nand-controller Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:20 ` [PATCH v6 20/40] mtd: rawnand: add support for ts72xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:30 ` Greg Kroah-Hartman 2023-12-12 8:30 ` Greg Kroah-Hartman 2023-12-12 8:35 ` Nikita Shubin 2023-12-12 8:35 ` Nikita Shubin 2023-12-12 14:05 ` Miquel Raynal 2023-12-12 14:05 ` Miquel Raynal 2023-12-15 10:16 ` Miquel Raynal 2023-12-15 10:16 ` Miquel Raynal 2023-12-15 12:11 ` Nikita Shubin 2023-12-15 12:11 ` Nikita Shubin 2023-12-15 12:27 ` Miquel Raynal 2023-12-15 12:27 ` Miquel Raynal 2023-12-12 8:20 ` [PATCH v6 21/40] dt-bindings: ata: Add Cirrus EP93xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 22/40] ata: pata_ep93xx: add device tree support Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 18:19 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 23/40] dt-bindings: input: Add Cirrus EP93xx keypad Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 24/40] input: keypad: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-13 18:41 ` Andy Shevchenko 2023-12-13 18:41 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 25/40] dt-bindings: wdt: Add ts72xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 15:03 ` Guenter Roeck 2023-12-12 8:20 ` [PATCH v6 26/40] wdt: ts72xx: add DT support for ts72xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 18:10 ` Andy Shevchenko 2023-12-12 8:20 ` [PATCH v6 27/40] gpio: ep93xx: add DT support for gpio-ep93xx Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 28/40] ASoC: dt-bindings: ep93xx: Document DMA support Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:20 ` [PATCH v6 29/40] ASoC: dt-bindings: ep93xx: Document Audio Port support Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:20 ` [PATCH v6 30/40] ASoC: ep93xx: Drop legacy DMA support Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 31/40] ARM: dts: add Cirrus EP93XX SoC .dtsi Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 32/40] ARM: dts: ep93xx: add ts7250 board Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 33/40] ARM: dts: ep93xx: Add EDB9302 DT Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 34/40] ARM: ep93xx: DT for the Cirrus ep93xx SoC platforms Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:20 ` [PATCH v6 35/40] pwm: ep93xx: drop legacy pinctrl Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:20 ` [PATCH v6 36/40] ata: pata_ep93xx: remove legacy pinctrl use Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-13 18:16 ` Andy Shevchenko 2023-12-13 18:16 ` Andy Shevchenko 2023-12-13 18:33 ` Uwe Kleine-König 2023-12-13 18:33 ` Uwe Kleine-König 2023-12-13 18:48 ` Andy Shevchenko 2023-12-13 18:48 ` Andy Shevchenko 2023-12-14 10:26 ` Uwe Kleine-König 2023-12-14 10:26 ` Uwe Kleine-König 2023-12-12 8:20 ` [PATCH v6 37/40] ARM: ep93xx: delete all boardfiles Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:20 ` [PATCH v6 38/40] ARM: ep93xx: soc: drop defines Nikita Shubin 2023-12-12 8:20 ` Nikita Shubin via B4 Relay 2023-12-12 8:20 ` [PATCH v6 39/40] ASoC: cirrus: edb93xx: Delete driver Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-12 8:20 ` [PATCH v6 40/40] dma: cirrus: remove platform code Nikita Shubin via B4 Relay 2023-12-12 8:20 ` Nikita Shubin 2023-12-13 18:30 ` Andy Shevchenko 2023-12-23 9:49 ` Nikita Shubin 2023-12-12 11:53 ` [PATCH v6 00/40] ep93xx device tree conversion Uwe Kleine-König 2023-12-12 11:53 ` Uwe Kleine-König 2023-12-13 17:59 ` Andy Shevchenko 2023-12-13 17:59 ` Andy Shevchenko 2023-12-23 9:12 ` Nikita Shubin 2023-12-23 9:12 ` Nikita Shubin 2023-12-25 19:55 ` Andy Shevchenko 2023-12-25 19:55 ` 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=20231212-ep93xx-v6-3-c307b8ac9aa8@maquefel.me \ --to=devnull+nikita.shubin.maquefel.me@kernel.org \ --cc=andriy.shevchenko@linux.intel.com \ --cc=arnd@arndb.de \ --cc=dlemoal@kernel.org \ --cc=dmitry.torokhov@gmail.com \ --cc=linus.walleij@linaro.org \ --cc=linux-kernel@vger.kernel.org \ --cc=nikita.shubin@maquefel.me \ --cc=u.kleine-koenig@pengutronix.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: linkBe 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.