linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap
@ 2019-03-01  6:24 Axel Lin
  2019-03-01 11:31 ` kbuild test robot
  2019-03-01 12:53 ` kbuild test robot
  0 siblings, 2 replies; 5+ messages in thread
From: Axel Lin @ 2019-03-01  6:24 UTC (permalink / raw)
  To: Mark Brown; +Cc: Keerthy, Liam Girdwood, linux-kernel, Axel Lin

Use regulator_set/get_current_limit_regmap helpers to save some code.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/regulator/lp87565-regulator.c | 47 ++++-----------------------
 1 file changed, 7 insertions(+), 40 deletions(-)

diff --git a/drivers/regulator/lp87565-regulator.c b/drivers/regulator/lp87565-regulator.c
index 0418e478c6dc..81eb4b890c0c 100644
--- a/drivers/regulator/lp87565-regulator.c
+++ b/drivers/regulator/lp87565-regulator.c
@@ -34,6 +34,10 @@
 			.ramp_delay		= _delay,		\
 			.linear_ranges		= _lr,			\
 			.n_linear_ranges	= ARRAY_SIZE(_lr),	\
+			.curr_table = lp87565_buck_uA,			\
+			.n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
+			.csel_reg = (_cr),				\
+			.csel_mask = LP87565_BUCK_CTRL_2_ILIM,		\
 		},							\
 		.ctrl2_reg = _cr,					\
 	}
@@ -102,44 +106,7 @@ static int lp87565_buck_set_ramp_delay(struct regulator_dev *rdev,
 	return 0;
 }
 
