Message ID | 1490107539-23995-1-git-send-email-ckeepax@opensource.wolfsonmicro.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Mar 21, 2017 at 02:45:34PM +0000, Charles Keepax wrote: > Add a helper function regulator_set_soft_start_regmap to allow regmap > based regulators to easily enable soft start. > > Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> > --- > drivers/regulator/helpers.c | 18 ++++++++++++++++++ > include/linux/regulator/driver.h | 4 ++++ > 2 files changed, 22 insertions(+) > > diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c > index 379cdac..a75e7da 100644 > --- a/drivers/regulator/helpers.c > +++ b/drivers/regulator/helpers.c > @@ -446,6 +446,24 @@ int regulator_set_bypass_regmap(struct regulator_dev *rdev, bool enable) > EXPORT_SYMBOL_GPL(regulator_set_bypass_regmap); > > /** > + * regulator_set_soft_start_regmap - Default set_soft_start() using regmap > + * > + * @rdev: device to operate on. > + */ > +int regulator_set_soft_start_regmap(struct regulator_dev *rdev) > +{ > + unsigned int val; > + > + val = rdev->desc->soft_start_val_on; > + if (!val) > + val = rdev->desc->soft_start_mask; > + > + return regmap_update_bits(rdev->regmap, rdev->desc->soft_start_reg, > + rdev->desc->soft_start_mask, val); > +} > +EXPORT_SYMBOL_GPL(regulator_set_soft_start_regmap); > + Apologies there are some small bugs here let me respin the series. Thanks, Charles
Hi Charles, [auto build test WARNING on asoc/for-next] [also build test WARNING on v4.11-rc3 next-20170324] [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-helpers-Add-regmap-set_soft_start-helper/20170324-223205 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next reproduce: make htmldocs All warnings (new ones prefixed by >>): include/linux/init.h:1: warning: no structured comments found kernel/sched/core.c:2085: warning: No description found for parameter 'rf' kernel/sched/core.c:2085: warning: Excess function parameter 'cookie' description in 'try_to_wake_up_local' include/linux/kthread.h:26: warning: Excess function parameter '...' description in 'kthread_create' kernel/sys.c:1: warning: no structured comments found include/linux/device.h:969: warning: No description found for parameter 'dma_ops' drivers/dma-buf/seqno-fence.c:1: warning: no structured comments found include/linux/iio/iio.h:597: warning: No description found for parameter 'trig_readonly' include/linux/iio/trigger.h:151: warning: No description found for parameter 'indio_dev' include/linux/iio/trigger.h:151: warning: No description found for parameter 'trig' include/linux/device.h:970: warning: No description found for parameter 'dma_ops' >> include/linux/regulator/driver.h:358: warning: No description found for parameter 'soft_start_reg' >> include/linux/regulator/driver.h:358: warning: No description found for parameter 'soft_start_mask' >> include/linux/regulator/driver.h:358: warning: No description found for parameter 'soft_start_val_on' drivers/regulator/core.c:1467: warning: Excess function parameter 'ret' description in 'regulator_dev_lookup' include/drm/drm_drv.h:438: warning: No description found for parameter 'open' include/drm/drm_drv.h:438: warning: No description found for parameter 'preclose' include/drm/drm_drv.h:438: warning: No description found for parameter 'postclose' include/drm/drm_drv.h:438: warning: No description found for parameter 'lastclose' include/drm/drm_drv.h:438: warning: No description found for parameter 'set_busid' include/drm/drm_drv.h:438: warning: No description found for parameter 'irq_handler' include/drm/drm_drv.h:438: warning: No description found for parameter 'irq_preinstall' include/drm/drm_drv.h:438: warning: No description found for parameter 'irq_postinstall' include/drm/drm_drv.h:438: warning: No description found for parameter 'irq_uninstall' include/drm/drm_drv.h:438: warning: No description found for parameter 'debugfs_init' include/drm/drm_drv.h:438: warning: No description found for parameter 'debugfs_cleanup' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_open_object' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_close_object' include/drm/drm_drv.h:438: warning: No description found for parameter 'prime_handle_to_fd' include/drm/drm_drv.h:438: warning: No description found for parameter 'prime_fd_to_handle' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_export' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_import' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_pin' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_unpin' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_res_obj' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_get_sg_table' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_import_sg_table' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_vmap' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_vunmap' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_prime_mmap' include/drm/drm_drv.h:438: warning: No description found for parameter 'gem_vm_ops' include/drm/drm_drv.h:438: warning: No description found for parameter 'major' include/drm/drm_drv.h:438: warning: No description found for parameter 'minor' include/drm/drm_drv.h:438: warning: No description found for parameter 'patchlevel' include/drm/drm_drv.h:438: warning: No description found for parameter 'name' include/drm/drm_drv.h:438: warning: No description found for parameter 'desc' include/drm/drm_drv.h:438: warning: No description found for parameter 'date' include/drm/drm_drv.h:438: warning: No description found for parameter 'driver_features' include/drm/drm_drv.h:438: warning: No description found for parameter 'ioctls' include/drm/drm_drv.h:438: warning: No description found for parameter 'num_ioctls' include/drm/drm_drv.h:438: warning: No description found for parameter 'fops' include/drm/drm_color_mgmt.h:1: warning: no structured comments found drivers/gpu/drm/drm_fb_cma_helper.c:557: warning: Excess function parameter 'num_crtc' description in 'drm_fbdev_cma_init' drivers/gpu/drm/drm_fb_cma_helper.c:558: warning: Excess function parameter 'num_crtc' description in 'drm_fbdev_cma_init' drivers/gpu/drm/i915/intel_lpe_audio.c:342: warning: No description found for parameter 'pipe' drivers/gpu/drm/i915/intel_lpe_audio.c:342: warning: No description found for parameter 'dp_output' drivers/gpu/drm/i915/intel_lpe_audio.c:342: warning: No description found for parameter 'link_rate' drivers/gpu/drm/i915/intel_lpe_audio.c:343: warning: No description found for parameter 'pipe' drivers/gpu/drm/i915/intel_lpe_audio.c:343: warning: No description found for parameter 'dp_output' drivers/gpu/drm/i915/intel_lpe_audio.c:343: warning: No description found for parameter 'link_rate' drivers/media/dvb-core/dvb_frontend.h:677: warning: No description found for parameter 'refcount' Documentation/core-api/assoc_array.rst:13: WARNING: Enumerated list ends without a blank line; unexpected unindent. Documentation/doc-guide/sphinx.rst:110: ERROR: Unknown target name: "sphinx c domain". kernel/sched/fair.c:7616: WARNING: Inline emphasis start-string without end-string. kernel/time/timer.c:1200: ERROR: Unexpected indentation. kernel/time/timer.c:1202: ERROR: Unexpected indentation. kernel/time/timer.c:1203: WARNING: Block quote ends without a blank line; unexpected unindent. include/linux/wait.h:122: WARNING: Block quote ends without a blank line; unexpected unindent. include/linux/wait.h:125: ERROR: Unexpected indentation. include/linux/wait.h:127: WARNING: Block quote ends without a blank line; unexpected unindent. kernel/time/hrtimer.c:990: WARNING: Block quote ends without a blank line; unexpected unindent. kernel/signal.c:322: WARNING: Inline literal start-string without end-string. include/linux/iio/iio.h:219: ERROR: Unexpected indentation. include/linux/iio/iio.h:220: WARNING: Block quote ends without a blank line; unexpected unindent. include/linux/iio/iio.h:226: WARNING: Definition list ends without a blank line; unexpected unindent. drivers/iio/industrialio-core.c:639: ERROR: Unknown target name: "iio_val". drivers/iio/industrialio-core.c:646: ERROR: Unknown target name: "iio_val". drivers/message/fusion/mptbase.c:5051: WARNING: Definition list ends without a blank line; unexpected unindent. drivers/tty/serial/serial_core.c:1898: WARNING: Definition list ends without a blank line; unexpected unindent. include/linux/regulator/driver.h:271: ERROR: Unknown target name: "regulator_regmap_x_voltage". include/linux/spi/spi.h:369: ERROR: Unexpected indentation. drivers/usb/core/message.c:478: ERROR: Unexpected indentation. drivers/usb/core/message.c:479: WARNING: Block quote ends without a blank line; unexpected unindent. Documentation/driver-api/usb.rst:623: ERROR: Unknown target name: "usb_type". Documentation/driver-api/usb.rst:623: ERROR: Unknown target name: "usb_dir". Documentation/driver-api/usb.rst:623: ERROR: Unknown target name: "usb_recip". Documentation/driver-api/usb.rst:689: ERROR: Unknown target name: "usbdevfs_urb_type". sound/soc/soc-core.c:2670: ERROR: Unknown target name: "snd_soc_daifmt". sound/core/jack.c:312: ERROR: Unknown target name: "snd_jack_btn". WARNING: dvipng command 'dvipng' cannot be run (needed for math display), check the imgmath_dvipng setting vim +/soft_start_reg +358 include/linux/regulator/driver.h ca5d1b35 Carlo Caione 2014-03-05 342 unsigned int bypass_val_on; ca5d1b35 Carlo Caione 2014-03-05 343 unsigned int bypass_val_off; 354794da Laxman Dewangan 2016-03-02 344 unsigned int active_discharge_on; 354794da Laxman Dewangan 2016-03-02 345 unsigned int active_discharge_off; 354794da Laxman Dewangan 2016-03-02 346 unsigned int active_discharge_mask; 354794da Laxman Dewangan 2016-03-02 347 unsigned int active_discharge_reg; 8b45dea6 Charles Keepax 2017-03-21 348 unsigned int soft_start_reg; 8b45dea6 Charles Keepax 2017-03-21 349 unsigned int soft_start_mask; 8b45dea6 Charles Keepax 2017-03-21 350 unsigned int soft_start_val_on; 79511ed3 Mark Brown 2012-06-27 351 79511ed3 Mark Brown 2012-06-27 352 unsigned int enable_time; 871f5650 Guodong Xu 2014-08-13 353 871f5650 Guodong Xu 2014-08-13 354 unsigned int off_on_delay; 87e1e0f2 Javier Martinez Canillas 2014-11-10 355 87e1e0f2 Javier Martinez Canillas 2014-11-10 356 unsigned int (*of_map_mode)(unsigned int mode); 571a354b Liam Girdwood 2008-04-30 357 }; 571a354b Liam Girdwood 2008-04-30 @358 c172708d Mark Brown 2012-04-04 359 /** c172708d Mark Brown 2012-04-04 360 * struct regulator_config - Dynamic regulator descriptor c172708d Mark Brown 2012-04-04 361 * c172708d Mark Brown 2012-04-04 362 * Each regulator registered with the core is described with a c172708d Mark Brown 2012-04-04 363 * structure of this type and a struct regulator_desc. This structure c172708d Mark Brown 2012-04-04 364 * contains the runtime variable parts of the regulator description. c172708d Mark Brown 2012-04-04 365 * c172708d Mark Brown 2012-04-04 366 * @dev: struct device for the regulator :::::: The code at line 358 was first introduced by commit :::::: 571a354b1542a274d88617e1f6703f3fe7a517f1 regulator: regulator driver interface :::::: TO: Liam Girdwood <lg@opensource.wolfsonmicro.com> :::::: CC: Liam Girdwood <lg@opensource.wolfsonmicro.com> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c index 379cdac..a75e7da 100644 --- a/drivers/regulator/helpers.c +++ b/drivers/regulator/helpers.c @@ -446,6 +446,24 @@ int regulator_set_bypass_regmap(struct regulator_dev *rdev, bool enable) EXPORT_SYMBOL_GPL(regulator_set_bypass_regmap); /** + * regulator_set_soft_start_regmap - Default set_soft_start() using regmap + * + * @rdev: device to operate on. + */ +int regulator_set_soft_start_regmap(struct regulator_dev *rdev) +{ + unsigned int val; + + val = rdev->desc->soft_start_val_on; + if (!val) + val = rdev->desc->soft_start_mask; + + return regmap_update_bits(rdev->regmap, rdev->desc->soft_start_reg, + rdev->desc->soft_start_mask, val); +} +EXPORT_SYMBOL_GPL(regulator_set_soft_start_regmap); + +/** * regulator_get_bypass_regmap - Default get_bypass() using regmap * * @rdev: device to operate on. diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index dac8e7b1..7e2e70d 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h @@ -345,6 +345,9 @@ struct regulator_desc { unsigned int active_discharge_off; unsigned int active_discharge_mask; unsigned int active_discharge_reg; + unsigned int soft_start_reg; + unsigned int soft_start_mask; + unsigned int soft_start_val_on; unsigned int enable_time; @@ -476,6 +479,7 @@ int regulator_set_voltage_time_sel(struct regulator_dev *rdev, unsigned int new_selector); int regulator_set_bypass_regmap(struct regulator_dev *rdev, bool enable); int regulator_get_bypass_regmap(struct regulator_dev *rdev, bool *enable); +int regulator_set_soft_start_regmap(struct regulator_dev *rdev); int regulator_set_active_discharge_regmap(struct regulator_dev *rdev, bool enable);
Add a helper function regulator_set_soft_start_regmap to allow regmap based regulators to easily enable soft start. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> --- drivers/regulator/helpers.c | 18 ++++++++++++++++++ include/linux/regulator/driver.h | 4 ++++ 2 files changed, 22 insertions(+)