lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