[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201811231606.fDWBzL7a%fengguang.wu@intel.com>
Date: Fri, 23 Nov 2018 17:00:57 +0800
From: kbuild test robot <lkp@...el.com>
To: Charles Keepax <ckeepax@...nsource.cirrus.com>
Cc: kbuild-all@...org, lee.jones@...aro.org, mturquette@...libre.com,
sboyd@...nel.org, broonie@...nel.org, linus.walleij@...aro.org,
robh+dt@...nel.org, mark.rutland@....com, lgirdwood@...il.com,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
patches@...nsource.cirrus.com, linux-clk@...r.kernel.org,
linux-gpio@...r.kernel.org
Subject: Re: [PATCH v5 6/8] mfd: lochnagar: Add support for the Cirrus Logic
Lochnagar
Hi Charles,
I love your patch! Yet something to improve:
[auto build test ERROR on ljones-mfd/for-mfd-next]
[also build test ERROR on v4.20-rc3]
[cannot apply to next-20181122]
[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/Charles-Keepax/regulator-lochnagar-Move-driver-to-binding-from-DT/20181123-133943
base: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
config: sh-allyesconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.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=7.2.0 make.cross ARCH=sh
All errors (new ones prefixed by >>):
In file included from arch/sh/include/asm/string.h:3:0,
from include/linux/string.h:20,
from include/linux/bitmap.h:9,
from include/linux/nodemask.h:95,
from include/linux/mmzone.h:17,
from include/linux/gfp.h:6,
from include/linux/umh.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from drivers/staging/media/bcm2048/radio-bcm2048.c:33:
drivers/staging/media/bcm2048/radio-bcm2048.c: In function 'bcm2048_vidioc_g_audio':
arch/sh/include/asm/string_32.h:50:42: warning: array subscript is above array bounds [-Warray-bounds]
: "0" (__dest), "1" (__src), "r" (__src+__n)
~~~~~^~~~
drivers/staging/iio/adc/ad7606_par.c: In function 'ad7606_par16_read_block':
drivers/staging/iio/adc/ad7606_par.c:22:23: warning: unused variable 'st' [-Wunused-variable]
struct ad7606_state *st = iio_priv(indio_dev);
^~
drivers/staging/iio/adc/ad7606_par.c: In function 'ad7606_par8_read_block':
drivers/staging/iio/adc/ad7606_par.c:37:23: warning: unused variable 'st' [-Wunused-variable]
struct ad7606_state *st = iio_priv(indio_dev);
^~
drivers/staging/media/bcm2048/radio-bcm2048.c: In function 'bcm2048_vidioc_g_tuner':
arch/sh/include/asm/string_32.h:50:42: warning: array subscript is above array bounds [-Warray-bounds]
: "0" (__dest), "1" (__src), "r" (__src+__n)
~~~~~^~~~
drivers/thermal/broadcom/ns-thermal.c: In function 'ns_thermal_remove':
drivers/thermal/broadcom/ns-thermal.c:81:21: warning: unused variable 'ns_thermal' [-Wunused-variable]
struct ns_thermal *ns_thermal = platform_get_drvdata(pdev);
^~~~~~~~~~
In file included from arch/sh/include/asm/string.h:3:0,
from include/linux/string.h:20,
from include/linux/bitmap.h:9,
from include/linux/nodemask.h:95,
from include/linux/mmzone.h:17,
from include/linux/gfp.h:6,
from include/linux/umh.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from drivers/scsi/ch.c:10:
drivers/scsi/ch.c: In function 'ch_ioctl':
arch/sh/include/asm/string_32.h:50:42: warning: array subscript is above array bounds [-Warray-bounds]
: "0" (__dest), "1" (__src), "r" (__src+__n)
~~~~~^~~~
arch/sh/include/asm/string_32.h:50:42: warning: array subscript is above array bounds [-Warray-bounds]
: "0" (__dest), "1" (__src), "r" (__src+__n)
~~~~~^~~~
arch/sh/include/asm/string_32.h:50:42: warning: array subscript is above array bounds [-Warray-bounds]
: "0" (__dest), "1" (__src), "r" (__src+__n)
~~~~~^~~~
arch/sh/include/asm/string_32.h:50:42: warning: array subscript is above array bounds [-Warray-bounds]
: "0" (__dest), "1" (__src), "r" (__src+__n)
~~~~~^~~~
drivers/regulator/lochnagar-regulator.c: In function 'lochnagar_micbias_of_parse':
>> drivers/regulator/lochnagar-regulator.c:115:7: error: 'LOCHNAGAR2_P2_MICBIAS_SRC_SHIFT' undeclared (first use in this function); did you mean 'LOCHNAGAR_DEVICE_ID_SHIFT'?
LOCHNAGAR2_P2_MICBIAS_SRC_SHIFT;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR_DEVICE_ID_SHIFT
drivers/regulator/lochnagar-regulator.c:115:7: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/regulator/lochnagar-regulator.c:116:13: error: 'LOCHNAGAR2_P1_MICBIAS_SRC_MASK' undeclared (first use in this function); did you mean 'LOCHNAGAR2_P2_MICBIAS_SRC_SHIFT'?
int mask = LOCHNAGAR2_P1_MICBIAS_SRC_MASK << shift;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_P2_MICBIAS_SRC_SHIFT
In file included from drivers/regulator/lochnagar-regulator.c:18:0:
>> drivers/regulator/lochnagar-regulator.c:124:7: error: 'LOCHNAGAR2_ANALOGUE_PATH_CTRL2' undeclared (first use in this function)
LOCHNAGAR2_ANALOGUE_PATH_CTRL2,
^
include/linux/regmap.h:77:31: note: in definition of macro 'regmap_update_bits'
regmap_update_bits_base(map, reg, mask, val, NULL, false, false)
^~~
drivers/regulator/lochnagar-regulator.c: At top level:
>> drivers/regulator/lochnagar-regulator.c:148:17: error: 'LOCHNAGAR2_MICVDD_CTRL1' undeclared here (not in a function); did you mean 'LOCHNAGAR_MICVDD'?
.enable_reg = LOCHNAGAR2_MICVDD_CTRL1,
^~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR_MICVDD
>> drivers/regulator/lochnagar-regulator.c:149:18: error: 'LOCHNAGAR2_MICVDD_REG_ENA_MASK' undeclared here (not in a function); did you mean 'LOCHNAGAR2_MICVDD_CTRL1'?
.enable_mask = LOCHNAGAR2_MICVDD_REG_ENA_MASK,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_MICVDD_CTRL1
>> drivers/regulator/lochnagar-regulator.c:150:15: error: 'LOCHNAGAR2_MICVDD_CTRL2' undeclared here (not in a function); did you mean 'LOCHNAGAR2_MICVDD_CTRL1'?
.vsel_reg = LOCHNAGAR2_MICVDD_CTRL2,
^~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_MICVDD_CTRL1
>> drivers/regulator/lochnagar-regulator.c:151:16: error: 'LOCHNAGAR2_MICVDD_VSEL_MASK' undeclared here (not in a function); did you mean 'LOCHNAGAR2_MICVDD_REG_ENA_MASK'?
.vsel_mask = LOCHNAGAR2_MICVDD_VSEL_MASK,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_MICVDD_REG_ENA_MASK
>> drivers/regulator/lochnagar-regulator.c:171:17: error: 'LOCHNAGAR2_ANALOGUE_PATH_CTRL2' undeclared here (not in a function); did you mean 'LOCHNAGAR2_MICVDD_CTRL2'?
.enable_reg = LOCHNAGAR2_ANALOGUE_PATH_CTRL2,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_MICVDD_CTRL2
>> drivers/regulator/lochnagar-regulator.c:172:18: error: 'LOCHNAGAR2_P1_INPUT_BIAS_ENA_MASK' undeclared here (not in a function); did you mean 'LOCHNAGAR2_MICVDD_REG_ENA_MASK'?
.enable_mask = LOCHNAGAR2_P1_INPUT_BIAS_ENA_MASK,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_MICVDD_REG_ENA_MASK
>> drivers/regulator/lochnagar-regulator.c:187:18: error: 'LOCHNAGAR2_P2_INPUT_BIAS_ENA_MASK' undeclared here (not in a function); did you mean 'LOCHNAGAR2_P1_INPUT_BIAS_ENA_MASK'?
.enable_mask = LOCHNAGAR2_P2_INPUT_BIAS_ENA_MASK,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_P1_INPUT_BIAS_ENA_MASK
>> drivers/regulator/lochnagar-regulator.c:201:17: error: 'LOCHNAGAR2_VDDCORE_CDC_CTRL1' undeclared here (not in a function); did you mean 'LOCHNAGAR2_MICVDD_CTRL1'?
.enable_reg = LOCHNAGAR2_VDDCORE_CDC_CTRL1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_MICVDD_CTRL1
>> drivers/regulator/lochnagar-regulator.c:202:18: error: 'LOCHNAGAR2_VDDCORE_CDC_REG_ENA_MASK' undeclared here (not in a function); did you mean 'LOCHNAGAR2_MICVDD_REG_ENA_MASK'?
.enable_mask = LOCHNAGAR2_VDDCORE_CDC_REG_ENA_MASK,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_MICVDD_REG_ENA_MASK
>> drivers/regulator/lochnagar-regulator.c:203:15: error: 'LOCHNAGAR2_VDDCORE_CDC_CTRL2' undeclared here (not in a function); did you mean 'LOCHNAGAR2_VDDCORE_CDC_CTRL1'?
.vsel_reg = LOCHNAGAR2_VDDCORE_CDC_CTRL2,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_VDDCORE_CDC_CTRL1
>> drivers/regulator/lochnagar-regulator.c:204:16: error: 'LOCHNAGAR2_VDDCORE_CDC_VSEL_MASK' undeclared here (not in a function); did you mean 'LOCHNAGAR2_VDDCORE_CDC_REG_ENA_MASK'?
.vsel_mask = LOCHNAGAR2_VDDCORE_CDC_VSEL_MASK,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LOCHNAGAR2_VDDCORE_CDC_REG_ENA_MASK
make[3]: *** [drivers/regulator/lochnagar-regulator.o] Error 1
make[3]: Target '__build' not remade because of errors.
make[2]: *** [drivers/regulator] Error 2
In file included from arch/sh/include/asm/string.h:3:0,
from include/linux/string.h:20,
from include/linux/bitmap.h:9,
from include/linux/cpumask.h:12,
from include/linux/rcupdate.h:44,
from include/linux/radix-tree.h:28,
from include/linux/idr.h:15,
from include/linux/kernfs.h:14,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/platform_device.h:14,
from drivers/tty/serial/xilinx_uartps.c:16:
drivers/tty/serial/xilinx_uartps.c: In function 'cdns_uart_probe':
arch/sh/include/asm/string_32.h:50:42: warning: array subscript is above array bounds [-Warray-bounds]
: "0" (__dest), "1" (__src), "r" (__src+__n)
~~~~~^~~~
In file included from arch/sh/include/asm/string.h:3:0,
from include/linux/string.h:20,
from include/linux/bitmap.h:9,
from include/linux/nodemask.h:95,
from include/linux/mmzone.h:17,
from include/linux/gfp.h:6,
from include/linux/umh.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from drivers/usb/gadget/udc/mv_u3d_core.c:6:
drivers/usb/gadget/udc/mv_u3d_core.c: In function 'mv_u3d_probe':
arch/sh/include/asm/string_32.h:50:42: warning: array subscript is above array bounds [-Warray-bounds]
: "0" (__dest), "1" (__src), "r" (__src+__n)
~~~~~^~~~
In file included from arch/sh/include/asm/string.h:3:0,
from include/linux/string.h:20,
from include/linux/bitmap.h:9,
from include/linux/nodemask.h:95,
from include/linux/mmzone.h:17,
from include/linux/gfp.h:6,
from include/linux/umh.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from drivers/usb/gadget/udc/mv_udc_core.c:8:
drivers/usb/gadget/udc/mv_udc_core.c: In function 'mv_udc_probe':
arch/sh/include/asm/string_32.h:50:42: warning: array subscript is above array bounds [-Warray-bounds]
: "0" (__dest), "1" (__src), "r" (__src+__n)
~~~~~^~~~
make[2]: Target '__build' not remade because of errors.
vim +115 drivers/regulator/lochnagar-regulator.c
bef9391c Charles Keepax 2018-10-08 9
bef9391c Charles Keepax 2018-10-08 10 #include <linux/bitops.h>
bef9391c Charles Keepax 2018-10-08 11 #include <linux/device.h>
bef9391c Charles Keepax 2018-10-08 12 #include <linux/err.h>
bef9391c Charles Keepax 2018-10-08 13 #include <linux/module.h>
bef9391c Charles Keepax 2018-10-08 14 #include <linux/mutex.h>
bef9391c Charles Keepax 2018-10-08 15 #include <linux/of.h>
fda7f8cb Charles Keepax 2018-11-20 16 #include <linux/of_device.h>
bef9391c Charles Keepax 2018-10-08 17 #include <linux/platform_device.h>
bef9391c Charles Keepax 2018-10-08 @18 #include <linux/regmap.h>
bef9391c Charles Keepax 2018-10-08 19 #include <linux/regulator/driver.h>
bef9391c Charles Keepax 2018-10-08 20 #include <linux/regulator/machine.h>
bef9391c Charles Keepax 2018-10-08 21 #include <linux/regulator/of_regulator.h>
bef9391c Charles Keepax 2018-10-08 22
bef9391c Charles Keepax 2018-10-08 23 #include <linux/mfd/lochnagar.h>
bef9391c Charles Keepax 2018-10-08 24
bef9391c Charles Keepax 2018-10-08 25 static const struct regulator_ops lochnagar_micvdd_ops = {
bef9391c Charles Keepax 2018-10-08 26 .enable = regulator_enable_regmap,
bef9391c Charles Keepax 2018-10-08 27 .disable = regulator_disable_regmap,
bef9391c Charles Keepax 2018-10-08 28 .is_enabled = regulator_is_enabled_regmap,
bef9391c Charles Keepax 2018-10-08 29
bef9391c Charles Keepax 2018-10-08 30 .list_voltage = regulator_list_voltage_linear_range,
bef9391c Charles Keepax 2018-10-08 31 .map_voltage = regulator_map_voltage_linear_range,
bef9391c Charles Keepax 2018-10-08 32
bef9391c Charles Keepax 2018-10-08 33 .get_voltage_sel = regulator_get_voltage_sel_regmap,
bef9391c Charles Keepax 2018-10-08 34 .set_voltage_sel = regulator_set_voltage_sel_regmap,
bef9391c Charles Keepax 2018-10-08 35 };
bef9391c Charles Keepax 2018-10-08 36
bef9391c Charles Keepax 2018-10-08 37 static const struct regulator_linear_range lochnagar_micvdd_ranges[] = {
bef9391c Charles Keepax 2018-10-08 38 REGULATOR_LINEAR_RANGE(1000000, 0, 0xC, 50000),
bef9391c Charles Keepax 2018-10-08 39 REGULATOR_LINEAR_RANGE(1700000, 0xD, 0x1F, 100000),
bef9391c Charles Keepax 2018-10-08 40 };
bef9391c Charles Keepax 2018-10-08 41
bef9391c Charles Keepax 2018-10-08 42 static int lochnagar_micbias_enable(struct regulator_dev *rdev)
bef9391c Charles Keepax 2018-10-08 43 {
bef9391c Charles Keepax 2018-10-08 44 struct lochnagar *lochnagar = rdev_get_drvdata(rdev);
bef9391c Charles Keepax 2018-10-08 45 int ret;
bef9391c Charles Keepax 2018-10-08 46
bef9391c Charles Keepax 2018-10-08 47 mutex_lock(&lochnagar->analogue_config_lock);
bef9391c Charles Keepax 2018-10-08 48
bef9391c Charles Keepax 2018-10-08 49 ret = regulator_enable_regmap(rdev);
bef9391c Charles Keepax 2018-10-08 50 if (ret < 0)
bef9391c Charles Keepax 2018-10-08 51 goto err;
bef9391c Charles Keepax 2018-10-08 52
bef9391c Charles Keepax 2018-10-08 53 ret = lochnagar_update_config(lochnagar);
bef9391c Charles Keepax 2018-10-08 54
bef9391c Charles Keepax 2018-10-08 55 err:
bef9391c Charles Keepax 2018-10-08 56 mutex_unlock(&lochnagar->analogue_config_lock);
bef9391c Charles Keepax 2018-10-08 57
bef9391c Charles Keepax 2018-10-08 58 return ret;
bef9391c Charles Keepax 2018-10-08 59 }
bef9391c Charles Keepax 2018-10-08 60
bef9391c Charles Keepax 2018-10-08 61 static int lochnagar_micbias_disable(struct regulator_dev *rdev)
bef9391c Charles Keepax 2018-10-08 62 {
bef9391c Charles Keepax 2018-10-08 63 struct lochnagar *lochnagar = rdev_get_drvdata(rdev);
bef9391c Charles Keepax 2018-10-08 64 int ret;
bef9391c Charles Keepax 2018-10-08 65
bef9391c Charles Keepax 2018-10-08 66 mutex_lock(&lochnagar->analogue_config_lock);
bef9391c Charles Keepax 2018-10-08 67
bef9391c Charles Keepax 2018-10-08 68 ret = regulator_disable_regmap(rdev);
bef9391c Charles Keepax 2018-10-08 69 if (ret < 0)
bef9391c Charles Keepax 2018-10-08 70 goto err;
bef9391c Charles Keepax 2018-10-08 71
bef9391c Charles Keepax 2018-10-08 72 ret = lochnagar_update_config(lochnagar);
bef9391c Charles Keepax 2018-10-08 73
bef9391c Charles Keepax 2018-10-08 74 err:
bef9391c Charles Keepax 2018-10-08 75 mutex_unlock(&lochnagar->analogue_config_lock);
bef9391c Charles Keepax 2018-10-08 76
bef9391c Charles Keepax 2018-10-08 77 return ret;
bef9391c Charles Keepax 2018-10-08 78 }
bef9391c Charles Keepax 2018-10-08 79
bef9391c Charles Keepax 2018-10-08 80 static const struct regulator_ops lochnagar_micbias_ops = {
bef9391c Charles Keepax 2018-10-08 81 .enable = lochnagar_micbias_enable,
bef9391c Charles Keepax 2018-10-08 82 .disable = lochnagar_micbias_disable,
bef9391c Charles Keepax 2018-10-08 83 .is_enabled = regulator_is_enabled_regmap,
bef9391c Charles Keepax 2018-10-08 84 };
bef9391c Charles Keepax 2018-10-08 85
bef9391c Charles Keepax 2018-10-08 86 static const struct regulator_ops lochnagar_vddcore_ops = {
bef9391c Charles Keepax 2018-10-08 87 .enable = regulator_enable_regmap,
bef9391c Charles Keepax 2018-10-08 88 .disable = regulator_disable_regmap,
bef9391c Charles Keepax 2018-10-08 89 .is_enabled = regulator_is_enabled_regmap,
bef9391c Charles Keepax 2018-10-08 90
bef9391c Charles Keepax 2018-10-08 91 .list_voltage = regulator_list_voltage_linear_range,
bef9391c Charles Keepax 2018-10-08 92 .map_voltage = regulator_map_voltage_linear_range,
bef9391c Charles Keepax 2018-10-08 93
bef9391c Charles Keepax 2018-10-08 94 .get_voltage_sel = regulator_get_voltage_sel_regmap,
bef9391c Charles Keepax 2018-10-08 95 .set_voltage_sel = regulator_set_voltage_sel_regmap,
bef9391c Charles Keepax 2018-10-08 96 };
bef9391c Charles Keepax 2018-10-08 97
bef9391c Charles Keepax 2018-10-08 98 static const struct regulator_linear_range lochnagar_vddcore_ranges[] = {
bef9391c Charles Keepax 2018-10-08 99 REGULATOR_LINEAR_RANGE(600000, 0x8, 0x41, 12500),
bef9391c Charles Keepax 2018-10-08 100 };
bef9391c Charles Keepax 2018-10-08 101
bef9391c Charles Keepax 2018-10-08 102 enum lochnagar_regulators {
bef9391c Charles Keepax 2018-10-08 103 LOCHNAGAR_MICVDD,
bef9391c Charles Keepax 2018-10-08 104 LOCHNAGAR_MIC1VDD,
bef9391c Charles Keepax 2018-10-08 105 LOCHNAGAR_MIC2VDD,
bef9391c Charles Keepax 2018-10-08 106 LOCHNAGAR_VDDCORE,
bef9391c Charles Keepax 2018-10-08 107 };
bef9391c Charles Keepax 2018-10-08 108
bef9391c Charles Keepax 2018-10-08 109 static int lochnagar_micbias_of_parse(struct device_node *np,
bef9391c Charles Keepax 2018-10-08 110 const struct regulator_desc *desc,
bef9391c Charles Keepax 2018-10-08 111 struct regulator_config *config)
bef9391c Charles Keepax 2018-10-08 112 {
bef9391c Charles Keepax 2018-10-08 113 struct lochnagar *lochnagar = config->driver_data;
bef9391c Charles Keepax 2018-10-08 114 int shift = (desc->id - LOCHNAGAR_MIC1VDD) *
bef9391c Charles Keepax 2018-10-08 @115 LOCHNAGAR2_P2_MICBIAS_SRC_SHIFT;
bef9391c Charles Keepax 2018-10-08 @116 int mask = LOCHNAGAR2_P1_MICBIAS_SRC_MASK << shift;
bef9391c Charles Keepax 2018-10-08 117 unsigned int val;
bef9391c Charles Keepax 2018-10-08 118 int ret;
bef9391c Charles Keepax 2018-10-08 119
bef9391c Charles Keepax 2018-10-08 120 ret = of_property_read_u32(np, "cirrus,micbias-input", &val);
bef9391c Charles Keepax 2018-10-08 121 if (ret >= 0) {
bef9391c Charles Keepax 2018-10-08 122 mutex_lock(&lochnagar->analogue_config_lock);
bef9391c Charles Keepax 2018-10-08 123 ret = regmap_update_bits(lochnagar->regmap,
bef9391c Charles Keepax 2018-10-08 @124 LOCHNAGAR2_ANALOGUE_PATH_CTRL2,
bef9391c Charles Keepax 2018-10-08 125 mask, val << shift);
bef9391c Charles Keepax 2018-10-08 126 mutex_unlock(&lochnagar->analogue_config_lock);
bef9391c Charles Keepax 2018-10-08 127 if (ret < 0) {
bef9391c Charles Keepax 2018-10-08 128 dev_err(lochnagar->dev,
bef9391c Charles Keepax 2018-10-08 129 "Failed to update micbias source: %d\n", ret);
bef9391c Charles Keepax 2018-10-08 130 return ret;
bef9391c Charles Keepax 2018-10-08 131 }
bef9391c Charles Keepax 2018-10-08 132 }
bef9391c Charles Keepax 2018-10-08 133
bef9391c Charles Keepax 2018-10-08 134 return 0;
bef9391c Charles Keepax 2018-10-08 135 }
bef9391c Charles Keepax 2018-10-08 136
bef9391c Charles Keepax 2018-10-08 137 static const struct regulator_desc lochnagar_regulators[] = {
bef9391c Charles Keepax 2018-10-08 138 [LOCHNAGAR_MICVDD] = {
bef9391c Charles Keepax 2018-10-08 139 .name = "MICVDD",
bef9391c Charles Keepax 2018-10-08 140 .supply_name = "SYSVDD",
bef9391c Charles Keepax 2018-10-08 141 .type = REGULATOR_VOLTAGE,
bef9391c Charles Keepax 2018-10-08 142 .n_voltages = 32,
bef9391c Charles Keepax 2018-10-08 143 .ops = &lochnagar_micvdd_ops,
bef9391c Charles Keepax 2018-10-08 144
bef9391c Charles Keepax 2018-10-08 145 .id = LOCHNAGAR_MICVDD,
bef9391c Charles Keepax 2018-10-08 146 .of_match = of_match_ptr("MICVDD"),
bef9391c Charles Keepax 2018-10-08 147
bef9391c Charles Keepax 2018-10-08 @148 .enable_reg = LOCHNAGAR2_MICVDD_CTRL1,
bef9391c Charles Keepax 2018-10-08 @149 .enable_mask = LOCHNAGAR2_MICVDD_REG_ENA_MASK,
bef9391c Charles Keepax 2018-10-08 @150 .vsel_reg = LOCHNAGAR2_MICVDD_CTRL2,
bef9391c Charles Keepax 2018-10-08 @151 .vsel_mask = LOCHNAGAR2_MICVDD_VSEL_MASK,
bef9391c Charles Keepax 2018-10-08 152
bef9391c Charles Keepax 2018-10-08 153 .linear_ranges = lochnagar_micvdd_ranges,
bef9391c Charles Keepax 2018-10-08 154 .n_linear_ranges = ARRAY_SIZE(lochnagar_micvdd_ranges),
bef9391c Charles Keepax 2018-10-08 155
bef9391c Charles Keepax 2018-10-08 156 .enable_time = 3000,
bef9391c Charles Keepax 2018-10-08 157 .ramp_delay = 1000,
bef9391c Charles Keepax 2018-10-08 158
bef9391c Charles Keepax 2018-10-08 159 .owner = THIS_MODULE,
bef9391c Charles Keepax 2018-10-08 160 },
bef9391c Charles Keepax 2018-10-08 161 [LOCHNAGAR_MIC1VDD] = {
bef9391c Charles Keepax 2018-10-08 162 .name = "MIC1VDD",
bef9391c Charles Keepax 2018-10-08 163 .supply_name = "MICBIAS1",
bef9391c Charles Keepax 2018-10-08 164 .type = REGULATOR_VOLTAGE,
bef9391c Charles Keepax 2018-10-08 165 .ops = &lochnagar_micbias_ops,
bef9391c Charles Keepax 2018-10-08 166
bef9391c Charles Keepax 2018-10-08 167 .id = LOCHNAGAR_MIC1VDD,
bef9391c Charles Keepax 2018-10-08 168 .of_match = of_match_ptr("MIC1VDD"),
bef9391c Charles Keepax 2018-10-08 169 .of_parse_cb = lochnagar_micbias_of_parse,
bef9391c Charles Keepax 2018-10-08 170
bef9391c Charles Keepax 2018-10-08 @171 .enable_reg = LOCHNAGAR2_ANALOGUE_PATH_CTRL2,
bef9391c Charles Keepax 2018-10-08 @172 .enable_mask = LOCHNAGAR2_P1_INPUT_BIAS_ENA_MASK,
bef9391c Charles Keepax 2018-10-08 173
bef9391c Charles Keepax 2018-10-08 174 .owner = THIS_MODULE,
bef9391c Charles Keepax 2018-10-08 175 },
bef9391c Charles Keepax 2018-10-08 176 [LOCHNAGAR_MIC2VDD] = {
bef9391c Charles Keepax 2018-10-08 177 .name = "MIC2VDD",
bef9391c Charles Keepax 2018-10-08 178 .supply_name = "MICBIAS2",
bef9391c Charles Keepax 2018-10-08 179 .type = REGULATOR_VOLTAGE,
bef9391c Charles Keepax 2018-10-08 180 .ops = &lochnagar_micbias_ops,
bef9391c Charles Keepax 2018-10-08 181
bef9391c Charles Keepax 2018-10-08 182 .id = LOCHNAGAR_MIC2VDD,
bef9391c Charles Keepax 2018-10-08 183 .of_match = of_match_ptr("MIC2VDD"),
bef9391c Charles Keepax 2018-10-08 184 .of_parse_cb = lochnagar_micbias_of_parse,
bef9391c Charles Keepax 2018-10-08 185
bef9391c Charles Keepax 2018-10-08 186 .enable_reg = LOCHNAGAR2_ANALOGUE_PATH_CTRL2,
bef9391c Charles Keepax 2018-10-08 @187 .enable_mask = LOCHNAGAR2_P2_INPUT_BIAS_ENA_MASK,
bef9391c Charles Keepax 2018-10-08 188
bef9391c Charles Keepax 2018-10-08 189 .owner = THIS_MODULE,
bef9391c Charles Keepax 2018-10-08 190 },
bef9391c Charles Keepax 2018-10-08 191 [LOCHNAGAR_VDDCORE] = {
bef9391c Charles Keepax 2018-10-08 192 .name = "VDDCORE",
bef9391c Charles Keepax 2018-10-08 193 .supply_name = "SYSVDD",
bef9391c Charles Keepax 2018-10-08 194 .type = REGULATOR_VOLTAGE,
bef9391c Charles Keepax 2018-10-08 195 .n_voltages = 57,
bef9391c Charles Keepax 2018-10-08 196 .ops = &lochnagar_vddcore_ops,
bef9391c Charles Keepax 2018-10-08 197
bef9391c Charles Keepax 2018-10-08 198 .id = LOCHNAGAR_VDDCORE,
bef9391c Charles Keepax 2018-10-08 199 .of_match = of_match_ptr("VDDCORE"),
bef9391c Charles Keepax 2018-10-08 200
bef9391c Charles Keepax 2018-10-08 @201 .enable_reg = LOCHNAGAR2_VDDCORE_CDC_CTRL1,
bef9391c Charles Keepax 2018-10-08 @202 .enable_mask = LOCHNAGAR2_VDDCORE_CDC_REG_ENA_MASK,
bef9391c Charles Keepax 2018-10-08 @203 .vsel_reg = LOCHNAGAR2_VDDCORE_CDC_CTRL2,
bef9391c Charles Keepax 2018-10-08 @204 .vsel_mask = LOCHNAGAR2_VDDCORE_CDC_VSEL_MASK,
bef9391c Charles Keepax 2018-10-08 205
bef9391c Charles Keepax 2018-10-08 206 .linear_ranges = lochnagar_vddcore_ranges,
bef9391c Charles Keepax 2018-10-08 207 .n_linear_ranges = ARRAY_SIZE(lochnagar_vddcore_ranges),
bef9391c Charles Keepax 2018-10-08 208
bef9391c Charles Keepax 2018-10-08 209 .enable_time = 3000,
bef9391c Charles Keepax 2018-10-08 210 .ramp_delay = 1000,
bef9391c Charles Keepax 2018-10-08 211
bef9391c Charles Keepax 2018-10-08 212 .owner = THIS_MODULE,
bef9391c Charles Keepax 2018-10-08 213 },
bef9391c Charles Keepax 2018-10-08 214 };
bef9391c Charles Keepax 2018-10-08 215
:::::: The code at line 115 was first introduced by commit
:::::: bef9391cbec547351c6a13e52f3a26bb2d271ec7 regulator: lochnagar: Add support for the Cirrus Logic Lochnagar
:::::: TO: Charles Keepax <ckeepax@...nsource.wolfsonmicro.com>
:::::: CC: Mark Brown <broonie@...nel.org>
---
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" (50582 bytes)
Powered by blists - more mailing lists