[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201903012022.lJ0mK4Vz%fengguang.wu@intel.com>
Date: Fri, 1 Mar 2019 20:53:46 +0800
From: kbuild test robot <lkp@...el.com>
To: Axel Lin <axel.lin@...ics.com>
Cc: kbuild-all@...org, Mark Brown <broonie@...nel.org>,
Keerthy <j-keerthy@...com>, Liam Girdwood <lgirdwood@...il.com>,
linux-kernel@...r.kernel.org, Axel Lin <axel.lin@...ics.com>
Subject: Re: [PATCH] regulator: lp87565: Convert to use
regulator_set/get_current_limit_regmap
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
Download attachment ".config.gz" of type "application/gzip" (49915 bytes)
Powered by blists - more mailing lists