Re: [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap
From: kbuild test robot
Date: Fri Mar 01 2019 - 06:49:19 EST
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:
.config.gz
Description: application/gzip