-static int lp87565_buck_set_current_limit(struct regulator_dev *rdev,
-					  int min_uA, int max_uA)
-{
-	int id = rdev_get_id(rdev);
-	struct lp87565 *lp87565 = rdev_get_drvdata(rdev);
-	int i;
-
-	for (i = ARRAY_SIZE(lp87565_buck_uA) - 1; i >= 0; i--) {
-		if (lp87565_buck_uA[i] >= min_uA &&
-		    lp87565_buck_uA[i] <= max_uA)
-			return regmap_update_bits(lp87565->regmap,
-						  regulators[id].ctrl2_reg,
-						  LP87565_BUCK_CTRL_2_ILIM,
-						  i << __ffs(LP87565_BUCK_CTRL_2_ILIM));
-	}
-
-	return -EINVAL;
-}
-
-static int lp87565_buck_get_current_limit(struct regulator_dev *rdev)
-{
-	int id = rdev_get_id(rdev);
-	struct lp87565 *lp87565 = rdev_get_drvdata(rdev);
-	int ret;
-	unsigned int val;
-
-	ret = regmap_read(lp87565->regmap, regulators[id].ctrl2_reg, &val);
-	if (ret)
-		return ret;
-
-	val = (val & LP87565_BUCK_CTRL_2_ILIM) >>
-	       __ffs(LP87565_BUCK_CTRL_2_ILIM);
-
-	return (val < ARRAY_SIZE(lp87565_buck_uA)) ?
-			lp87565_buck_uA[val] : -EINVAL;
-}
-
-/* Operations permitted on BUCK0, BUCK1 */
+/* Operations permitted on BUCKs */
 static const struct regulator_ops lp87565_buck_ops = {
 	.is_enabled		= regulator_is_enabled_regmap,
 	.enable			= regulator_enable_regmap,
@@ -150,8 +117,8 @@ static const struct regulator_ops lp87565_buck_ops = {
 	.map_voltage		= regulator_map_voltage_linear_range,
 	.set_voltage_time_sel	= regulator_set_voltage_time_sel,
 	.set_ramp_delay		= lp87565_buck_set_ramp_delay,
-	.set_current_limit	= lp87565_buck_set_current_limit,
-	.get_current_limit	= lp87565_buck_get_current_limit,
+	.set_current_limit	= regulator_set_current_limit_regmap,
+	.get_current_limit	= regulator_get_current_limit_regmap,
 };
 
 static const struct lp87565_regulator regulators[] = {
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap
  2019-03-01  6:24 [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap Axel Lin
@ 2019-03-01 11:31 ` kbuild test robot
  2019-03-01 14:34   ` Axel Lin
  2019-03-01 12:53 ` kbuild test robot
  1 sibling, 1 reply; 5+ messages in thread
From: kbuild test robot @ 2019-03-01 11:31 UTC (permalink / raw)
  To: Axel Lin
  Cc: kbuild-all, Mark Brown, Keerthy, Liam Girdwood, linux-kernel, Axel Lin

[-- Attachment #1: Type: text/plain, Size: 10235 bytes --]

Hi Axel,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on regulator/for-next]
[also build test ERROR on next-20190228]
[cannot apply to v5.0-rc8]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Axel-Lin/regulator-lp87565-Convert-to-use-regulator_set-get_current_limit_regmap/20190301-190141
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
config: i386-randconfig-x013-201908 (attached as .config)
compiler: gcc-8 (Debian 8.2.0-21) 8.2.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

>> drivers//regulator/lp87565-regulator.c:120:23: error: 'regulator_set_current_limit_regmap' undeclared here (not in a function); did you mean 'regulator_set_current_limit'?
     .set_current_limit = regulator_set_current_limit_regmap,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          regulator_set_current_limit
>> drivers//regulator/lp87565-regulator.c:121:23: error: 'regulator_get_current_limit_regmap' undeclared here (not in a function); did you mean 'regulator_get_current_limit'?
     .get_current_limit = regulator_get_current_limit_regmap,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          regulator_get_current_limit
>> drivers//regulator/lp87565-regulator.c:37:5: error: 'struct regulator_desc' has no member named 'curr_table'; did you mean 'volt_table'?
       .curr_table = lp87565_buck_uA,   \
        ^~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:125:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK0", LP87565_BUCK_0, "buck0", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:38:5: error: 'struct regulator_desc' has no member named 'n_current_limits'
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
        ^~~~~~~~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:125:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK0", LP87565_BUCK_0, "buck0", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:37:5: error: 'struct regulator_desc' has no member named 'curr_table'; did you mean 'volt_table'?
       .curr_table = lp87565_buck_uA,   \
        ^~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:130:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK1", LP87565_BUCK_1, "buck1", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:38:5: error: 'struct regulator_desc' has no member named 'n_current_limits'
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
        ^~~~~~~~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:130:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK1", LP87565_BUCK_1, "buck1", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:37:5: error: 'struct regulator_desc' has no member named 'curr_table'; did you mean 'volt_table'?
       .curr_table = lp87565_buck_uA,   \
        ^~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:135:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK2", LP87565_BUCK_2, "buck2", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:38:5: error: 'struct regulator_desc' has no member named 'n_current_limits'
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
        ^~~~~~~~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:135:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK2", LP87565_BUCK_2, "buck2", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:37:5: error: 'struct regulator_desc' has no member named 'curr_table'; did you mean 'volt_table'?
       .curr_table = lp87565_buck_uA,   \
        ^~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:140:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK3", LP87565_BUCK_3, "buck3", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:38:5: error: 'struct regulator_desc' has no member named 'n_current_limits'
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
        ^~~~~~~~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:140:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK3", LP87565_BUCK_3, "buck3", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:37:5: error: 'struct regulator_desc' has no member named 'curr_table'; did you mean 'volt_table'?
       .curr_table = lp87565_buck_uA,   \
        ^~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:145:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK10", LP87565_BUCK_10, "buck10", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:38:5: error: 'struct regulator_desc' has no member named 'n_current_limits'
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
        ^~~~~~~~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:145:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK10", LP87565_BUCK_10, "buck10", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:37:5: error: 'struct regulator_desc' has no member named 'curr_table'; did you mean 'volt_table'?
       .curr_table = lp87565_buck_uA,   \
        ^~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:151:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK23", LP87565_BUCK_23, "buck23", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers//regulator/lp87565-regulator.c:38:5: error: 'struct regulator_desc' has no member named 'n_current_limits'
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
        ^~~~~~~~~~~~~~~~
   drivers//regulator/lp87565-regulator.c:151:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK23", LP87565_BUCK_23, "buck23", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~

vim +120 drivers//regulator/lp87565-regulator.c

    16	
    17	#define LP87565_REGULATOR(_name, _id, _of, _ops, _n, _vr, _vm, _er, _em, \
    18				 _delay, _lr, _cr)				\
    19		[_id] = {							\
    20			.desc = {						\
    21				.name			= _name,		\
    22				.supply_name		= _of "-in",		\
    23				.id			= _id,			\
    24				.of_match		= of_match_ptr(_of),	\
    25				.regulators_node	= of_match_ptr("regulators"),\
    26				.ops			= &_ops,		\
    27				.n_voltages		= _n,			\
    28				.type			= REGULATOR_VOLTAGE,	\
    29				.owner			= THIS_MODULE,		\
    30				.vsel_reg		= _vr,			\
    31				.vsel_mask		= _vm,			\
    32				.enable_reg		= _er,			\
    33				.enable_mask		= _em,			\
    34				.ramp_delay		= _delay,		\
    35				.linear_ranges		= _lr,			\
    36				.n_linear_ranges	= ARRAY_SIZE(_lr),	\
  > 37				.curr_table = lp87565_buck_uA,			\
  > 38				.n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
    39				.csel_reg = (_cr),				\
    40				.csel_mask = LP87565_BUCK_CTRL_2_ILIM,		\
    41			},							\
    42			.ctrl2_reg = _cr,					\
    43		}
    44	
    45	struct lp87565_regulator {
    46		struct regulator_desc desc;
    47		unsigned int ctrl2_reg;
    48	};
    49	
    50	static const struct lp87565_regulator regulators[];
    51	
    52	static const struct regulator_linear_range buck0_1_2_3_ranges[] = {
    53		REGULATOR_LINEAR_RANGE(600000, 0xA, 0x17, 10000),
    54		REGULATOR_LINEAR_RANGE(735000, 0x18, 0x9d, 5000),
    55		REGULATOR_LINEAR_RANGE(1420000, 0x9e, 0xff, 20000),
    56	};
    57	
    58	static const unsigned int lp87565_buck_ramp_delay[] = {
    59		30000, 15000, 10000, 7500, 3800, 1900, 940, 470
    60	};
    61	
    62	/* LP87565 BUCK current limit */
    63	static const unsigned int lp87565_buck_uA[] = {
    64		1500000, 2000000, 2500000, 3000000, 3500000, 4000000, 4500000, 5000000,
    65	};
    66	
    67	static int lp87565_buck_set_ramp_delay(struct regulator_dev *rdev,
    68					       int ramp_delay)
    69	{
    70		int id = rdev_get_id(rdev);
    71		struct lp87565 *lp87565 = rdev_get_drvdata(rdev);
    72		unsigned int reg;
    73		int ret;
    74	
    75		if (ramp_delay <= 470)
    76			reg = 7;
    77		else if (ramp_delay <= 940)
    78			reg = 6;
    79		else if (ramp_delay <= 1900)
    80			reg = 5;
    81		else if (ramp_delay <= 3800)
    82			reg = 4;
    83		else if (ramp_delay <= 7500)
    84			reg = 3;
    85		else if (ramp_delay <= 10000)
    86			reg = 2;
    87		else if (ramp_delay <= 15000)
    88			reg = 1;
    89		else
    90			reg = 0;
    91	
    92		ret = regmap_update_bits(lp87565->regmap, regulators[id].ctrl2_reg,
    93					 LP87565_BUCK_CTRL_2_SLEW_RATE,
    94					 reg << __ffs(LP87565_BUCK_CTRL_2_SLEW_RATE));
    95		if (ret) {
    96			dev_err(lp87565->dev, "SLEW RATE write failed: %d\n", ret);
    97			return ret;
    98		}
    99	
   100		rdev->constraints->ramp_delay = lp87565_buck_ramp_delay[reg];
   101	
   102		/* Conservatively give a 15% margin */
   103		rdev->constraints->ramp_delay =
   104					rdev->constraints->ramp_delay * 85 / 100;
   105	
   106		return 0;
   107	}
   108	
   109	/* Operations permitted on BUCKs */
   110	static const struct regulator_ops lp87565_buck_ops = {
   111		.is_enabled		= regulator_is_enabled_regmap,
   112		.enable			= regulator_enable_regmap,
   113		.disable		= regulator_disable_regmap,
   114		.get_voltage_sel	= regulator_get_voltage_sel_regmap,
   115		.set_voltage_sel	= regulator_set_voltage_sel_regmap,
   116		.list_voltage		= regulator_list_voltage_linear_range,
   117		.map_voltage		= regulator_map_voltage_linear_range,
   118		.set_voltage_time_sel	= regulator_set_voltage_time_sel,
   119		.set_ramp_delay		= lp87565_buck_set_ramp_delay,
 > 120		.set_current_limit	= regulator_set_current_limit_regmap,
 > 121		.get_current_limit	= regulator_get_current_limit_regmap,
   122	};
   123	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 31646 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap
  2019-03-01  6:24 [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap Axel Lin
  2019-03-01 11:31 ` kbuild test robot
@ 2019-03-01 12:53 ` kbuild test robot
  1 sibling, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2019-03-01 12:53 UTC (permalink / raw)
  To: Axel Lin
  Cc: kbuild-all, Mark Brown, Keerthy, Liam Girdwood, linux-kernel, Axel Lin

[-- Attachment #1: Type: text/plain, Size: 11621 bytes --]

Hi Axel,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on regulator/for-next]
[also build test ERROR on next-20190228]
[cannot apply to v5.0-rc8]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Axel-Lin/regulator-lp87565-Convert-to-use-regulator_set-get_current_limit_regmap/20190301-190141
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
config: nds32-allyesconfig (attached as .config)
compiler: nds32le-linux-gcc (GCC) 6.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=6.4.0 make.cross ARCH=nds32 

All error/warnings (new ones prefixed by >>):

>> drivers/regulator/lp87565-regulator.c:120:23: error: 'regulator_set_current_limit_regmap' undeclared here (not in a function)
     .set_current_limit = regulator_set_current_limit_regmap,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:121:23: error: 'regulator_get_current_limit_regmap' undeclared here (not in a function)
     .get_current_limit = regulator_get_current_limit_regmap,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
>> drivers/regulator/lp87565-regulator.c:125:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK0", LP87565_BUCK_0, "buck0", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
>> drivers/regulator/lp87565-regulator.c:125:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK0", LP87565_BUCK_0, "buck0", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:130:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK1", LP87565_BUCK_1, "buck1", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:130:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK1", LP87565_BUCK_1, "buck1", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:135:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK2", LP87565_BUCK_2, "buck2", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:135:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK2", LP87565_BUCK_2, "buck2", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:140:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK3", LP87565_BUCK_3, "buck3", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:140:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK3", LP87565_BUCK_3, "buck3", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:145:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK10", LP87565_BUCK_10, "buck10", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:145:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK10", LP87565_BUCK_10, "buck10", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:151:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK23", LP87565_BUCK_23, "buck23", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:151:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK23", LP87565_BUCK_23, "buck23", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~

vim +/regulator_set_current_limit_regmap +120 drivers/regulator/lp87565-regulator.c

    16	
    17	#define LP87565_REGULATOR(_name, _id, _of, _ops, _n, _vr, _vm, _er, _em, \
    18				 _delay, _lr, _cr)				\
    19		[_id] = {							\
    20			.desc = {						\
    21				.name			= _name,		\
    22				.supply_name		= _of "-in",		\
    23				.id			= _id,			\
    24				.of_match		= of_match_ptr(_of),	\
    25				.regulators_node	= of_match_ptr("regulators"),\
    26				.ops			= &_ops,		\
    27				.n_voltages		= _n,			\
    28				.type			= REGULATOR_VOLTAGE,	\
    29				.owner			= THIS_MODULE,		\
    30				.vsel_reg		= _vr,			\
    31				.vsel_mask		= _vm,			\
    32				.enable_reg		= _er,			\
    33				.enable_mask		= _em,			\
    34				.ramp_delay		= _delay,		\
    35				.linear_ranges		= _lr,			\
    36				.n_linear_ranges	= ARRAY_SIZE(_lr),	\
  > 37				.curr_table = lp87565_buck_uA,			\
  > 38				.n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
    39				.csel_reg = (_cr),				\
    40				.csel_mask = LP87565_BUCK_CTRL_2_ILIM,		\
    41			},							\
    42			.ctrl2_reg = _cr,					\
    43		}
    44	
    45	struct lp87565_regulator {
    46		struct regulator_desc desc;
    47		unsigned int ctrl2_reg;
    48	};
    49	
    50	static const struct lp87565_regulator regulators[];
    51	
    52	static const struct regulator_linear_range buck0_1_2_3_ranges[] = {
    53		REGULATOR_LINEAR_RANGE(600000, 0xA, 0x17, 10000),
    54		REGULATOR_LINEAR_RANGE(735000, 0x18, 0x9d, 5000),
    55		REGULATOR_LINEAR_RANGE(1420000, 0x9e, 0xff, 20000),
    56	};
    57	
    58	static const unsigned int lp87565_buck_ramp_delay[] = {
    59		30000, 15000, 10000, 7500, 3800, 1900, 940, 470
    60	};
    61	
    62	/* LP87565 BUCK current limit */
    63	static const unsigned int lp87565_buck_uA[] = {
    64		1500000, 2000000, 2500000, 3000000, 3500000, 4000000, 4500000, 5000000,
    65	};
    66	
    67	static int lp87565_buck_set_ramp_delay(struct regulator_dev *rdev,
    68					       int ramp_delay)
    69	{
    70		int id = rdev_get_id(rdev);
    71		struct lp87565 *lp87565 = rdev_get_drvdata(rdev);
    72		unsigned int reg;
    73		int ret;
    74	
    75		if (ramp_delay <= 470)
    76			reg = 7;
    77		else if (ramp_delay <= 940)
    78			reg = 6;
    79		else if (ramp_delay <= 1900)
    80			reg = 5;
    81		else if (ramp_delay <= 3800)
    82			reg = 4;
    83		else if (ramp_delay <= 7500)
    84			reg = 3;
    85		else if (ramp_delay <= 10000)
    86			reg = 2;
    87		else if (ramp_delay <= 15000)
    88			reg = 1;
    89		else
    90			reg = 0;
    91	
    92		ret = regmap_update_bits(lp87565->regmap, regulators[id].ctrl2_reg,
    93					 LP87565_BUCK_CTRL_2_SLEW_RATE,
    94					 reg << __ffs(LP87565_BUCK_CTRL_2_SLEW_RATE));
    95		if (ret) {
    96			dev_err(lp87565->dev, "SLEW RATE write failed: %d\n", ret);
    97			return ret;
    98		}
    99	
   100		rdev->constraints->ramp_delay = lp87565_buck_ramp_delay[reg];
   101	
   102		/* Conservatively give a 15% margin */
   103		rdev->constraints->ramp_delay =
   104					rdev->constraints->ramp_delay * 85 / 100;
   105	
   106		return 0;
   107	}
   108	
   109	/* Operations permitted on BUCKs */
   110	static const struct regulator_ops lp87565_buck_ops = {
   111		.is_enabled		= regulator_is_enabled_regmap,
   112		.enable			= regulator_enable_regmap,
   113		.disable		= regulator_disable_regmap,
   114		.get_voltage_sel	= regulator_get_voltage_sel_regmap,
   115		.set_voltage_sel	= regulator_set_voltage_sel_regmap,
   116		.list_voltage		= regulator_list_voltage_linear_range,
   117		.map_voltage		= regulator_map_voltage_linear_range,
   118		.set_voltage_time_sel	= regulator_set_voltage_time_sel,
   119		.set_ramp_delay		= lp87565_buck_set_ramp_delay,
 > 120		.set_current_limit	= regulator_set_current_limit_regmap,
 > 121		.get_current_limit	= regulator_get_current_limit_regmap,
   122	};
   123	
   124	static const struct lp87565_regulator regulators[] = {
 > 125		LP87565_REGULATOR("BUCK0", LP87565_BUCK_0, "buck0", lp87565_buck_ops,
   126				  256, LP87565_REG_BUCK0_VOUT, LP87565_BUCK_VSET,
   127				  LP87565_REG_BUCK0_CTRL_1,
   128				  LP87565_BUCK_CTRL_1_EN, 3230,
   129				  buck0_1_2_3_ranges, LP87565_REG_BUCK0_CTRL_2),
   130		LP87565_REGULATOR("BUCK1", LP87565_BUCK_1, "buck1", lp87565_buck_ops,
   131				  256, LP87565_REG_BUCK1_VOUT, LP87565_BUCK_VSET,
   132				  LP87565_REG_BUCK1_CTRL_1,
   133				  LP87565_BUCK_CTRL_1_EN, 3230,
   134				  buck0_1_2_3_ranges, LP87565_REG_BUCK1_CTRL_2),
   135		LP87565_REGULATOR("BUCK2", LP87565_BUCK_2, "buck2", lp87565_buck_ops,
   136				  256, LP87565_REG_BUCK2_VOUT, LP87565_BUCK_VSET,
   137				  LP87565_REG_BUCK2_CTRL_1,
   138				  LP87565_BUCK_CTRL_1_EN, 3230,
   139				  buck0_1_2_3_ranges, LP87565_REG_BUCK2_CTRL_2),
   140		LP87565_REGULATOR("BUCK3", LP87565_BUCK_3, "buck3", lp87565_buck_ops,
   141				  256, LP87565_REG_BUCK3_VOUT, LP87565_BUCK_VSET,
   142				  LP87565_REG_BUCK3_CTRL_1,
   143				  LP87565_BUCK_CTRL_1_EN, 3230,
   144				  buck0_1_2_3_ranges, LP87565_REG_BUCK3_CTRL_2),
   145		LP87565_REGULATOR("BUCK10", LP87565_BUCK_10, "buck10", lp87565_buck_ops,
   146				  256, LP87565_REG_BUCK0_VOUT, LP87565_BUCK_VSET,
   147				  LP87565_REG_BUCK0_CTRL_1,
   148				  LP87565_BUCK_CTRL_1_EN |
   149				  LP87565_BUCK_CTRL_1_FPWM_MP_0_2, 3230,
   150				  buck0_1_2_3_ranges, LP87565_REG_BUCK0_CTRL_2),
   151		LP87565_REGULATOR("BUCK23", LP87565_BUCK_23, "buck23", lp87565_buck_ops,
   152				  256, LP87565_REG_BUCK2_VOUT, LP87565_BUCK_VSET,
   153				  LP87565_REG_BUCK2_CTRL_1,
   154				  LP87565_BUCK_CTRL_1_EN, 3230,
   155				  buck0_1_2_3_ranges, LP87565_REG_BUCK2_CTRL_2),
   156	};
   157	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 49915 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap
  2019-03-01 11:31 ` kbuild test robot
@ 2019-03-01 14:34   ` Axel Lin
  2019-03-01 15:31     ` [kbuild-all] " Li, Philip
  0 siblings, 1 reply; 5+ messages in thread
From: Axel Lin @ 2019-03-01 14:34 UTC (permalink / raw)
  To: kbuild test robot; +Cc: kbuild-all, Mark Brown, Keerthy, Liam Girdwood, LKML

kbuild test robot <lkp@intel.com> 於 2019年3月1日 週五 下午7:32寫道:
>
> Hi Axel,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on regulator/for-next]
> [also build test ERROR on next-20190228]
> [cannot apply to v5.0-rc8]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

This patch needs patch1 and patch2 of https://lkml.org/lkml/2019/2/28/482

I sent it today because I think Keerthy can review and test it together
with my another fix for lp87565.
I didn't realize kbuild will pick up the patch automatically.
I should wait until the required patches get merged then send this
patch. Sorry for the mess.

Regards,
Axel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [kbuild-all] [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap
  2019-03-01 14:34   ` Axel Lin
@ 2019-03-01 15:31     ` Li, Philip
  0 siblings, 0 replies; 5+ messages in thread
From: Li, Philip @ 2019-03-01 15:31 UTC (permalink / raw)
  To: Axel Lin, lkp; +Cc: Keerthy, Mark Brown, kbuild-all, LKML, Liam Girdwood

> Subject: Re: [kbuild-all] [PATCH] regulator: lp87565: Convert to use
> regulator_set/get_current_limit_regmap
> 
> kbuild test robot <lkp@intel.com> 於 2019年3月1日 週五 下午7:32寫道:
> >
> > Hi Axel,
> >
> > Thank you for the patch! Yet something to improve:
> >
> > [auto build test ERROR on regulator/for-next]
> > [also build test ERROR on next-20190228]
> > [cannot apply to v5.0-rc8]
> > [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system]
> 
> This patch needs patch1 and patch2 of https://lkml.org/lkml/2019/2/28/482
thanks for your kind info.

> 
> I sent it today because I think Keerthy can review and test it together
> with my another fix for lp87565.
> I didn't realize kbuild will pick up the patch automatically.
> I should wait until the required patches get merged then send this
> patch. Sorry for the mess.
> 
> Regards,
> Axel
> _______________________________________________
> kbuild-all mailing list
> kbuild-all@lists.01.org
> https://lists.01.org/mailman/listinfo/kbuild-all

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-03-01 15:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-01  6:24 [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap Axel Lin
2019-03-01 11:31 ` kbuild test robot
2019-03-01 14:34   ` Axel Lin
2019-03-01 15:31     ` [kbuild-all] " Li, Philip
2019-03-01 12:53 ` kbuild test robot

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).