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 <ckee...@opensource.wolfsonmicro.com>
:::::: CC: Mark Brown <broo...@kernel.org>

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

Attachment: .config.gz
Description: application/gzip

Reply via email to