Thread (24 messages) read the whole thread 24 messages, 2 authors, 2014-05-21

[PATCH 5/7] mfd: twl4030-power: Add support for board specific configuration

From: Lee Jones <hidden>
Date: 2014-05-21 09:18:57
Also in: linux-devicetree, linux-omap

On Tue, 20 May 2014, Tony Lindgren wrote:
* Lee Jones [off-list ref] [140520 08:18]:
quoted
Ah, I forgot to Ack this last time, didn't I?

  Acked-by: Lee Jones [off-list ref]
Yeah, here's this one updated with your ack.
Has the code changed at all, or are you just reposting with my Ack
applied?
quoted hunk ↗ jump to hunk
8< ---------------------------
From: Tony Lindgren <tony@atomide.com>
Date: Tue, 20 May 2014 11:17:54 -0700
Subject: [PATCH] mfd: twl4030-power: Add support for board specific configuration

With the recommended twl4030 configuration added, we can now add
board specific changes as modifications to the recommended
configuration.

Note that the data is private to this driver, and the data must
always have a NULL resource in the sentinel.

Cc: Peter De Schrijver <redacted>
Cc: Samuel Ortiz <redacted>
Acked-by: Lee Jones <redacted>
Signed-off-by: Tony Lindgren <tony@atomide.com>
--- a/drivers/mfd/twl4030-power.c
+++ b/drivers/mfd/twl4030-power.c
@@ -567,13 +567,34 @@ twl4030_power_configure_scripts(const struct twl4030_power_data *pdata)
 	return 0;
 }
 
+static void twl4030_patch_rconfig(struct twl4030_resconfig *common,
+				  struct twl4030_resconfig *board)
+{
+	while (common->resource) {
+		struct twl4030_resconfig *b = board;
+
+		while (b->resource) {
+			if (b->resource == common->resource) {
+				*common = *b;
+				break;
+			}
+			b++;
+		}
+		common++;
+	}
+}
+
 static int
 twl4030_power_configure_resources(const struct twl4030_power_data *pdata)
 {
 	struct twl4030_resconfig *resconfig = pdata->resource_config;
+	struct twl4030_resconfig *boardconf = pdata->board_config;
 	int err;
 
 	if (resconfig) {
+		if (boardconf)
+			twl4030_patch_rconfig(resconfig, boardconf);
+
 		while (resconfig->resource) {
 			err = twl4030_configure_resource(resconfig);
 			if (err)
--- a/include/linux/i2c/twl.h
+++ b/include/linux/i2c/twl.h
@@ -674,6 +674,7 @@ struct twl4030_power_data {
 	struct twl4030_script **scripts;
 	unsigned num;
 	struct twl4030_resconfig *resource_config;
+	struct twl4030_resconfig *board_config;
 #define TWL4030_RESCONFIG_UNDEF	((u8)-1)
 	bool use_poweroff;	/* Board is wired for TWL poweroff */
 };
-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help