Re: [PATCH v11 0/6] Add Skyworks SKY81452 device drivers

2015-03-02 Thread Gyungoh Yoo
On Fri, Feb 27, 2015 at 08:39:38PM +, Lee Jones wrote:
> On Fri, 27 Feb 2015, gyun...@gmail.com wrote:
> 
> > From: Gyungoh Yoo 
> > 
> > This patch set includes regulator and backlight driver for SKY81452.
> > Also it includes documents for device tree and module.
> > sky81452-regulator was already applied. So this series doesn't
> > include it.
> > 
> > v11:
> > Renamed 'skyworks,en-channels' property to led-sources.
> > Removed unused property 'skyworks,ovp-level'.
> > 
> > v10:
> > Removed trivial get_brightness implementations for sky81452-backlight
> > 
> > v9:
> > Removed the change to remove MODULE_VERSION() for sky81452-regulator
> > 
> > v8:
> > Renamed property names for backlight with vendor prefix
> > Modified gpio-enable property to generic property for GPIO
> > Made up the example for backlight DT
> > Changed the DT parsing of regulator using regulator_node and of_match
> > 
> > v7:
> > Modified licensing text to GPLv2
> > Split Kconfig renaming from DT patch
> > 
> > v6:
> > Added new line character at the end of line of dev_err()
> > 
> > v5:
> > Changed DT for regulator : 'lout' node should be defined under 'regulator'
> > Removed compatible string from sky81452-regulator driver
> > Modified sky81452-regulator to return EINVAL when of_node is NULL
> > Move sky81452-backlight.h to include/linux/platform_data
> > 
> > v4:
> > Removed MODULE_VERSION()
> > Modified license to GPLv2
> > Removed calling to backlight_device_unregister() in sky81452-backlight
> > 
> > v3:
> > Cleaned-up DBG messages
> > Cleaned-up DT
> > Fixed the backlight name from 'sky81452-bl' to 'sky81452-backlight'
> > Assigned mfd_cell.of_compatible for binding device node
> > Modified error messages
> > Modified sky81452-regulator to return ENODATA when of_node is NULL
> > 
> > v2:
> > Split the patches for each sub-system
> > Added 'reg' attribute for I2C address in device tree documents
> > Added 'compatible' attribute in child drivers
> > Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
> > Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
> > Added message for exception or errors.
> > Added vendor prefix for Skyworks Solutions, Inc.
> > Add SKY81452 to the Trivial Devices list
> > 
> > Gyungoh Yoo (6):
> >   mfd: Add support for Skyworks SKY81452 driver
> >   backlight: Add support Skyworks SKY81452 backlight driver
> >   devicetree: Add new SKY81452 mfd binding
> >   devicetree: Add new SKY81452 backlight binding
> >   devicetree: Add vendor prefix for Skyworks Solutions, Inc.
> >   devicetree: Add SKY81452 to the Trivial Devices list
> > 
> >  .../devicetree/bindings/i2c/trivial-devices.txt|   1 +
> >  Documentation/devicetree/bindings/mfd/sky81452.txt |  35 ++
> >  .../devicetree/bindings/vendor-prefixes.txt|   1 +
> >  .../video/backlight/sky81452-backlight.txt |  29 ++
> >  drivers/mfd/Kconfig|  12 +
> >  drivers/mfd/Makefile   |   1 +
> >  drivers/mfd/sky81452.c | 108 +++
> >  drivers/video/backlight/Kconfig|  10 +
> >  drivers/video/backlight/Makefile   |   1 +
> >  drivers/video/backlight/sky81452-backlight.c   | 353 
> > +
> >  include/linux/mfd/sky81452.h   |  31 ++
> >  include/linux/platform_data/sky81452-backlight.h   |  46 +++
> >  12 files changed, 628 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
> >  create mode 100644 
> > Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> >  create mode 100644 drivers/mfd/sky81452.c
> >  create mode 100644 drivers/video/backlight/sky81452-backlight.c
> >  create mode 100644 include/linux/mfd/sky81452.h
> >  create mode 100644 include/linux/platform_data/sky81452-backlight.h
> 
> Correct me if I'm wrong, but I believe you have all of the relevant
> Acks now.  If so, I plan to pick this up next week and take it
> through the MFD tree.

I had got all Acks except DT on v10.
Rob from DT reviewed, and v11 includes what he asked.

> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v11 2/6] backlight: Add support Skyworks SKY81452 backlight driver

2015-02-27 Thread Gyungoh Yoo
On Fri, Feb 27, 2015 at 09:58:38AM +0100, Oliver Neukum wrote:
> On Fri, 2015-02-27 at 15:42 +0900, gyun...@gmail.com wrote:
> > +static ssize_t sky81452_bl_store_enable(struct device *dev,
> > +   struct device_attribute *attr, const char *buf, size_t
> > count)
> > +{
> > +   struct regmap *regmap = bl_get_data(to_backlight_device(dev));
> > +   unsigned long value;
> > +   int ret;
> > +
> > +   ret = kstrtoul(buf, 16, &value);
> > +   if (IS_ERR_VALUE(ret))
> > +   return ret;
> 
> No range checking?

It doesn't need it. below regmap_update_bits() is masking the value.

> 
> > +
> > +   ret = regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN,
> > +   value << CTZ(SKY81452_EN));
> > +   if (IS_ERR_VALUE(ret))
> > +   return ret;
> > +
> > +   return count;
> > +}
> 
>   Regards
>   Oliver
> 
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v10 0/6] Add Skyworks SKY81452 device drivers

2015-02-04 Thread Gyungoh Yoo
On Thu, Feb 05, 2015 at 03:29:40PM +0900, gyun...@gmail.com wrote:

Please ignore this patch serial v10.
Sorry for my mistake

> From: Gyungoh Yoo 
> 
> This patch set includes regulator and backlight driver for SKY81452.
> Also it includes documents for device tree and module.
> sky81452-regulator was already applied. So this series doesn't
> include it.
> 
> v10:
> Removed trivial get_brightness implementations for sky81452-backlight
> 
> v9:
> Removed the change to remove MODULE_VERSION() for sky81452-regulator
> 
> v8:
> Renamed property names for backlight with vendor prefix
> Modified gpio-enable property to generic property for GPIO
> Made up the example for backlight DT
> Changed the DT parsing of regulator using regulator_node and of_match
> 
> v7:
> Modified licensing text to GPLv2
> Splitted Kconfig renaming from DT patch
> 
> v6:
> Added new line character at the end of line of dev_err()
> 
> v5:
> Changed DT for regulator : 'lout' node should be defined under 'regulator'
> Removed compatible string from sky81452-regulator driver
> Modified sky81452-regulator to return EINVAL when of_node is NULL
> Move sky81452-backlight.h to include/linux/platform_data
> 
> v4:
> Removed MODULE_VERSION()
> Modified license to GPLv2
> Removed calling to backlight_device_unregister() in sky81452-backlight
> 
> v3:
> Cleaned-up DBG messages
> Cleaned-up DT
> Fixed the backlight name from 'sky81452-bl' to 'sky81452-backlight'
> Assigned mfd_cell.of_compatible for binding device node
> Modified error messages
> Modified sky81452-regulator to return ENODATA when of_node is NULL
> 
> v2:
> Split the patches for each sub-system
> Added 'reg' attribute for I2C address in device tree documents
> Added 'compatible' attribute in child drivers
> Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
> Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
> Added message for exception or errors.
> Added vendor prefix for Skyworks Solutions, Inc.
> Add SKY81452 to the Trivial Devices list
> 
> Gyungoh Yoo (6):
>   mfd: Add support for Skyworks SKY81452 driver
>   backlight: Add support Skyworks SKY81452 backlight driver
>   devicetree: mfd: Add new SKY81452 mfd binding
>   devicetree: backlight: Add new SKY81452 backlight binding
>   devicetree: Add vendor prefix for Skyworks Solutions, Inc.
>   devicetree: i2c: Add SKY81452 to the Trivial Devices list
> 
>  .../devicetree/bindings/i2c/trivial-devices.txt|   1 +
>  Documentation/devicetree/bindings/mfd/sky81452.txt |  36 +++
>  .../devicetree/bindings/vendor-prefixes.txt|   1 +
>  .../video/backlight/sky81452-backlight.txt |  29 ++
>  drivers/mfd/Kconfig|  12 +
>  drivers/mfd/Makefile   |   1 +
>  drivers/mfd/sky81452.c | 108 +++
>  drivers/video/backlight/Kconfig|  10 +
>  drivers/video/backlight/Makefile   |   1 +
>  drivers/video/backlight/sky81452-backlight.c   | 334 
> +
>  include/linux/mfd/sky81452.h   |  31 ++
>  include/linux/platform_data/sky81452-backlight.h   |  46 +++
>  12 files changed, 610 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
>  create mode 100644 
> Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
>  create mode 100644 drivers/mfd/sky81452.c
>  create mode 100644 drivers/video/backlight/sky81452-backlight.c
>  create mode 100644 include/linux/mfd/sky81452.h
>  create mode 100644 include/linux/platform_data/sky81452-backlight.h
> 
> -- 
> 1.9.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v10 4/6] devicetree: Add new SKY81452 backlight binding

2015-02-04 Thread Gyungoh Yoo
On Wed, Feb 04, 2015 at 09:11:22AM -0600, Rob Herring wrote:
> On Fri, Jan 23, 2015 at 12:28 AM,   wrote:
> > From: Gyungoh Yoo 
> >
> > Signed-off-by: Gyungoh Yoo 
> > Acked-by: Bryan Wu 
> > ---
> > Changes v10:
> > Nothing
> >
> > Changes v9:
> > Nothing
> >
> > Changes v8:
> > Renamed property names for backlight with vendor prefix
> > Modified gpio-enable property to generic property for GPIO
> > Made up the example for backlight DT
> >
> > Changes v7:
> > Nothing
> >
> > Changes v6:
> > Nothing
> >
> > Changes v5:
> > Nothing
> >
> > Changes v4:
> > Nothing
> >
> > Changes v3:
> > Nothing
> >
> > Changes v2:
> > Added reg attribute for I2C slave address
> 
> You did? Where is it?

It was just changes on version 2.
Since that version, the patch series was separted.

> 
> >  .../video/backlight/sky81452-backlight.txt | 29 
> > ++
> >  1 file changed, 29 insertions(+)
> >  create mode 100644 
> > Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> >
> > diff --git 
> > a/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt 
> > b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> > new file mode 100644
> > index 000..8daebf5
> > --- /dev/null
> > +++ 
> > b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> > @@ -0,0 +1,29 @@
> > +SKY81452-backlight bindings
> > +
> > +Required properties:
> > +- compatible   : Must be "skyworks,sky81452-backlight"
> > +
> > +Optional properties:
> > +- name : Name of backlight device. Default is 
> > 'lcd-backlight'.
> > +- gpios: GPIO to use to EN pin.
> > +   See Documentation/devicetree/bindings/gpio/gpio.txt
> > +- skyworks,en-channels : Enable mask for current sink channel 1 to 6.
> 
> Does led-sources property being added in 3.20 work for this?

I think so. I will modify it.

> 
> > +- skyworks,ignore-pwm  : Ignore both PWM input
> > +- skyworks,dpwm-mode   : Enable DPWM dimming mode, otherwise Analog 
> > dimming.
> > +- skyworks,phase-shift : Enable phase shift mode
> > +- skyworks,ovp-level   : Over-voltage protection level.
> > +   Should be between 14 or 28V.
> 
> Please append units (-volt)

I will append it and resubmit the patch.

Thanks.

> 
> > +- skyworks,short-detection-threshold   : It should be one of 4, 5, 6 and 
> > 7V.
> 
> Please append units (-volt)
> 
> > +- skyworks,current-limit   : It should be 2300mA or 2750mA.
> 
> Please append units (-mA)
> 
> > +
> > +Example:
> > +
> > +   backlight {
> > +   compatible = "skyworks,sky81452-backlight";
> > +   name = "pwm-backlight";
> > +   skyworks,en-channels = <0x3f>;
> > +   skyworks,ignore-pwm;
> > +   skyworks,phase-shift;
> > +   skyworks,ovp-level = <20>;
> > +   skyworks,current-limit = <2300>;
> > +   };
> > --
> > 1.9.1
> >
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v10 4/6] devicetree: Add new SKY81452 backlight binding

2015-01-26 Thread Gyungoh Yoo
On Fri, Jan 23, 2015 at 03:28:33PM +0900, gyun...@gmail.com wrote:
> From: Gyungoh Yoo 
> 
> Signed-off-by: Gyungoh Yoo 
> Acked-by: Bryan Wu 

The existing Ack is only for backlight driver.

DT Ack please.

> ---
> Changes v10:
> Nothing
> 
> Changes v9:
> Nothing
> 
> Changes v8:
> Renamed property names for backlight with vendor prefix
> Modified gpio-enable property to generic property for GPIO
> Made up the example for backlight DT
> 
> Changes v7:
> Nothing
> 
> Changes v6:
> Nothing
> 
> Changes v5:
> Nothing
> 
> Changes v4:
> Nothing
> 
> Changes v3:
> Nothing
> 
> Changes v2:
> Added reg attribute for I2C slave address
> 
>  .../video/backlight/sky81452-backlight.txt | 29 
> ++
>  1 file changed, 29 insertions(+)
>  create mode 100644 
> Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> 
> diff --git 
> a/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt 
> b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> new file mode 100644
> index 000..8daebf5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> @@ -0,0 +1,29 @@
> +SKY81452-backlight bindings
> +
> +Required properties:
> +- compatible : Must be "skyworks,sky81452-backlight"
> +
> +Optional properties:
> +- name   : Name of backlight device. Default is 
> 'lcd-backlight'.
> +- gpios  : GPIO to use to EN pin.
> + See Documentation/devicetree/bindings/gpio/gpio.txt
> +- skyworks,en-channels   : Enable mask for current sink channel 1 to 6.
> +- skyworks,ignore-pwm: Ignore both PWM input
> +- skyworks,dpwm-mode : Enable DPWM dimming mode, otherwise Analog dimming.
> +- skyworks,phase-shift   : Enable phase shift mode
> +- skyworks,ovp-level : Over-voltage protection level.
> + Should be between 14 or 28V.
> +- skyworks,short-detection-threshold : It should be one of 4, 5, 6 and 7V.
> +- skyworks,current-limit : It should be 2300mA or 2750mA.
> +
> +Example:
> +
> + backlight {
> + compatible = "skyworks,sky81452-backlight";
> + name = "pwm-backlight";
> + skyworks,en-channels = <0x3f>;
> + skyworks,ignore-pwm;
> + skyworks,phase-shift;
> + skyworks,ovp-level = <20>;
> + skyworks,current-limit = <2300>;
> + };
> -- 
> 1.9.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v10 0/6] Add Skyworks SKY81452 device drivers

2015-01-18 Thread Gyungoh Yoo
On Sun, Jan 18, 2015 at 05:40:37PM +, Lee Jones wrote:
> > From: Gyungoh Yoo 
> > 
> > This patch set includes regulator and backlight driver for SKY81452.
> > Also it includes documents for device tree and module.
> > sky81452-regulator was already applied. So this series doesn't
> > include it.
> 
> Tell us what you need?  What's missing?

I need DT's Ack for 3/6 and 4/6.

Thanks.

> 
> > v10:
> > Removed trivial get_brightness implementations for sky81452-backlight
> > 
> > v9:
> > Removed the change to remove MODULE_VERSION() for sky81452-regulator
> > 
> > v8:
> > Renamed property names for backlight with vendor prefix
> > Modified gpio-enable property to generic property for GPIO
> > Made up the example for backlight DT
> > Changed the DT parsing of regulator using regulator_node and of_match
> > 
> > v7:
> > Modified licensing text to GPLv2
> > Splitted Kconfig renaming from DT patch
> > 
> > v6:
> > Added new line character at the end of line of dev_err()
> > 
> > v5:
> > Changed DT for regulator : 'lout' node should be defined under 'regulator'
> > Removed compatible string from sky81452-regulator driver
> > Modified sky81452-regulator to return EINVAL when of_node is NULL
> > Move sky81452-backlight.h to include/linux/platform_data
> > 
> > v4:
> > Removed MODULE_VERSION()
> > Modified license to GPLv2
> > Removed calling to backlight_device_unregister() in sky81452-backlight
> > 
> > v3:
> > Cleaned-up DBG messages
> > Cleaned-up DT
> > Fixed the backlight name from 'sky81452-bl' to 'sky81452-backlight'
> > Assigned mfd_cell.of_compatible for binding device node
> > Modified error messages
> > Modified sky81452-regulator to return ENODATA when of_node is NULL
> > 
> > v2:
> > Split the patches for each sub-system
> > Added 'reg' attribute for I2C address in device tree documents
> > Added 'compatible' attribute in child drivers
> > Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
> > Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
> > Added message for exception or errors.
> > Added vendor prefix for Skyworks Solutions, Inc.
> > Add SKY81452 to the Trivial Devices list
> > 
> > Gyungoh Yoo (6):
> >   mfd: Add support for Skyworks SKY81452 driver
> >   backlight: Add support Skyworks SKY81452 backlight driver
> >   devicetree: mfd: Add new SKY81452 mfd binding
> >   devicetree: backlight: Add new SKY81452 backlight binding
> >   devicetree: Add vendor prefix for Skyworks Solutions, Inc.
> >   devicetree: i2c: Add SKY81452 to the Trivial Devices list
> > 
> >  .../devicetree/bindings/i2c/trivial-devices.txt|   1 +
> >  Documentation/devicetree/bindings/mfd/sky81452.txt |  36 +++
> >  .../devicetree/bindings/vendor-prefixes.txt|   1 +
> >  .../video/backlight/sky81452-backlight.txt |  29 ++
> >  drivers/mfd/Kconfig|  12 +
> >  drivers/mfd/Makefile   |   1 +
> >  drivers/mfd/sky81452.c | 108 +++
> >  drivers/video/backlight/Kconfig|  10 +
> >  drivers/video/backlight/Makefile   |   1 +
> >  drivers/video/backlight/sky81452-backlight.c   | 334 
> > +
> >  include/linux/mfd/sky81452.h   |  31 ++
> >  include/linux/platform_data/sky81452-backlight.h   |  46 +++
> >  12 files changed, 610 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
> >  create mode 100644 
> > Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> >  create mode 100644 drivers/mfd/sky81452.c
> >  create mode 100644 drivers/video/backlight/sky81452-backlight.c
> >  create mode 100644 include/linux/mfd/sky81452.h
> >  create mode 100644 include/linux/platform_data/sky81452-backlight.h
> > 
> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v10 4/6] devicetree: backlight: Add new SKY81452 backlight binding

2015-01-08 Thread Gyungoh Yoo
DT Ack please.

On Wed, Jan 07, 2015 at 11:19:25AM +0900, gyun...@gmail.com wrote:
> From: Gyungoh Yoo 
> 
> Signed-off-by: Gyungoh Yoo 
> Acked-by: Bryan Wu 
> ---
> Changes v10:
> Nothing
> 
> Changes v9:
> Nothing
> 
> Changes v8:
> Renamed property names for backlight with vendor prefix
> Modified gpio-enable property to generic property for GPIO
> Made up the example for backlight DT
> 
> Changes v7:
> Nothing
> 
> Changes v6:
> Nothing
> 
> Changes v5:
> Nothing
> 
> Changes v4:
> Nothing
> 
> Changes v3:
> Nothing
> 
> Changes v2:
> Added reg attribute for I2C slave address
> 
>  .../video/backlight/sky81452-backlight.txt | 29 
> ++
>  1 file changed, 29 insertions(+)
>  create mode 100644 
> Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> 
> diff --git 
> a/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt 
> b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> new file mode 100644
> index 000..8daebf5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> @@ -0,0 +1,29 @@
> +SKY81452-backlight bindings
> +
> +Required properties:
> +- compatible : Must be "skyworks,sky81452-backlight"
> +
> +Optional properties:
> +- name   : Name of backlight device. Default is 
> 'lcd-backlight'.
> +- gpios  : GPIO to use to EN pin.
> + See Documentation/devicetree/bindings/gpio/gpio.txt
> +- skyworks,en-channels   : Enable mask for current sink channel 1 to 6.
> +- skyworks,ignore-pwm: Ignore both PWM input
> +- skyworks,dpwm-mode : Enable DPWM dimming mode, otherwise Analog dimming.
> +- skyworks,phase-shift   : Enable phase shift mode
> +- skyworks,ovp-level : Over-voltage protection level.
> + Should be between 14 or 28V.
> +- skyworks,short-detection-threshold : It should be one of 4, 5, 6 and 7V.
> +- skyworks,current-limit : It should be 2300mA or 2750mA.
> +
> +Example:
> +
> + backlight {
> + compatible = "skyworks,sky81452-backlight";
> + name = "pwm-backlight";
> + skyworks,en-channels = <0x3f>;
> + skyworks,ignore-pwm;
> + skyworks,phase-shift;
> + skyworks,ovp-level = <20>;
> + skyworks,current-limit = <2300>;
> + };
> -- 
> 1.9.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v10 3/6] devicetree: mfd: Add new SKY81452 mfd binding

2015-01-08 Thread Gyungoh Yoo
DT Ack please.

On Wed, Jan 07, 2015 at 11:19:24AM +0900, gyun...@gmail.com wrote:
> From: Gyungoh Yoo 
> 
> Signed-off-by: Gyungoh Yoo 
> Acked-by: Lee Jones 
> ---
> Changes v10:
> Nothing
> 
> Changes v9:
> Nothing
> 
> Changes v8:
> Made up the example for backlight DT
> 
> Changes v7:
> Nothing
> 
> Changes v6:
> Nothing
> 
> Changes v5:
> Changed DT for regulator : 'lout' node should be defined under 'regulator'
> Removed compatible string from sky81452-regulator driver
> 
> Changes v4:
> Nothing
> 
> Changes v3:
> Nothing
> 
> Changes v2:
> Added reg attribute for I2C slave address
> 
>  Documentation/devicetree/bindings/mfd/sky81452.txt | 36 
> ++
>  1 file changed, 36 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
> 
> diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
> b/Documentation/devicetree/bindings/mfd/sky81452.txt
> new file mode 100644
> index 000..ab71473
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
> @@ -0,0 +1,36 @@
> +SKY81452 bindings
> +
> +Required properties:
> +- compatible : Must be "skyworks,sky81452"
> +- reg: I2C slave address
> +
> +Required child nodes:
> +- backlight  : container node for backlight following the binding
> + in video/backlight/sky81452-backlight.txt
> +- regulator  : container node for regulators following the binding
> + in regulator/sky81452-regulator.txt
> +
> +Example:
> +
> + sky81452@2c {
> + compatible = "skyworks,sky81452";
> + reg = <0x2c>;
> +
> + backlight {
> + compatible = "skyworks,sky81452-backlight";
> + name = "pwm-backlight";
> + skyworks,en-channels = <0x3f>;
> + skyworks,ignore-pwm;
> + skyworks,phase-shift;
> + skyworks,ovp-level = <20>;
> + skyworks,current-limit = <2300>;
> + };
> +
> + regulator {
> + lout {
> + regulator-name = "sky81452-lout";
> + regulator-min-microvolt = <450>;
> + regulator-max-microvolt = <800>;
> + };
> + };
> + };
> -- 
> 1.9.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v10 2/6] backlight: Add support Skyworks SKY81452 backlight driver

2014-12-17 Thread Gyungoh Yoo
On Thu, Dec 18, 2014 at 03:09:21PM +0900, Jingoo Han wrote:
> On Thursday, December 18, 2014 2:48 PM, Gyungoh Yoo wrote:
> > 
> > From: Gyungoh Yoo 
> > 
> > Signed-off-by: Gyungoh Yoo 
> 
> Please add the following 'Acked-by's when you send this patch
> next time.
> 
> Acked-by: Jingoo Han 
> Acked-by: Bryan Wu 

I see.
Thank you.

> 
> Best regards,
> Jingoo Han
> 
> > ---
> > Changes v10:
> > Removed trivial get_brightness implementations
> > 
> > Changes v9:
> > Nothing
> > 
> > Changes v8:
> > Renamed property names for backlight with vendor prefix
> > Modified gpio-enable property to generic property for GPIO
> > 
> > Changes v7:
> > Modified licensing text to GPLv2
> > 
> > Changes v6:
> > Added new line character at the end of line of dev_err()
> > 
> > Changes v5:
> > Move sky81452-backlight.h to include/linux/platform_data
> > 
> > Changes v4:
> > Reordering header files for readability
> > Removed calling to backlight_device_unregister()
> > Removed MODULE_VERSION()
> > Modified license to GPLv2
> > 
> > Changes v3:
> > Modified DBG messages
> > 
> > Changes v2:
> > Added 'compatible' attribute in the driver
> > Added message for exception or errors
> > 
> >  drivers/video/backlight/Kconfig  |  10 +
> >  drivers/video/backlight/Makefile |   1 +
> >  drivers/video/backlight/sky81452-backlight.c | 334 
> > +++
> >  include/linux/platform_data/sky81452-backlight.h |  46 
> >  4 files changed, 391 insertions(+)
> >  create mode 100644 drivers/video/backlight/sky81452-backlight.c
> >  create mode 100644 include/linux/platform_data/sky81452-backlight.h
> > 
> > diff --git a/drivers/video/backlight/Kconfig 
> > b/drivers/video/backlight/Kconfig
> > index 8d03924..2586fdd 100644
> > --- a/drivers/video/backlight/Kconfig
> > +++ b/drivers/video/backlight/Kconfig
> > @@ -409,6 +409,16 @@ config BACKLIGHT_PANDORA
> >   If you have a Pandora console, say Y to enable the
> >   backlight driver.
> > 
> > +config BACKLIGHT_SKY81452
> > +   tristate "Backlight driver for SKY81452"
> > +   depends on BACKLIGHT_CLASS_DEVICE && MFD_SKY81452
> > +   help
> > + If you have a Skyworks SKY81452, say Y to enable the
> > + backlight driver.
> > +
> > + To compile this driver as a module, choose M here: the module will
> > + be called sky81452-backlight
> > +
> >  config BACKLIGHT_TPS65217
> > tristate "TPS65217 Backlight"
> > depends on BACKLIGHT_CLASS_DEVICE && MFD_TPS65217
> > diff --git a/drivers/video/backlight/Makefile 
> > b/drivers/video/backlight/Makefile
> > index fcd50b73..d67073f 100644
> > --- a/drivers/video/backlight/Makefile
> > +++ b/drivers/video/backlight/Makefile
> > @@ -50,6 +50,7 @@ obj-$(CONFIG_BACKLIGHT_PANDORA)   += pandora_bl.o
> >  obj-$(CONFIG_BACKLIGHT_PCF50633)   += pcf50633-backlight.o
> >  obj-$(CONFIG_BACKLIGHT_PWM)+= pwm_bl.o
> >  obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
> > +obj-$(CONFIG_BACKLIGHT_SKY81452)   += sky81452-backlight.o
> >  obj-$(CONFIG_BACKLIGHT_TOSA)   += tosa_bl.o
> >  obj-$(CONFIG_BACKLIGHT_TPS65217)   += tps65217_bl.o
> >  obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
> > diff --git a/drivers/video/backlight/sky81452-backlight.c 
> > b/drivers/video/backlight/sky81452-
> > backlight.c
> > new file mode 100644
> > index 000..8105597
> > --- /dev/null
> > +++ b/drivers/video/backlight/sky81452-backlight.c
> > @@ -0,0 +1,334 @@
> > +/*
> > + * sky81452-backlight.cSKY81452 backlight driver
> > + *
> > + * Copyright 2014 Skyworks Solutions Inc.
> > + * Author : Gyungoh Yoo 
> > + *
> > + * This program is free software; you can redistribute it and/or modify it
> > + * under the terms of the GNU General Public License version 2
> > + * as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful, but
> > + * WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > + * General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License along
> > + * with this program; if not, see <http://www.gnu.org/l

Re: [PATCH v10 2/6] backlight: Add support Skyworks SKY81452 backlight driver

2014-12-03 Thread Gyungoh Yoo
On Wed, Dec 03, 2014 at 11:02:29AM +0100, Oliver Neukum wrote:
> On Wed, 2014-12-03 at 16:05 +0900, gyun...@gmail.com wrote:
> > +static ssize_t sky81452_bl_store_enable(struct device *dev,
> > +   struct device_attribute *attr, const char *buf, size_t
> > count)
> > +{
> > +   struct regmap *regmap = bl_get_data(to_backlight_device(dev));
> > +   unsigned long value;
> > +   int ret;
> > +
> > +   ret = kstrtoul(buf, 16, &value);
> > +   if (IS_ERR_VALUE(ret))
> > +   return ret;
> > +
> > +   ret = regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN,
> > +   value << CTZ(SKY81452_EN));
> 
> No range checking for value?

Avaiable range is from 0 to SKY81452_EN.
regmap_update_bits() is masking the value.

> 
> > +   if (IS_ERR_VALUE(ret))
> > +   return ret;
> > +
> > +   return count;
> > +}
> 
>   Regards
>   Oliver
> 
> -- 
> Oliver Neukum 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v9 3/8] devicetree: mfd: Add new SKY81452 mfd binding

2014-12-02 Thread Gyungoh Yoo
On Tue, Dec 02, 2014 at 02:07:27PM +, Lee Jones wrote:
> This requires a DT Ack.

I think I need to double-check the recipients.
Thank you for the comment.

> 
> > From: Gyungoh Yoo 
> > 
> > Signed-off-by: Gyungoh Yoo 
> > ---
> > Changes v9:
> > Nothing
> > 
> > Changes v8:
> > Made up the example for backlight DT
> > 
> > Changes v7:
> > Nothing
> > 
> > Changes v6:
> > Nothing
> > 
> > Changes v5:
> > Changed DT for regulator : 'lout' node should be defined under 'regulator'
> > Removed compatible string from sky81452-regulator driver
> > 
> > Changes v4:
> > Nothing
> > 
> > Changes v3:
> > Nothing
> > 
> > Changes v2:
> > Added reg attribute for I2C slave address
> > 
> >  Documentation/devicetree/bindings/mfd/sky81452.txt | 36 
> > ++
> >  1 file changed, 36 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
> > b/Documentation/devicetree/bindings/mfd/sky81452.txt
> > new file mode 100644
> > index 000..ab71473
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
> > @@ -0,0 +1,36 @@
> > +SKY81452 bindings
> > +
> > +Required properties:
> > +- compatible   : Must be "skyworks,sky81452"
> > +- reg  : I2C slave address
> > +
> > +Required child nodes:
> > +- backlight: container node for backlight following the binding
> > +   in video/backlight/sky81452-backlight.txt
> > +- regulator: container node for regulators following the binding
> > +   in regulator/sky81452-regulator.txt
> > +
> > +Example:
> > +
> > +   sky81452@2c {
> > +   compatible = "skyworks,sky81452";
> > +   reg = <0x2c>;
> > +
> > +   backlight {
> > +   compatible = "skyworks,sky81452-backlight";
> > +   name = "pwm-backlight";
> > +   skyworks,en-channels = <0x3f>;
> > +   skyworks,ignore-pwm;
> > +   skyworks,phase-shift;
> > +   skyworks,ovp-level = <20>;
> > +   skyworks,current-limit = <2300>;
> > +   };
> > +
> > +   regulator {
> > +   lout {
> > +   regulator-name = "sky81452-lout";
> > +   regulator-min-microvolt = <450>;
> > +   regulator-max-microvolt = <800>;
> > +   };
> > +   };
> > +   };
> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v9 2/8] backlight: Add support Skyworks SKY81452 backlight driver

2014-12-02 Thread Gyungoh Yoo
On Wed, Dec 03, 2014 at 11:19:06AM +0900, Jingoo Han wrote:
> On Tuesday, December 02, 2014 5:05 PM, Gyungoh Yoo wrote:
> > 
> > From: Gyungoh Yoo 
> > 
> > Signed-off-by: Gyungoh Yoo 
> > ---
> > Changes v9:
> > Nothing
> > 
> > Changes v8:
> > Renamed property names for backlight with vendor prefix
> > Modified gpio-enable property to generic property for GPIO
> > 
> > Changes v7:
> > Modified licensing text to GPLv2
> > 
> > Changes v6:
> > Added new line character at the end of line of dev_err()
> > 
> > Changes v5:
> > Move sky81452-backlight.h to include/linux/platform_data
> > 
> > Changes v4:
> > Reordering header files for readability
> > Removed calling to backlight_device_unregister()
> > Removed MODULE_VERSION()
> > Modified license to GPLv2
> > 
> > Changes v3:
> > Modified DBG messages
> > 
> > Changes v2:
> > Added 'compatible' attribute in the driver
> > Added message for exception or errors
> > 
> >  drivers/video/backlight/Kconfig  |  10 +
> >  drivers/video/backlight/Makefile |   1 +
> >  drivers/video/backlight/sky81452-backlight.c | 340 
> > +++
> >  include/linux/platform_data/sky81452-backlight.h |  46 +++
> >  4 files changed, 397 insertions(+)
> >  create mode 100644 drivers/video/backlight/sky81452-backlight.c
> >  create mode 100644 include/linux/platform_data/sky81452-backlight.h
> > 
> > diff --git a/drivers/video/backlight/Kconfig 
> > b/drivers/video/backlight/Kconfig
> > index 8d03924..2586fdd 100644
> > --- a/drivers/video/backlight/Kconfig
> > +++ b/drivers/video/backlight/Kconfig
> > @@ -409,6 +409,16 @@ config BACKLIGHT_PANDORA
> >   If you have a Pandora console, say Y to enable the
> >   backlight driver.
> > 
> > +config BACKLIGHT_SKY81452
> > +   tristate "Backlight driver for SKY81452"
> > +   depends on BACKLIGHT_CLASS_DEVICE && MFD_SKY81452
> > +   help
> > + If you have a Skyworks SKY81452, say Y to enable the
> > + backlight driver.
> > +
> > + To compile this driver as a module, choose M here: the module will
> > + be called sky81452-backlight
> > +
> >  config BACKLIGHT_TPS65217
> > tristate "TPS65217 Backlight"
> > depends on BACKLIGHT_CLASS_DEVICE && MFD_TPS65217
> > diff --git a/drivers/video/backlight/Makefile 
> > b/drivers/video/backlight/Makefile
> > index fcd50b73..d67073f 100644
> > --- a/drivers/video/backlight/Makefile
> > +++ b/drivers/video/backlight/Makefile
> > @@ -50,6 +50,7 @@ obj-$(CONFIG_BACKLIGHT_PANDORA)   += pandora_bl.o
> >  obj-$(CONFIG_BACKLIGHT_PCF50633)   += pcf50633-backlight.o
> >  obj-$(CONFIG_BACKLIGHT_PWM)+= pwm_bl.o
> >  obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
> > +obj-$(CONFIG_BACKLIGHT_SKY81452)   += sky81452-backlight.o
> >  obj-$(CONFIG_BACKLIGHT_TOSA)   += tosa_bl.o
> >  obj-$(CONFIG_BACKLIGHT_TPS65217)   += tps65217_bl.o
> >  obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
> > diff --git a/drivers/video/backlight/sky81452-backlight.c 
> > b/drivers/video/backlight/sky81452-
> > backlight.c
> > new file mode 100644
> > index 000..45e575f
> > --- /dev/null
> > +++ b/drivers/video/backlight/sky81452-backlight.c
> > @@ -0,0 +1,340 @@
> > +/*
> > + * sky81452-backlight.cSKY81452 backlight driver
> > + *
> > + * Copyright 2014 Skyworks Solutions Inc.
> > + * Author : Gyungoh Yoo 
> > + *
> > + * This program is free software; you can redistribute it and/or modify it
> > + * under the terms of the GNU General Public License version 2
> > + * as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful, but
> > + * WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > + * General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License along
> > + * with this program; if not, see <http://www.gnu.org/licenses/>.
> > + */
> > +
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +
> > +/*

Re: [PATCH v8 7/8] regulator: sky81452: Modify Device Tree structure

2014-12-01 Thread Gyungoh Yoo
On Wed, Nov 26, 2014 at 04:37:02PM +, Mark Brown wrote:
> On Wed, Nov 26, 2014 at 10:40:07AM +0900, Gyungoh Yoo wrote:
> > On Tue, Nov 25, 2014 at 12:19:16PM +, Mark Brown wrote:
> > > On Tue, Nov 25, 2014 at 04:03:05PM +0900, gyun...@gmail.com wrote:
> > > > From: Gyungoh Yoo 
> 
> > > This doesn't apply, please check and resend.
> 
> > Could you please explain why this doesn't?
> 
> When I tried to apply it to my topic/sky81452 branch git am barfed on
> it, presumably because the code you based it on is different to that
> branch.

I checked it and I will resend it.
Thank you.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 7/8] regulator: sky81452: Modify Device Tree structure

2014-11-25 Thread Gyungoh Yoo
On Tue, Nov 25, 2014 at 12:19:16PM +, Mark Brown wrote:
> On Tue, Nov 25, 2014 at 04:03:05PM +0900, gyun...@gmail.com wrote:
> > From: Gyungoh Yoo 
> 
> This doesn't apply, please check and resend.

Could you please explain why this doesn't?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v7 4/9] devicetree: backlight: Add new SKY81452 backlight binding

2014-11-24 Thread Gyungoh Yoo
On Mon, Nov 17, 2014 at 12:23:33PM +, Lee Jones wrote:
> On Mon, 17 Nov 2014, gyun...@gmail.com wrote:
> 
> > From: Gyungoh Yoo 
> > 
> > Signed-off-by: Gyungoh Yoo 
> > ---
> > Changes v7:
> > Nothing
> > 
> > Changes v6:
> > Nothing
> > 
> > Changes v5:
> > Nothing
> > 
> > Changes v4:
> > Nothing
> > 
> > Changes v3:
> > Nothing
> > 
> > Changes v2:
> > Added reg attribute for I2C slave address
> > 
> >  .../video/backlight/sky81452-backlight.txt | 24 
> > ++
> >  1 file changed, 24 insertions(+)
> >  create mode 100644 
> > Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> > 
> > diff --git 
> > a/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt 
> > b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> > new file mode 100644
> > index 000..2c2d947
> > --- /dev/null
> > +++ 
> > b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> > @@ -0,0 +1,24 @@
> > +SKY81452-backlight bindings
> > +
> > +Required properties:
> > +- compatible   : Must be "skyworks,sky81452-backlight"
> > +
> > +Optional properties:
> > +- name : Name of backlight device. Default is 
> > 'lcd-backlight'.
> > +- gpio-enable  : GPIO to use to EN pin.
> > +- enable   : Enable mask for current sink channel 1 to 6.
> > +- ignore-pwm   : Ignore both PWM input
> > +- dpwm-mode: Enable DPWM dimming mode, otherwise Analog 
> > dimming mode
> > +- phase-shift  : Enable phase shift mode
> > +- ovp-level: Over-voltage protection level. Should be 
> > between 14 or 28V.
> > +- short-detection-threshold: It should be one of 4, 5, 6 and 7V.
> > +- boost-current-limit  : It should be one of 800, 1100 and 1500mA.
> 
> These are going to need some serious reviewing from the DT guys.  Each
> property should either have a vendor prefix or be made generic and
> placed in the generic DT documentation for the subsystem.  The name
> 'enable' is far to generic we don't tend to put masks in DT.  There
> is already a generic property for GPIO enable pins.

I see. I will rename the properties with the vendor prefix
and modify the name for GPIO enable pin to use 'gpios'

> 
> > +Example:
> > +
> > +   backlight {
> > +   compatible = "skyworks,sky81452-backlight";
> > +   name = "pwm-backlight";
> > +   enable = <0x3F>;
> 
> Lower case.
> 
> > +   ignore-pwm;
> 
> You should probably demonstrate more of your properties here.

I will make up the example.
Thank you for your comments.

> 
> > +   };
> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v7 7/9] regulator: sky81452: Modify Device Tree structure

2014-11-18 Thread Gyungoh Yoo
On Tue, Nov 18, 2014 at 11:20:56AM +, Mark Brown wrote:
> On Tue, Nov 18, 2014 at 05:04:51PM +0900, Gyungoh Yoo wrote:
> > On Mon, Nov 17, 2014 at 02:18:36PM +, Mark Brown wrote:
> 
> > > Don't open code this, use regulators_node and of_match as previously
> > > advised.
> 
> > I think I had a misunderstanding.
> > But I have no idea about regulators_node and of_match.
> > Could you let me know more about them?
> 
> They are fields in regulator_desc, there are documentation and examples
> in current mainline - take a look at that and ask questions if it is
> unclear.

Okay. Thank you.
If of_match and regulators_node are assigned, don't I need to
call of_regulator_match()? Does regulator_register() call it internally?
So can I write code like below?

static const struct regulator_desc sky81452_reg = {
.name = "LOUT",
.of_match = of_match_ptr("lout"),
.regulators_node = of_match_ptr("regulator"),
.ops = &sky81452_reg_ops,
...
};

static int sky81452_reg_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
const struct regulator_init_data *init_data = dev_get_platdata(dev);
struct regulator_config config = { };
struct regulator_dev *rdev;

config.dev = dev->parent;
config.init_data = init_data;
config.of_node = dev->of_node;
config.regmap = dev_get_drvdata(dev->parent);

rdev = devm_regulator_register(dev, &sky81452_reg, &config);
if (IS_ERR(rdev)) {
dev_err(dev, "failed to register. err=%ld\n", PTR_ERR(rdev));
return PTR_ERR(rdev);
}

platform_set_drvdata(pdev, rdev);

return 0;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v7 7/9] regulator: sky81452: Modify Device Tree structure

2014-11-18 Thread Gyungoh Yoo
On Mon, Nov 17, 2014 at 02:18:36PM +, Mark Brown wrote:
> On Mon, Nov 17, 2014 at 05:33:08PM +0900, gyun...@gmail.com wrote:
> 
> > np = of_get_child_by_name(dev->parent->of_node, "regulator");
> 
> > +   ret = of_regulator_match(dev, np, &sky81452_match, 1);
> 
> Don't open code this, use regulators_node and of_match as previously
> advised.

I think I had a misunderstanding.
But I have no idea about regulators_node and of_match.
Could you let me know more about them?

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v6 0/8] Add Skyworks SKY81452 device drivers

2014-11-13 Thread Gyungoh Yoo
On Tue, Nov 11, 2014 at 11:10:37AM +, Lee Jones wrote:
> Gyungoh,
> 
> You are still missing Acks for this set.  Can you please send it again
> with the Acks that you have collected thus far.
> 
> Please do not send it in reply-to these others.  I would suggest never
> sending out the set again in reply-to a previous version, as things
> get confusing real quick.

I see. I didn't know that reply-to makes a confusing.
I will resubmit the patch series.

Thank you

> 
> > From: Gyungoh Yoo 
> > 
> > This patch set includes regulator and backlight driver for SKY81452.
> > Also it includes documents for device tree and module.
> > The initial version of sky81452-regulator was applied. Fo this, incremental
> > patches are included.
> > 
> > v6:
> > Added new line character at the end of line of dev_err()
> > 
> > v5:
> > Changed DT for regulator : 'lout' node should be defined under 'regulator'
> > Removed compatible string from sky81452-regulator driver
> > Modified sky81452-regulator to return EINVAL when of_node is NULL
> > Move sky81452-backlight.h to include/linux/platform_data
> > 
> > v4:
> > Removed MODULE_VERSION()
> > Modified license to GPLv2
> > Removed calling to backlight_device_unregister() in sky81452-backlight
> > 
> > v3:
> > Cleaned-up DBG messages
> > Cleaned-up DT
> > Fixed the backlight name from 'sky81452-bl' to 'sky81452-backlight'
> > Assigned mfd_cell.of_compatible for binding device node
> > Modified error messages
> > Modified sky81452-regulator to return ENODATA when of_node is NULL
> > 
> > v2:
> > Split the patches for each sub-system
> > Added 'reg' attribute for I2C address in device tree documents
> > Added 'compatible' attribute in child drivers
> > Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
> > Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
> > Added message for exception or errors.
> > Added vendor prefix for Skyworks Solutions, Inc.
> > Add SKY81452 to the Trivial Devices list
> > 
> > Gyungoh Yoo (8):
> >   mfd: Add support for Skyworks SKY81452 driver
> >   backlight: Add support Skyworks SKY81452 backlight driver
> >   devicetree: mfd: Add new SKY81452 mfd binding
> >   devicetree: backlight: Add new SKY81452 backlight binding
> >   devicetree: Add vendor prefix for Skyworks Solutions, Inc.
> >   devicetree: i2c: Add SKY81452 to the Trivial Devices list
> >   regulator: sky81452: Add compatible string for device binding
> >   devicetree: regulator: sky81452: Add compatible string for device
> > binding
> > 
> >  .../devicetree/bindings/i2c/trivial-devices.txt|   1 +
> >  Documentation/devicetree/bindings/mfd/sky81452.txt |  33 ++
> >  .../bindings/regulator/sky81452-regulator.txt  |  10 +-
> >  .../devicetree/bindings/vendor-prefixes.txt|   1 +
> >  .../video/backlight/sky81452-backlight.txt |  24 ++
> >  drivers/mfd/Kconfig|  12 +
> >  drivers/mfd/Makefile   |   1 +
> >  drivers/mfd/sky81452.c | 109 +++
> >  drivers/regulator/Kconfig  |   2 +-
> >  drivers/regulator/sky81452-regulator.c |  29 +-
> >  drivers/video/backlight/Kconfig|  10 +
> >  drivers/video/backlight/Makefile   |   1 +
> >  drivers/video/backlight/sky81452-backlight.c   | 345 
> > +
> >  include/linux/mfd/sky81452.h   |  32 ++
> >  include/linux/platform_data/sky81452-backlight.h   |  47 +++
> >  15 files changed, 642 insertions(+), 15 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
> >  create mode 100644 
> > Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> >  create mode 100644 drivers/mfd/sky81452.c
> >  create mode 100644 drivers/video/backlight/sky81452-backlight.c
> >  create mode 100644 include/linux/mfd/sky81452.h
> >  create mode 100644 include/linux/platform_data/sky81452-backlight.h
> > 
> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v6 7/8] regulator: sky81452: Add compatible string for device binding

2014-11-05 Thread Gyungoh Yoo
On Mon, Nov 03, 2014 at 10:45:39PM +0100, Paul Bolle wrote:
> On Fri, 2014-10-31 at 16:44 +, Mark Brown wrote:
> > On Fri, Oct 31, 2014 at 04:08:41PM +0900, gyun...@gmail.com wrote:
> > > From: Gyungoh Yoo 
> > > 
> > > Signed-off-by: Gyungoh Yoo 
> > 
> > This doesn't apply against current code and depends on the MFD symbol
> > rename - can you please check what's going on here?
> > 
> > It would make sense to split the Kconfig symbol rename into a separate
> > patch to ease merging,
> 
> The relicensing (from GPL to GPL v2, thus dropping the "or later"
> provision) is odd too. The header still uses GPL v2 or later, doesn't
> it? Anyhow, that could be a separate patch too.

I will modify the licensing text and resubmit it.
Thank you for your comment.

> 
> > it doesn't seem obviously related to the driver
> > change and should probably be in the same patch as the MFD symbol rename
> > for bisetion.
> 
> I don't think there will be bisection problems (in mainline). Currently
> this driver depends on SKY81452. But that symbol doesn't exist. Only
> after both 1/8 and this patch will this driver become buildable, for the
> first time. So it's not that this driver was buildable, became
> unbuildable in 1/8 and buildable again in this patch.
> 
> (I don't think it's much of a problem that the regulator driver got
> merged, in v3.18-rc1, before the mfd driver on which it depends.
> Avoiding that temporarily problem appears to be more trouble than it's
> worth.)
> 
> 
> Paul Bolle
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v6 7/8] regulator: sky81452: Add compatible string for device binding

2014-11-05 Thread Gyungoh Yoo
On Tue, Nov 04, 2014 at 11:41:20AM +, Mark Brown wrote:
> On Tue, Nov 04, 2014 at 02:45:34PM +0900, Gyungoh Yoo wrote:
> > On Tue, Nov 04, 2014 at 12:53:29AM +, Mark Brown wrote:
> 
> > > I'm having a hard time understanding why it is difficult to split the
> > > two changes - they are in completely separate files.
> 
> > I am sorry for the hard time.
> 
> > That was because the symbol changes had a dependency with 1/8.
> > In this case, Should Kconfig symbol change back from MFD_SKY81452
> > to SKY81452 in this patch series? And then should I submit to change to 
> > MFD_SKY81452
> > with seperate patch?
> 
> No, what I'm saying is that if you want to rename the Kconfig symbol you
> should do that as part of a separate patch to changing the DT stuff.

I see.
I will split this patch. One is for DT stuff and the other is for Kconfig
symbol rename.
Thank you for your comment.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v6 7/8] regulator: sky81452: Add compatible string for device binding

2014-11-03 Thread Gyungoh Yoo
On Tue, Nov 04, 2014 at 12:53:29AM +, Mark Brown wrote:
> On Tue, Nov 04, 2014 at 09:43:34AM +0900, Gyungoh Yoo wrote:
> > On Fri, Oct 31, 2014 at 04:44:18PM +, Mark Brown wrote:
> 
> > > This doesn't apply against current code and depends on the MFD symbol
> > > rename - can you please check what's going on here?
> 
> > Are you talking about 'sky81452-regulator'?
> > I am sorry I don't understand. Can you explain in more detail?
> 
> No, I mean the Kconfig change.
> 
> > > It would make sense to split the Kconfig symbol rename into a separate
> > > patch to ease merging, it doesn't seem obviously related to the driver
> > > change and should probably be in the same patch as the MFD symbol rename
> > > for bisetion.
> 
> > becuase the symbol in the modfied MFD does not match with the
> > merged regulator driver, it was hard to split the patch.
> 
> I'm having a hard time understanding why it is difficult to split the
> two changes - they are in completely separate files.

I am sorry for the hard time.

That was because the symbol changes had a dependency with 1/8.
In this case, Should Kconfig symbol change back from MFD_SKY81452
to SKY81452 in this patch series? And then should I submit to change to 
MFD_SKY81452
with seperate patch?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v6 7/8] regulator: sky81452: Add compatible string for device binding

2014-11-03 Thread Gyungoh Yoo
On Fri, Oct 31, 2014 at 04:44:18PM +, Mark Brown wrote:
> On Fri, Oct 31, 2014 at 04:08:41PM +0900, gyun...@gmail.com wrote:
> > From: Gyungoh Yoo 
> > 
> > Signed-off-by: Gyungoh Yoo 
> 
> This doesn't apply against current code and depends on the MFD symbol
> rename - can you please check what's going on here?

Are you talking about 'sky81452-regulator'?
I am sorry I don't understand. Can you explain in more detail?

> 
> It would make sense to split the Kconfig symbol rename into a separate
> patch to ease merging, it doesn't seem obviously related to the driver
> change and should probably be in the same patch as the MFD symbol rename
> for bisetion.

becuase the symbol in the modfied MFD does not match with the
merged regulator driver, it was hard to split the patch.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v5 2/8] backlight: Add support Skyworks SKY81452 backlight driver

2014-10-27 Thread Gyungoh Yoo
On Mon, Oct 27, 2014 at 12:35:36PM +0530, Varka Bhadram wrote:
> On 10/27/2014 12:32 PM, gyun...@gmail.com wrote:
> >From: Gyungoh Yoo 
> >
> >Signed-off-by: Gyungoh Yoo 
> >---
> >Changes v5:
> >Move sky81452-backlight.h to include/linux/platform_data
> >
> >Changes v4:
> >Reordering header files for readability
> >Removed calling to backlight_device_unregister()
> >Removed MODULE_VERSION()
> >Modified license to GPLv2
> >
> >Changes v3:
> >Modified DBG messages
> >
> >Changes v2:
> >Added 'compatible' attribute in the driver
> >Added message for exception or errors
> >
> >  drivers/video/backlight/Kconfig  |  10 +
> >  drivers/video/backlight/Makefile |   1 +
> >  drivers/video/backlight/sky81452-backlight.c | 344 
> > +++
> >  include/linux/platform_data/sky81452-backlight.h |  47 
> >  4 files changed, 402 insertions(+)
> >  create mode 100644 drivers/video/backlight/sky81452-backlight.c
> >  create mode 100644 include/linux/platform_data/sky81452-backlight.h
> >
> >diff --git a/drivers/video/backlight/Kconfig 
> >b/drivers/video/backlight/Kconfig
> >index 8d03924..2586fdd 100644
> >--- a/drivers/video/backlight/Kconfig
> >+++ b/drivers/video/backlight/Kconfig
> >@@ -409,6 +409,16 @@ config BACKLIGHT_PANDORA
> >   If you have a Pandora console, say Y to enable the
> >   backlight driver.
> >+config BACKLIGHT_SKY81452
> >+tristate "Backlight driver for SKY81452"
> >+depends on BACKLIGHT_CLASS_DEVICE && MFD_SKY81452
> >+help
> >+  If you have a Skyworks SKY81452, say Y to enable the
> >+  backlight driver.
> >+
> >+  To compile this driver as a module, choose M here: the module will
> >+  be called sky81452-backlight
> >+
> >  config BACKLIGHT_TPS65217
> > tristate "TPS65217 Backlight"
> > depends on BACKLIGHT_CLASS_DEVICE && MFD_TPS65217
> >diff --git a/drivers/video/backlight/Makefile 
> >b/drivers/video/backlight/Makefile
> >index fcd50b73..d67073f 100644
> >--- a/drivers/video/backlight/Makefile
> >+++ b/drivers/video/backlight/Makefile
> >@@ -50,6 +50,7 @@ obj-$(CONFIG_BACKLIGHT_PANDORA)+= pandora_bl.o
> >  obj-$(CONFIG_BACKLIGHT_PCF50633)   += pcf50633-backlight.o
> >  obj-$(CONFIG_BACKLIGHT_PWM)+= pwm_bl.o
> >  obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
> >+obj-$(CONFIG_BACKLIGHT_SKY81452)+= sky81452-backlight.o
> >  obj-$(CONFIG_BACKLIGHT_TOSA)   += tosa_bl.o
> >  obj-$(CONFIG_BACKLIGHT_TPS65217)   += tps65217_bl.o
> >  obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
> >diff --git a/drivers/video/backlight/sky81452-backlight.c 
> >b/drivers/video/backlight/sky81452-backlight.c
> >new file mode 100644
> >index 000..a677be6
> >--- /dev/null
> >+++ b/drivers/video/backlight/sky81452-backlight.c
> >@@ -0,0 +1,344 @@
> >+/*
> >+ * sky81452-backlight.c SKY81452 backlight driver
> >+ *
> >+ * Copyright 2014 Skyworks Solutions Inc.
> >+ * Author : Gyungoh Yoo 
> >+ *
> >+ * This program is free software; you can redistribute it and/or modify it
> >+ * under the terms of the GNU General Public License as published by the
> >+ * Free Software Foundation; either version 2, or (at your option) any
> >+ * later version.
> >+ *
> >+ * This program is distributed in the hope that it will be useful, but
> >+ * WITHOUT ANY WARRANTY; without even the implied warranty of
> >+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> >+ * General Public License for more details.
> >+ *
> >+ * You should have received a copy of the GNU General Public License along
> >+ * with this program; if not, see <http://www.gnu.org/licenses/>.
> >+ */
> >+
> >+#include 
> >+#include 
> >+#include 
> >+#include 
> >+#include 
> >+#include 
> >+#include 
> >+#include 
> >+#include 
> >+#include 
> >+#include 
> >+#include 
> >+
> >+/* registers */
> >+#define SKY81452_REG0   0x00
> >+#define SKY81452_REG1   0x01
> >+#define SKY81452_REG2   0x02
> >+#define SKY81452_REG4   0x04
> >+#define SKY81452_REG5   0x05
> >+
> >+/* bit mask */
> >+#define SKY81452_CS 0xFF
> >+#define SKY81452_EN 0x3F
> >+#define SKY81452_IGPW   0x20
> >+#define SKY81452_PWMMD  0x10
> >+#define SK

Re: [RESUBMIT PATCH v4 7/8] regulator: sky81452: Add compatible string for device binding

2014-10-24 Thread Gyungoh Yoo
On Thu, Oct 23, 2014 at 02:01:03PM +0100, Mark Brown wrote:
> On Thu, Oct 23, 2014 at 12:14:43PM +0900, Gyungoh Yoo wrote:
> 
> > So, what do you think about DT like below?
> 
> > sky81452@2c {
> > compatible = "skyworks,sky81452";
> > reg = <0x2c>;
> > 
> > backlight {
> > compatible = "skyworks,sky81452-backlight";
> > name = "pwm-backlight";
> > enable = <0x3F>;
> > ignore-pwm;
> > };
> > 
> > regulator {
> > compatible = "skyworks,sky81452-regulator";
> 
> Yes, this is good but I still feel that the above compatible is
> redundant and shouildn't be there.

I see. I will remove compatible string at the next resubmit.

> 
> > lout@0 {
> > regulator-name = "LOUT";
> > regulator-min-microvolt = <450>;
> > regulator-max-microvolt = <800>;
> > };
> > };
> > };


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v4 1/8] mfd: Add support for Skyworks SKY81452 driver

2014-10-22 Thread Gyungoh Yoo
On Tue, Oct 21, 2014 at 01:30:01PM +0100, Lee Jones wrote:
> On Mon, 13 Oct 2014, Gyungoh Yoo wrote:
> 
> > Signed-off-by: Gyungoh Yoo 
> > ---
> > Changes v4:
> > Removed MODULE_VERSION()
> > Modified license to GPLv2
> > 
> > Changes v3:
> > Fixed the backlight name from 'sky81452-bl' to 'sky81452-backlight'
> > Assigned mfd_cell.of_compatible for binding device node
> > Modified error messages
> > 
> > Changes v2:
> > Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
> > Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
> > Added message for exception or errors
> > 
> >  drivers/mfd/Kconfig  |  12 +
> >  drivers/mfd/Makefile |   1 +
> >  drivers/mfd/sky81452.c   | 110 
> > +++
> >  include/linux/mfd/sky81452.h |  32 +
> >  4 files changed, 155 insertions(+)
> >  create mode 100644 drivers/mfd/sky81452.c
> >  create mode 100644 include/linux/mfd/sky81452.h
> 
> [...]
> 
> > +++ b/include/linux/mfd/sky81452.h
> > @@ -0,0 +1,32 @@
> > +/*
> > + * sky81452.h  SKY81452 MFD driver
> > + *
> > + * Copyright 2014 Skyworks Solutions Inc.
> > + * Author : Gyungoh Yoo 
> > + *
> > + * This program is free software; you can redistribute it and/or modify it
> > + * under the terms of the GNU General Public License as published by the
> > + * Free Software Foundation; either version 2, or (at your option) any
> > + * later version.
> > + *
> > + * This program is distributed in the hope that it will be useful, but
> > + * WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > + * General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License along
> > + * with this program; if not, see <http://www.gnu.org/licenses/>.
> > + */
> > +
> > +#ifndef _SKY81452_H
> > +#define _SKY81452_H
> > +
> > +#include 
> 
> Shouldn't this live in linux/platform_data?

I will change the location to linux/platform_data and resubmit it.
Thank you your review.

> 
> > +#include 
> > +
> > +struct sky81452_platform_data {
> > +   struct sky81452_bl_platform_data *bl_pdata;
> > +   struct regulator_init_data *regulator_init_data;
> > +};
> > +
> > +#endif
> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v4 7/8] regulator: sky81452: Add compatible string for device binding

2014-10-22 Thread Gyungoh Yoo
On Wed, Oct 22, 2014 at 11:27:23AM +0100, Mark Brown wrote:
> On Mon, Oct 20, 2014 at 03:10:24PM +0900, Gyungoh Yoo wrote:
> > On Fri, Oct 17, 2014 at 04:26:05PM +0200, Mark Brown wrote:
> 
> > > The thing I'm seeing is that the binding for your device with the
> > > subnode looks very much like the device trees of devices with multiple
> > > regulators.  The fact that you only have one regulator is a bit
> > > difference but not that much.  It seems like drivers should fit into one
> > > of two patterns: either the regulator is described in the root node for
> > > the device for single purpose devices or there should be a collection of
> > > regulators like is supported with this helper API.  Having a collection
> > > with only one node doesn't seem to be a problem in any way.
> 
> > Thank you for your kind comments.
> > My understanding is getting better.
> 
> > For my clear understanding:
> > I think the original designed which I wanted to design is similar
> > with arizona-ldo1.c
> > It seems that this is 1st pattern your explained above.
> > Can I ask what is different between arizona-ldo1.c and
> > this sky81452-regulator.c?
> > I think both are designed under root node.
> 
> Were that code being written today I'd probably be asking for it to use
> a regulators subnode to be consistent with everything else, it's a
> slightly older driver and sometimes we've not spotted the patterns when
> they're added, once we get to the point of adding the helpers as we have
> now things are definitely getting baked in.

I see. Thank you.

So, what do you think about DT like below?

sky81452@2c {
compatible = "skyworks,sky81452";
reg = <0x2c>;

backlight {
compatible = "skyworks,sky81452-backlight";
name = "pwm-backlight";
enable = <0x3F>;
ignore-pwm;
};

regulator {
compatible = "skyworks,sky81452-regulator";

lout@0 {
regulator-name = "LOUT";
regulator-min-microvolt = <450>;
regulator-max-microvolt = <800>;
};
};
};
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v4 7/8] regulator: sky81452: Add compatible string for device binding

2014-10-19 Thread Gyungoh Yoo
On Fri, Oct 17, 2014 at 04:26:05PM +0200, Mark Brown wrote:
> On Fri, Oct 17, 2014 at 07:43:09PM +0900, Gyungoh Yoo wrote:
> 
> > Are you talking about simplification using of_regulator_match()?
> > This driver has only one regulator.
> > Is the API also useful for this driver?
> 
> The thing I'm seeing is that the binding for your device with the
> subnode looks very much like the device trees of devices with multiple
> regulators.  The fact that you only have one regulator is a bit
> difference but not that much.  It seems like drivers should fit into one
> of two patterns: either the regulator is described in the root node for
> the device for single purpose devices or there should be a collection of
> regulators like is supported with this helper API.  Having a collection
> with only one node doesn't seem to be a problem in any way.
> 
> > Like reg-fixed-voltage, how about using of_get_fixed_voltage_config()?
> 
> The driver doesn't seem to need any property parsing of its own so it
> shoudn't need anything beyond basic calls into the core.

Thank you for your kind comments.
My understanding is getting better.

For my clear understanding:
I think the original designed which I wanted to design is similar
with arizona-ldo1.c
It seems that this is 1st pattern your explained above.
Can I ask what is different between arizona-ldo1.c and
this sky81452-regulator.c?
I think both are designed under root node.

Thank you.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v4 7/8] regulator: sky81452: Add compatible string for device binding

2014-10-17 Thread Gyungoh Yoo
On Fri, Oct 17, 2014 at 12:17:34PM +0200, Mark Brown wrote:
> On Fri, Oct 17, 2014 at 06:19:50PM +0900, Gyungoh Yoo wrote:
> 
> > Wow. I understand.
> > I missed .supply_name. I think I need something like
> > below, before devm_regulator_register().
> 
> > config->supply_name = init_data->constraints.name;
> 
> > I will resubmit it.
> 
> No, not supply_name (though you really should be initializing that
> anyway) and you definitely don't want to set supply_name to something
> from constraints.  The supply_name should be the name of the input pin
> that supplies power to the regulator.  I was referring to of_match and
> regulators_node.

Wow. I had misunderstanding.

Are you talking about simplification using of_regulator_match()?
This driver has only one regulator.
Is the API also useful for this driver?
Like reg-fixed-voltage, how about using of_get_fixed_voltage_config()?

Thanks.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v4 7/8] regulator: sky81452: Add compatible string for device binding

2014-10-17 Thread Gyungoh Yoo
On Tue, Oct 14, 2014 at 09:56:06AM +0200, Mark Brown wrote:
> On Tue, Oct 14, 2014 at 10:11:12AM +0900, Gyungoh Yoo wrote:
> > On Mon, Oct 13, 2014 at 12:35:12PM +0200, Mark Brown wrote:
> 
> > > If you're doing anything here you should convert the code to use the
> > > simplified interface for parsing regulator data based on putting the
> > > subnode name and regualtor name in the regulator descriptor.
> 
> > Thank you for the review.
> 
> > The driver has of_device_id.
> 
> > static const struct of_device_id sky81452_reg_of_match[] = {
> > { .compatible = "skyworks,sky81452-regulator", },
> > { }
> > };
> 
> > And the MFD adds the driver with 
> > of_compatible="skyworks,sky81452-regulator".
> > MFD core maps the device node and the regulator driver does
> > not need to parse the subnode name.
> 
> No, that's for the device (and as I say I don't think this is a good
> idea).  I'm talking about the parsing of the constraints from the DT.

Wow. I understand.
I missed .supply_name. I think I need something like
below, before devm_regulator_register().

config->supply_name = init_data->constraints.name;

I will resubmit it.
Thank you so much.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v4 7/8] regulator: sky81452: Add compatible string for device binding

2014-10-13 Thread Gyungoh Yoo
On Mon, Oct 13, 2014 at 12:35:12PM +0200, Mark Brown wrote:
> On Mon, Oct 13, 2014 at 02:47:41PM +0900, Gyungoh Yoo wrote:
> 
> > -   np = of_get_child_by_name(dev->parent->of_node, "regulator");
> > -   if (unlikely(!np)) {
> > +   if (!np) {
> > dev_err(dev, "regulator node not found");
> > -   return NULL;
> > +   return ERR_PTR(-ENODATA);
> > }
> 
> If you're doing anything here you should convert the code to use the
> simplified interface for parsing regulator data based on putting the
> subnode name and regualtor name in the regulator descriptor.

Thank you for the review.

The driver has of_device_id.

static const struct of_device_id sky81452_reg_of_match[] = {
{ .compatible = "skyworks,sky81452-regulator", },
{ }
};

And the MFD adds the driver with of_compatible="skyworks,sky81452-regulator".
MFD core maps the device node and the regulator driver does
not need to parse the subnode name.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v4 6/8] devicetree: i2c: Add SKY81452 to the Trivial Devices list

2014-10-12 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
Changes v4:
Nothing

Changes v3:
Nothing

Changes v2:
Add SKY81452 to the Trivial Devices list

 Documentation/devicetree/bindings/i2c/trivial-devices.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt 
b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
index 5af3d9d..2ed3baa 100644
--- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt
+++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
@@ -78,6 +78,7 @@ ramtron,24c64 i2c serial eeprom  (24cxx)
 ricoh,rs5c372a I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
 samsung,24ad0xd1   S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power)
 sii,s35390a2-wire CMOS real-time clock
+skyworks,sky81452  Skyworks SKY81452: Six-Channel White LED Driver with 
Touch Panel Bias Supply
 st-micro,24c256i2c serial eeprom  (24cxx)
 stm,m41t00 Serial Access TIMEKEEPER
 stm,m41t62 Serial real-time clock (RTC) with alarm
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v4 7/8] regulator: sky81452: Add compatible string for device binding

2014-10-12 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
Changes v4:
Removed MODULE_VERSION()
Modified license to GPLv2

Changes v3:
Modified to return ENODATA when of_node is NULL
Modified the messages in error cases

Changes v2:
Added 'compatible' attribute in the driver
Added message for exception or errors.

 drivers/regulator/Kconfig  |  2 +-
 drivers/regulator/sky81452-regulator.c | 23 ---
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 55d7b7b..fe84bd4 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -547,7 +547,7 @@ config REGULATOR_S5M8767
 
 config REGULATOR_SKY81452
tristate "Skyworks Solutions SKY81452 voltage regulator"
-   depends on SKY81452
+   depends on MFD_SKY81452
help
  This driver supports Skyworks SKY81452 voltage output regulator
  via I2C bus. SKY81452 has one voltage linear regulator can be
diff --git a/drivers/regulator/sky81452-regulator.c 
b/drivers/regulator/sky81452-regulator.c
index 97aff0c..dfdefdb 100644
--- a/drivers/regulator/sky81452-regulator.c
+++ b/drivers/regulator/sky81452-regulator.c
@@ -68,12 +68,11 @@ static const struct regulator_desc sky81452_reg = {
 static struct regulator_init_data *sky81452_reg_parse_dt(struct device *dev)
 {
struct regulator_init_data *init_data;
-   struct device_node *np;
+   struct device_node *np = of_node_get(dev->of_node);
 
-   np = of_get_child_by_name(dev->parent->of_node, "regulator");
-   if (unlikely(!np)) {
+   if (!np) {
dev_err(dev, "regulator node not found");
-   return NULL;
+   return ERR_PTR(-ENODATA);
}
 
init_data = of_get_regulator_init_data(dev, np);
@@ -107,17 +106,28 @@ static int sky81452_reg_probe(struct platform_device 
*pdev)
config.regmap = dev_get_drvdata(dev->parent);
 
rdev = devm_regulator_register(dev, &sky81452_reg, &config);
-   if (IS_ERR(rdev))
+   if (IS_ERR(rdev)) {
+   dev_err(dev, "failed to register. err=%ld", PTR_ERR(rdev));
return PTR_ERR(rdev);
+   }
 
platform_set_drvdata(pdev, rdev);
 
return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id sky81452_reg_of_match[] = {
+   { .compatible = "skyworks,sky81452-regulator", },
+   { }
+};
+MODULE_DEVICE_TABLE(of, sky81452_reg_of_match);
+#endif
+
 static struct platform_driver sky81452_reg_driver = {
.driver = {
.name = "sky81452-regulator",
+   .of_match_table = of_match_ptr(sky81452_reg_of_match),
},
.probe = sky81452_reg_probe,
 };
@@ -126,5 +136,4 @@ module_platform_driver(sky81452_reg_driver);
 
 MODULE_DESCRIPTION("Skyworks SKY81452 Regulator driver");
 MODULE_AUTHOR("Gyungoh Yoo ");
-MODULE_LICENSE("GPL");
-MODULE_VERSION("1.0");
+MODULE_LICENSE("GPL v2");
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v4 8/8] devicetree: regulator: sky81452: Add compatible string for device binding

2014-10-12 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
Changes v4:
Nothing

Changes v3:
Nothing

Changes v2:
Added 'compatible' attribute in the driver

 Documentation/devicetree/bindings/regulator/sky81452-regulator.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt 
b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
index 882455e..7b9ff18 100644
--- a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
@@ -1,6 +1,7 @@
 SKY81452 voltage regulator
 
 Required properties:
+- compatible   : Must be "skyworks,sky81452-regulator"
 - any required generic properties defined in regulator.txt
 
 Optional properties:
@@ -9,6 +10,7 @@ Optional properties:
 Example:
 
regulator {
+   compatible = "skyworks,sky81452-regulator";
/* generic regulator properties */
regulator-name = "touch_en";
regulator-min-microvolt = <450>;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v4 2/8] backlight: Add support Skyworks SKY81452 backlight driver

2014-10-12 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
Changes v4:
Reordering header files for readability
Removed calling to backlight_device_unregister()
  - because devm_backlight_device_register() was used
Removed MODULE_VERSION()
Modified license to GPLv2

Changes v3:
Modified DBG messages

Changes v2:
Added 'compatible' attribute in the driver
Added message for exception or errors

 drivers/video/backlight/Kconfig  |  10 +
 drivers/video/backlight/Makefile |   1 +
 drivers/video/backlight/sky81452-backlight.c | 344 +++
 include/linux/sky81452-backlight.h   |  47 
 4 files changed, 402 insertions(+)
 create mode 100644 drivers/video/backlight/sky81452-backlight.c
 create mode 100644 include/linux/sky81452-backlight.h

diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index 8d03924..2586fdd 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -409,6 +409,16 @@ config BACKLIGHT_PANDORA
  If you have a Pandora console, say Y to enable the
  backlight driver.
 
+config BACKLIGHT_SKY81452
+   tristate "Backlight driver for SKY81452"
+   depends on BACKLIGHT_CLASS_DEVICE && MFD_SKY81452
+   help
+ If you have a Skyworks SKY81452, say Y to enable the
+ backlight driver.
+
+ To compile this driver as a module, choose M here: the module will
+ be called sky81452-backlight
+
 config BACKLIGHT_TPS65217
tristate "TPS65217 Backlight"
depends on BACKLIGHT_CLASS_DEVICE && MFD_TPS65217
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index fcd50b73..d67073f 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -50,6 +50,7 @@ obj-$(CONFIG_BACKLIGHT_PANDORA)   += pandora_bl.o
 obj-$(CONFIG_BACKLIGHT_PCF50633)   += pcf50633-backlight.o
 obj-$(CONFIG_BACKLIGHT_PWM)+= pwm_bl.o
 obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
+obj-$(CONFIG_BACKLIGHT_SKY81452)   += sky81452-backlight.o
 obj-$(CONFIG_BACKLIGHT_TOSA)   += tosa_bl.o
 obj-$(CONFIG_BACKLIGHT_TPS65217)   += tps65217_bl.o
 obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
diff --git a/drivers/video/backlight/sky81452-backlight.c 
b/drivers/video/backlight/sky81452-backlight.c
new file mode 100644
index 000..3632e29
--- /dev/null
+++ b/drivers/video/backlight/sky81452-backlight.c
@@ -0,0 +1,344 @@
+/*
+ * sky81452-backlight.cSKY81452 backlight driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/* registers */
+#define SKY81452_REG0  0x00
+#define SKY81452_REG1  0x01
+#define SKY81452_REG2  0x02
+#define SKY81452_REG4  0x04
+#define SKY81452_REG5  0x05
+
+/* bit mask */
+#define SKY81452_CS0xFF
+#define SKY81452_EN0x3F
+#define SKY81452_IGPW  0x20
+#define SKY81452_PWMMD 0x10
+#define SKY81452_PHASE 0x08
+#define SKY81452_ILIM  0x04
+#define SKY81452_VSHRT 0x03
+#define SKY81452_OCP   0x80
+#define SKY81452_OTMP  0x40
+#define SKY81452_SHRT  0x3F
+#define SKY81452_OPN   0x3F
+
+#define SKY81452_DEFAULT_NAME "lcd-backlight"
+#define SKY81452_MAX_BRIGHTNESS(SKY81452_CS + 1)
+
+#define CTZ(b) __builtin_ctz(b)
+
+static int sky81452_bl_update_status(struct backlight_device *bd)
+{
+   const struct sky81452_bl_platform_data *pdata =
+   dev_get_platdata(bd->dev.parent);
+   const unsigned int brightness = (unsigned int)bd->props.brightness;
+   struct regmap *regmap = bl_get_data(bd);
+   int ret;
+
+   if (brightness > 0) {
+   ret = regmap_write(regmap, SKY81452_REG0, brightness - 1);
+   if (IS_ERR_VALUE(ret))
+   return ret;
+
+   return regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN,
+   pdata->enable << CTZ(SKY81452_EN));
+   }
+
+   return regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN, 0);
+}
+
+static int sky81452_bl_get_brightness(struct backlight_device *bd)
+{
+   return bd->props.brightness;

[RESUBMIT PATCH v4 5/8] devicetree: Add vendor prefix for Skyworks Solutions, Inc.

2014-10-12 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
Changes v4:
Nothing

Changes v3:
Nothing

Changes v2:
Added vendor prefix for Skyworks Solutions, Inc.

 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
b/Documentation/devicetree/bindings/vendor-prefixes.txt
index f67e3f8..534a583 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -136,6 +136,7 @@ sii Seiko Instruments, Inc.
 silergySilergy Corp.
 sirf   SiRF Technology, Inc.
 sitronix   Sitronix Technology Corporation
+skyworks   Skyworks Solutions, Inc.
 smsc   Standard Microsystems Corporation
 snps   Synopsys, Inc.
 solidrun   SolidRun
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v4 0/8] Add Skyworks SKY81452 device drivers

2014-10-12 Thread Gyungoh Yoo
This patch set includes regulator and backlight driver for SKY81452.
Also it includes documents for device tree and module.
The initial version of sky81452-regulator was applied. Fo this, incremental
patches are included.

v4:
Removed MODULE_VERSION()
Modified license to GPLv2
Removed calling to backlight_device_unregister() in sky81452-backlight

v3:
Cleaned-up DBG messages
Cleaned-up DT
Fixed the backlight name from 'sky81452-bl' to 'sky81452-backlight'
Assigned mfd_cell.of_compatible for binding device node
Modified error messages
Modified sky81452-regulator to return ENODATA when of_node is NULL

v2:
Split the patches for each sub-system
Added 'reg' attribute for I2C address in device tree documents
Added 'compatible' attribute in child drivers
Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
Added message for exception or errors.
Added vendor prefix for Skyworks Solutions, Inc.
Add SKY81452 to the Trivial Devices list

Gyungoh Yoo (8):
  mfd: Add support for Skyworks SKY81452 driver
  backlight: Add support Skyworks SKY81452 backlight driver
  devicetree: mfd: Add new SKY81452 mfd binding
  devicetree: backlight: Add new SKY81452 backlight binding
  devicetree: Add vendor prefix for Skyworks Solutions, Inc.
  devicetree: i2c: Add SKY81452 to the Trivial Devices list
  regulator: sky81452: Add compatible string for device binding
  devicetree: regulator: sky81452: Add compatible string for device
binding

 .../devicetree/bindings/i2c/trivial-devices.txt|   1 +
 Documentation/devicetree/bindings/mfd/sky81452.txt |  32 ++
 .../bindings/regulator/sky81452-regulator.txt  |   8 +
 .../devicetree/bindings/vendor-prefixes.txt|   1 +
 .../video/backlight/sky81452-backlight.txt |  24 ++
 drivers/mfd/Kconfig|  12 +
 drivers/mfd/Makefile   |   1 +
 drivers/mfd/sky81452.c | 110 +++
 drivers/regulator/Kconfig  |   2 +-
 drivers/regulator/sky81452-regulator.c |  23 +-
 drivers/video/backlight/Kconfig|  10 +
 drivers/video/backlight/Makefile   |   1 +
 drivers/video/backlight/sky81452-backlight.c   | 344 +
 include/linux/mfd/sky81452.h   |  32 ++
 include/linux/sky81452-backlight.h |  47 +++
 15 files changed, 640 insertions(+), 8 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
 create mode 100644 
Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 drivers/video/backlight/sky81452-backlight.c
 create mode 100644 include/linux/mfd/sky81452.h
 create mode 100644 include/linux/sky81452-backlight.h

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v4 3/8] devicetree: mfd: Add new SKY81452 mfd binding

2014-10-12 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
Changes v4:
Nothing

Changes v3:
Nothing

Changes v2:
Added reg attribute for I2C slave address

 Documentation/devicetree/bindings/mfd/sky81452.txt | 32 ++
 1 file changed, 32 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt

diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
b/Documentation/devicetree/bindings/mfd/sky81452.txt
new file mode 100644
index 000..d61904a
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
@@ -0,0 +1,32 @@
+SKY81452 bindings
+
+Required properties:
+- compatible   : Must be "skyworks,sky81452"
+- reg  : I2C slave address
+
+Required child nodes:
+- backlight: container node for backlight following the binding
+   in video/backlight/sky81452-backlight.txt
+- regulator: container node for regulators following the binding
+   in regulator/sky81452-regulator.txt
+
+Example:
+
+   sky81452@2c {
+   compatible = "skyworks,sky81452";
+   reg = <0x2c>;
+
+   backlight {
+   compatible = "skyworks,sky81452-backlight";
+   name = "pwm-backlight";
+   enable = <0x3F>;
+   ignore-pwm;
+   };
+
+   regulator {
+   compatible = "skyworks,sky81452-regulator";
+   regulator-name = "touch_en";
+   regulator-min-microvolt = <450>;
+   regulator-max-microvolt = <800>;
+   };
+   };
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v4 1/8] mfd: Add support for Skyworks SKY81452 driver

2014-10-12 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
Changes v4:
Removed MODULE_VERSION()
Modified license to GPLv2

Changes v3:
Fixed the backlight name from 'sky81452-bl' to 'sky81452-backlight'
Assigned mfd_cell.of_compatible for binding device node
Modified error messages

Changes v2:
Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
Added message for exception or errors

 drivers/mfd/Kconfig  |  12 +
 drivers/mfd/Makefile |   1 +
 drivers/mfd/sky81452.c   | 110 +++
 include/linux/mfd/sky81452.h |  32 +
 4 files changed, 155 insertions(+)
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 include/linux/mfd/sky81452.h

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index cf66ef1..f62a4a4 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -641,6 +641,18 @@ config MFD_SM501_GPIO
 lines on the SM501. The platform data is used to supply the
 base number for the first GPIO line to register.
 
+config MFD_SKY81452
+   tristate "Skyworks Solutions SKY81452"
+   select MFD_CORE
+   select REGMAP_I2C
+   depends on I2C
+   help
+ This is the core driver for the Skyworks SKY81452 backlight and
+ voltage regulator device.
+
+ This driver can also be built as a module.  If so, the module
+ will be called sky81452.
+
 config MFD_SMSC
bool "SMSC ECE1099 series chips"
depends on I2C=y
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index d58068a..2962396 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -170,6 +170,7 @@ obj-$(CONFIG_MFD_AS3722)+= as3722.o
 obj-$(CONFIG_MFD_STW481X)  += stw481x.o
 obj-$(CONFIG_MFD_IPAQ_MICRO)   += ipaq-micro.o
 obj-$(CONFIG_MFD_MENF21BMC)+= menf21bmc.o
+obj-$(CONFIG_MFD_SKY81452) += sky81452.o
 
 intel-soc-pmic-objs:= intel_soc_pmic_core.o intel_soc_pmic_crc.o
 obj-$(CONFIG_INTEL_SOC_PMIC)   += intel-soc-pmic.o
diff --git a/drivers/mfd/sky81452.c b/drivers/mfd/sky81452.c
new file mode 100644
index 000..bdd3253
--- /dev/null
+++ b/drivers/mfd/sky81452.c
@@ -0,0 +1,110 @@
+/*
+ * sky81452.c  SKY81452 MFD driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+static const struct regmap_config sky81452_config = {
+   .reg_bits = 8,
+   .val_bits = 8,
+};
+
+static int sky81452_probe(struct i2c_client *client,
+   const struct i2c_device_id *id)
+{
+   struct device *dev = &client->dev;
+   const struct sky81452_platform_data *pdata = dev_get_platdata(dev);
+   struct mfd_cell cells[2];
+   struct regmap *regmap;
+   int ret;
+
+   if (!pdata) {
+   pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata)
+   return -ENOMEM;
+   }
+
+   regmap = devm_regmap_init_i2c(client, &sky81452_config);
+   if (IS_ERR(regmap)) {
+   dev_err(dev, "failed to initialize. err=%ld", PTR_ERR(regmap));
+   return PTR_ERR(regmap);
+   }
+
+   i2c_set_clientdata(client, regmap);
+
+   memset(cells, 0, sizeof(cells));
+   cells[0].name = "sky81452-backlight";
+   cells[0].of_compatible = "skyworks,sky81452-backlight";
+   cells[0].platform_data = pdata->bl_pdata;
+   cells[0].pdata_size = sizeof(*pdata->bl_pdata);
+   cells[1].name = "sky81452-regulator";
+   cells[1].of_compatible = "skyworks,sky81452-regulator";
+   cells[1].platform_data = pdata->regulator_init_data;
+   cells[1].pdata_size = sizeof(*pdata->regulator_init_data);
+
+   ret = mfd_add_devices(dev, -1, cells, ARRAY_SIZE(cells), NULL, 0, NULL);
+   if (ret)
+   dev_err(dev, "failed to add child devices. err=%d", ret);
+
+   return ret;
+}
+
+static int sky81452_remove(struct i2c_client *client)
+{
+   mfd_remove_devices(&client->dev);
+   return 0;
+}
+
+static const struct i2c_device_id sky81452_ids[] = {
+   { "

[RESUBMIT PATCH v4 4/8] devicetree: backlight: Add new SKY81452 backlight binding

2014-10-12 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
Changes v4:
Nothing

Changes v3:
Nothing

Changes v2:
Added reg attribute for I2C slave address

 .../video/backlight/sky81452-backlight.txt | 24 ++
 1 file changed, 24 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt

diff --git 
a/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt 
b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
new file mode 100644
index 000..2c2d947
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
@@ -0,0 +1,24 @@
+SKY81452-backlight bindings
+
+Required properties:
+- compatible   : Must be "skyworks,sky81452-backlight"
+
+Optional properties:
+- name : Name of backlight device. Default is 'lcd-backlight'.
+- gpio-enable  : GPIO to use to EN pin.
+- enable   : Enable mask for current sink channel 1 to 6.
+- ignore-pwm   : Ignore both PWM input
+- dpwm-mode: Enable DPWM dimming mode, otherwise Analog dimming 
mode
+- phase-shift  : Enable phase shift mode
+- ovp-level: Over-voltage protection level. Should be between 14 
or 28V.
+- short-detection-threshold: It should be one of 4, 5, 6 and 7V.
+- boost-current-limit  : It should be one of 800, 1100 and 1500mA.
+
+Example:
+
+   backlight {
+   compatible = "skyworks,sky81452-backlight";
+   name = "pwm-backlight";
+   enable = <0x3F>;
+   ignore-pwm;
+   };
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v3 2/8] backlight: Add support Skyworks SKY81452 backlight driver

2014-10-08 Thread Gyungoh Yoo
On Wed, Oct 08, 2014 at 10:03:57AM +0900, Jingoo Han wrote:
> On Tuesday, October 07, 2014 2:01 PM, Gyungoh Yoo wrote:
> > 
> 
> If possible, please add more detailed commit message for this patch.
> 
> > Signed-off-by: Gyungoh Yoo 
> > ---
> >  drivers/video/backlight/Kconfig  |  10 +
> >  drivers/video/backlight/Makefile |   1 +
> >  drivers/video/backlight/sky81452-backlight.c | 347 
> > +++
> >  3 files changed, 358 insertions(+)
> >  create mode 100644 drivers/video/backlight/sky81452-backlight.c
> > 
> > diff --git a/drivers/video/backlight/Kconfig 
> > b/drivers/video/backlight/Kconfig
> > index 8d03924..2586fdd 100644
> > --- a/drivers/video/backlight/Kconfig
> > +++ b/drivers/video/backlight/Kconfig
> > @@ -409,6 +409,16 @@ config BACKLIGHT_PANDORA
> >   If you have a Pandora console, say Y to enable the
> >   backlight driver.
> > 
> > +config BACKLIGHT_SKY81452
> > +   tristate "Backlight driver for SKY81452"
> > +   depends on BACKLIGHT_CLASS_DEVICE && MFD_SKY81452
> > +   help
> > + If you have a Skyworks SKY81452, say Y to enable the
> > + backlight driver.
> > +
> > + To compile this driver as a module, choose M here: the module will
> > + be called sky81452-backlight
> > +
> >  config BACKLIGHT_TPS65217
> > tristate "TPS65217 Backlight"
> > depends on BACKLIGHT_CLASS_DEVICE && MFD_TPS65217
> > diff --git a/drivers/video/backlight/Makefile 
> > b/drivers/video/backlight/Makefile
> > index fcd50b73..d67073f 100644
> > --- a/drivers/video/backlight/Makefile
> > +++ b/drivers/video/backlight/Makefile
> > @@ -50,6 +50,7 @@ obj-$(CONFIG_BACKLIGHT_PANDORA)   += pandora_bl.o
> >  obj-$(CONFIG_BACKLIGHT_PCF50633)   += pcf50633-backlight.o
> >  obj-$(CONFIG_BACKLIGHT_PWM)+= pwm_bl.o
> >  obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
> > +obj-$(CONFIG_BACKLIGHT_SKY81452)   += sky81452-backlight.o
> >  obj-$(CONFIG_BACKLIGHT_TOSA)   += tosa_bl.o
> >  obj-$(CONFIG_BACKLIGHT_TPS65217)   += tps65217_bl.o
> >  obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
> > diff --git a/drivers/video/backlight/sky81452-backlight.c 
> > b/drivers/video/backlight/sky81452-
> > backlight.c
> > new file mode 100644
> > index 000..101399d
> > --- /dev/null
> > +++ b/drivers/video/backlight/sky81452-backlight.c
> > @@ -0,0 +1,347 @@
> > +/*
> > + * sky81452-backlight.cSKY81452 backlight driver
> > + *
> > + * Copyright 2014 Skyworks Solutions Inc.
> > + * Author : Gyungoh Yoo 
> > + *
> > + * This program is free software; you can redistribute it and/or modify it
> > + * under the terms of the GNU General Public License as published by the
> > + * Free Software Foundation; either version 2, or (at your option) any
> > + * later version.
> > + *
> > + * This program is distributed in the hope that it will be useful, but
> > + * WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > + * General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License along
> > + * with this program; if not, see <http://www.gnu.org/licenses/>.
> > + */
> > +
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> 
> Please, re-order these headers alphabetically.
> It enhances the readability.

I see.

> 
> > +
> > +/* registers */
> > +#define SKY81452_REG0  0x00
> > +#define SKY81452_REG1  0x01
> > +#define SKY81452_REG2  0x02
> > +#define SKY81452_REG4  0x04
> > +#define SKY81452_REG5  0x05
> > +
> > +/* bit mask */
> > +#define SKY81452_CS0xFF
> > +#define SKY81452_EN0x3F
> > +#define SKY81452_IGPW  0x20
> > +#define SKY81452_PWMMD 0x10
> > +#define SKY81452_PHASE 0x08
> > +#define SKY81452_ILIM  0x04
> > +#define SKY81452_VSHRT 0x03
> > +#define SKY81452_OCP   0x80
> > +#define SKY81452_OTMP  0x40
> > +#define SKY81452_SHRT  0x3F
> > +#define SKY81452_OPN   0x3F
> > +
> > +#define SKY81452_DEFAULT_NAME "lcd-backlight"
> > +#define SKY81452_MAX_BRIGHT

Re: [PATCH] regulator: sky81452: Remove module version

2014-10-08 Thread Gyungoh Yoo
On Wed, Oct 08, 2014 at 09:57:43AM +0800, Axel Lin wrote:
> The module version is unlikely to be updated, use kernel version should be
> enough.
> 
> Signed-off-by: Axel Lin 
> ---
> Hi Gyungoh,
> Seems you have added MODULE_VERSION for the sky81452 serial patches.
> Do you really need that and will keep updating it?
> Otherwise, you may want to drop the MODULE_VERSION in sky81452 serial patches.

I see.
I will remove MODULE_VERSION and resumit.
Thank you.

> 
>  drivers/regulator/sky81452-regulator.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/regulator/sky81452-regulator.c 
> b/drivers/regulator/sky81452-regulator.c
> index 97aff0c..476b80a 100644
> --- a/drivers/regulator/sky81452-regulator.c
> +++ b/drivers/regulator/sky81452-regulator.c
> @@ -127,4 +127,3 @@ module_platform_driver(sky81452_reg_driver);
>  MODULE_DESCRIPTION("Skyworks SKY81452 Regulator driver");
>  MODULE_AUTHOR("Gyungoh Yoo ");
>  MODULE_LICENSE("GPL");
> -MODULE_VERSION("1.0");
> -- 
> 1.9.1
> 
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v3 7/8] regulator: sky81452: Add compatible string for device binding

2014-10-08 Thread Gyungoh Yoo
On Tue, Oct 07, 2014 at 01:52:21PM +0100, Mark Brown wrote:
> On Tue, Oct 07, 2014 at 02:11:07PM +0900, Gyungoh Yoo wrote:
> > Signed-off-by: Gyungoh Yoo 
> 
> Several problems here:
> 
>  - I don't have patches 1-6 or the cover letter for this series - what
>are the dependencies?
>  - I can't see any sign that my concerns about the driver not actually
>being reusable have been addressed here.
>  - This patch appears to do way more than add a compatible string, for
>example:

I am sorry the recipients of each patch and cover letter was different.
I will resubmit soon.

> 
> > -   np = of_get_child_by_name(dev->parent->of_node, "regulator");
> > -   if (unlikely(!np)) {
> > +   if (!np) {
> > dev_err(dev, "regulator node not found");
> > -   return NULL;
> > +   return ERR_PTR(-ENODATA);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESUBMIT PATCH v3 1/8] mfd: Add support for Skyworks SKY81452 driver

2014-10-07 Thread Gyungoh Yoo
On Tue, Oct 07, 2014 at 09:12:00AM +0100, Lee Jones wrote:
> You say that this is v3, but there is no change log (usually placed
> between the '---' and the diffstat).  Also you have 8 patches in this
> set with no 0/8 patch explaining what you're trying to achieve.  For
> this size patch you also require a patch commit log.  What does this
> driver provide?  How does it provide it?  Once you've addressed these
> issues, I'll review your patches.

I sent 0/8 patch, and it has the change log and what this patch is
trying to do.
Can I ask you to review the patches?
Thank you.

> 
> > Signed-off-by: Gyungoh Yoo 
> > ---
> >  drivers/mfd/Kconfig  |  12 +
> >  drivers/mfd/Makefile |   1 +
> >  drivers/mfd/sky81452.c   | 111 
> > +++
> >  include/linux/mfd/sky81452.h |  32 +
> >  4 files changed, 156 insertions(+)
> >  create mode 100644 drivers/mfd/sky81452.c
> >  create mode 100644 include/linux/mfd/sky81452.h
> > 
> > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> > index de5abf2..6962b4e 100644
> > --- a/drivers/mfd/Kconfig
> > +++ b/drivers/mfd/Kconfig
> > @@ -626,6 +626,18 @@ config MFD_SM501_GPIO
> >  lines on the SM501. The platform data is used to supply the
> >  base number for the first GPIO line to register.
> >  
> > +config MFD_SKY81452
> > +   tristate "Skyworks Solutions SKY81452"
> > +   select MFD_CORE
> > +   select REGMAP_I2C
> > +   depends on I2C
> > +   help
> > + This is the core driver for the Skyworks SKY81452 backlight and
> > + voltage regulator device.
> > +
> > + This driver can also be built as a module.  If so, the module
> > + will be called sky81452.
> > +
> >  config MFD_SMSC
> > bool "SMSC ECE1099 series chips"
> > depends on I2C=y
> > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> > index f001487..6c2f317 100644
> > --- a/drivers/mfd/Makefile
> > +++ b/drivers/mfd/Makefile
> > @@ -169,6 +169,7 @@ obj-$(CONFIG_MFD_AS3711)+= as3711.o
> >  obj-$(CONFIG_MFD_AS3722)   += as3722.o
> >  obj-$(CONFIG_MFD_STW481X)  += stw481x.o
> >  obj-$(CONFIG_MFD_IPAQ_MICRO)   += ipaq-micro.o
> > +obj-$(CONFIG_MFD_SKY81452) += sky81452.o
> >  
> >  intel-soc-pmic-objs:= intel_soc_pmic_core.o 
> > intel_soc_pmic_crc.o
> >  obj-$(CONFIG_INTEL_SOC_PMIC)       += intel-soc-pmic.o
> > diff --git a/drivers/mfd/sky81452.c b/drivers/mfd/sky81452.c
> > new file mode 100644
> > index 000..9130112
> > --- /dev/null
> > +++ b/drivers/mfd/sky81452.c
> > @@ -0,0 +1,111 @@
> > +/*
> > + * sky81452.c  SKY81452 MFD driver
> > + *
> > + * Copyright 2014 Skyworks Solutions Inc.
> > + * Author : Gyungoh Yoo 
> > + *
> > + * This program is free software; you can redistribute it and/or modify it
> > + * under the terms of the GNU General Public License as published by the
> > + * Free Software Foundation; either version 2, or (at your option) any
> > + * later version.
> > + *
> > + * This program is distributed in the hope that it will be useful, but
> > + * WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > + * General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License along
> > + * with this program; if not, see <http://www.gnu.org/licenses/>.
> > + */
> > +
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +#include 
> > +
> > +static const struct regmap_config sky81452_config = {
> > +   .reg_bits = 8,
> > +   .val_bits = 8,
> > +};
> > +
> > +static int sky81452_probe(struct i2c_client *client,
> > +   const struct i2c_device_id *id)
> > +{
> > +   struct device *dev = &client->dev;
> > +   const struct sky81452_platform_data *pdata = dev_get_platdata(dev);
> > +   struct mfd_cell cells[2];
> > +   struct regmap *regmap;
> > +   int ret;
> > +
> > +   if (!pdata) {
> > +   pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
> > +   if (!pdata)
> > +   return -ENOMEM;
> > +   }
> > +
> > +   regmap = devm_regmap_init_i2c(client, &sky81452_config);
&

[RESUBMIT PATCH v3 8/8] devicetree: regulator: sky81452: Add compatible string for device binding

2014-10-06 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 Documentation/devicetree/bindings/regulator/sky81452-regulator.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt 
b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
index 882455e..7b9ff18 100644
--- a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
@@ -1,6 +1,7 @@
 SKY81452 voltage regulator
 
 Required properties:
+- compatible   : Must be "skyworks,sky81452-regulator"
 - any required generic properties defined in regulator.txt
 
 Optional properties:
@@ -9,6 +10,7 @@ Optional properties:
 Example:
 
regulator {
+   compatible = "skyworks,sky81452-regulator";
/* generic regulator properties */
regulator-name = "touch_en";
regulator-min-microvolt = <450>;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v3 7/8] regulator: sky81452: Add compatible string for device binding

2014-10-06 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 drivers/regulator/sky81452-regulator.c | 22 --
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/drivers/regulator/sky81452-regulator.c 
b/drivers/regulator/sky81452-regulator.c
index 97aff0c..f895d1b 100644
--- a/drivers/regulator/sky81452-regulator.c
+++ b/drivers/regulator/sky81452-regulator.c
@@ -68,12 +68,11 @@ static const struct regulator_desc sky81452_reg = {
 static struct regulator_init_data *sky81452_reg_parse_dt(struct device *dev)
 {
struct regulator_init_data *init_data;
-   struct device_node *np;
+   struct device_node *np = of_node_get(dev->of_node);
 
-   np = of_get_child_by_name(dev->parent->of_node, "regulator");
-   if (unlikely(!np)) {
+   if (!np) {
dev_err(dev, "regulator node not found");
-   return NULL;
+   return ERR_PTR(-ENODATA);
}
 
init_data = of_get_regulator_init_data(dev, np);
@@ -107,17 +106,28 @@ static int sky81452_reg_probe(struct platform_device 
*pdev)
config.regmap = dev_get_drvdata(dev->parent);
 
rdev = devm_regulator_register(dev, &sky81452_reg, &config);
-   if (IS_ERR(rdev))
+   if (IS_ERR(rdev)) {
+   dev_err(dev, "failed to register. err=%ld", PTR_ERR(rdev));
return PTR_ERR(rdev);
+   }
 
platform_set_drvdata(pdev, rdev);
 
return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id sky81452_reg_of_match[] = {
+   { .compatible = "skyworks,sky81452-regulator", },
+   { }
+};
+MODULE_DEVICE_TABLE(of, sky81452_reg_of_match);
+#endif
+
 static struct platform_driver sky81452_reg_driver = {
.driver = {
.name = "sky81452-regulator",
+   .of_match_table = of_match_ptr(sky81452_reg_of_match),
},
.probe = sky81452_reg_probe,
 };
@@ -127,4 +137,4 @@ module_platform_driver(sky81452_reg_driver);
 MODULE_DESCRIPTION("Skyworks SKY81452 Regulator driver");
 MODULE_AUTHOR("Gyungoh Yoo ");
 MODULE_LICENSE("GPL");
-MODULE_VERSION("1.0");
+MODULE_VERSION("1.2");
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v3 6/8] devicetree: i2c: Add SKY81452 to the Trivial Devices list

2014-10-06 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 Documentation/devicetree/bindings/i2c/trivial-devices.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt 
b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
index 6af570e..ff77879 100644
--- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt
+++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
@@ -78,6 +78,7 @@ ramtron,24c64 i2c serial eeprom  (24cxx)
 ricoh,rs5c372a I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
 samsung,24ad0xd1   S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power)
 sii,s35390a2-wire CMOS real-time clock
+skyworks,sky81452  Skyworks SKY81452: Six-Channel White LED Driver with 
Touch Panel Bias Supply
 st-micro,24c256i2c serial eeprom  (24cxx)
 stm,m41t00 Serial Access TIMEKEEPER
 stm,m41t62 Serial real-time clock (RTC) with alarm
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v3 5/8] devicetree: Add vendor prefix for Skyworks Solutions, Inc.

2014-10-06 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
b/Documentation/devicetree/bindings/vendor-prefixes.txt
index ac7269f..c755978 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -125,6 +125,7 @@ silabs  Silicon Laboratories
 simtek
 siiSeiko Instruments, Inc.
 sirf   SiRF Technology, Inc.
+skyworks   Skyworks Solutions, Inc.
 smsc   Standard Microsystems Corporation
 snps   Synopsys, Inc.
 solidrun   SolidRun
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v3 4/8] devicetree: backlight: add new SKY81452 backlight binding

2014-10-06 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 .../video/backlight/sky81452-backlight.txt | 24 ++
 1 file changed, 24 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt

diff --git 
a/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt 
b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
new file mode 100644
index 000..2c2d947
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
@@ -0,0 +1,24 @@
+SKY81452-backlight bindings
+
+Required properties:
+- compatible   : Must be "skyworks,sky81452-backlight"
+
+Optional properties:
+- name : Name of backlight device. Default is 'lcd-backlight'.
+- gpio-enable  : GPIO to use to EN pin.
+- enable   : Enable mask for current sink channel 1 to 6.
+- ignore-pwm   : Ignore both PWM input
+- dpwm-mode: Enable DPWM dimming mode, otherwise Analog dimming 
mode
+- phase-shift  : Enable phase shift mode
+- ovp-level: Over-voltage protection level. Should be between 14 
or 28V.
+- short-detection-threshold: It should be one of 4, 5, 6 and 7V.
+- boost-current-limit  : It should be one of 800, 1100 and 1500mA.
+
+Example:
+
+   backlight {
+   compatible = "skyworks,sky81452-backlight";
+   name = "pwm-backlight";
+   enable = <0x3F>;
+   ignore-pwm;
+   };
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v3 3/8] devicetree: mfd: Add new SKY81452 mfd binding

2014-10-06 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 Documentation/devicetree/bindings/mfd/sky81452.txt | 32 ++
 1 file changed, 32 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt

diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
b/Documentation/devicetree/bindings/mfd/sky81452.txt
new file mode 100644
index 000..d61904a
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
@@ -0,0 +1,32 @@
+SKY81452 bindings
+
+Required properties:
+- compatible   : Must be "skyworks,sky81452"
+- reg  : I2C slave address
+
+Required child nodes:
+- backlight: container node for backlight following the binding
+   in video/backlight/sky81452-backlight.txt
+- regulator: container node for regulators following the binding
+   in regulator/sky81452-regulator.txt
+
+Example:
+
+   sky81452@2c {
+   compatible = "skyworks,sky81452";
+   reg = <0x2c>;
+
+   backlight {
+   compatible = "skyworks,sky81452-backlight";
+   name = "pwm-backlight";
+   enable = <0x3F>;
+   ignore-pwm;
+   };
+
+   regulator {
+   compatible = "skyworks,sky81452-regulator";
+   regulator-name = "touch_en";
+   regulator-min-microvolt = <450>;
+   regulator-max-microvolt = <800>;
+   };
+   };
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESUBMIT PATCH v3 2/8] backlight: Add support Skyworks SKY81452 backlight driver

2014-10-06 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 drivers/video/backlight/Kconfig  |  10 +
 drivers/video/backlight/Makefile |   1 +
 drivers/video/backlight/sky81452-backlight.c | 347 +++
 3 files changed, 358 insertions(+)
 create mode 100644 drivers/video/backlight/sky81452-backlight.c

diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index 8d03924..2586fdd 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -409,6 +409,16 @@ config BACKLIGHT_PANDORA
  If you have a Pandora console, say Y to enable the
  backlight driver.
 
+config BACKLIGHT_SKY81452
+   tristate "Backlight driver for SKY81452"
+   depends on BACKLIGHT_CLASS_DEVICE && MFD_SKY81452
+   help
+ If you have a Skyworks SKY81452, say Y to enable the
+ backlight driver.
+
+ To compile this driver as a module, choose M here: the module will
+ be called sky81452-backlight
+
 config BACKLIGHT_TPS65217
tristate "TPS65217 Backlight"
depends on BACKLIGHT_CLASS_DEVICE && MFD_TPS65217
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index fcd50b73..d67073f 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -50,6 +50,7 @@ obj-$(CONFIG_BACKLIGHT_PANDORA)   += pandora_bl.o
 obj-$(CONFIG_BACKLIGHT_PCF50633)   += pcf50633-backlight.o
 obj-$(CONFIG_BACKLIGHT_PWM)+= pwm_bl.o
 obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
+obj-$(CONFIG_BACKLIGHT_SKY81452)   += sky81452-backlight.o
 obj-$(CONFIG_BACKLIGHT_TOSA)   += tosa_bl.o
 obj-$(CONFIG_BACKLIGHT_TPS65217)   += tps65217_bl.o
 obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
diff --git a/drivers/video/backlight/sky81452-backlight.c 
b/drivers/video/backlight/sky81452-backlight.c
new file mode 100644
index 000..101399d
--- /dev/null
+++ b/drivers/video/backlight/sky81452-backlight.c
@@ -0,0 +1,347 @@
+/*
+ * sky81452-backlight.cSKY81452 backlight driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/* registers */
+#define SKY81452_REG0  0x00
+#define SKY81452_REG1  0x01
+#define SKY81452_REG2  0x02
+#define SKY81452_REG4  0x04
+#define SKY81452_REG5  0x05
+
+/* bit mask */
+#define SKY81452_CS0xFF
+#define SKY81452_EN0x3F
+#define SKY81452_IGPW  0x20
+#define SKY81452_PWMMD 0x10
+#define SKY81452_PHASE 0x08
+#define SKY81452_ILIM  0x04
+#define SKY81452_VSHRT 0x03
+#define SKY81452_OCP   0x80
+#define SKY81452_OTMP  0x40
+#define SKY81452_SHRT  0x3F
+#define SKY81452_OPN   0x3F
+
+#define SKY81452_DEFAULT_NAME "lcd-backlight"
+#define SKY81452_MAX_BRIGHTNESS(SKY81452_CS + 1)
+
+#define CTZ(b) __builtin_ctz(b)
+
+static int sky81452_bl_update_status(struct backlight_device *bd)
+{
+   const struct sky81452_bl_platform_data *pdata =
+   dev_get_platdata(bd->dev.parent);
+   const unsigned int brightness = (unsigned int)bd->props.brightness;
+   struct regmap *regmap = bl_get_data(bd);
+   int ret;
+
+   if (brightness > 0) {
+   ret = regmap_write(regmap, SKY81452_REG0, brightness - 1);
+   if (IS_ERR_VALUE(ret))
+   return ret;
+
+   return regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN,
+   pdata->enable << CTZ(SKY81452_EN));
+   }
+
+   return regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN, 0);
+}
+
+static int sky81452_bl_get_brightness(struct backlight_device *bd)
+{
+   return bd->props.brightness;
+}
+
+static const struct backlight_ops sky81452_bl_ops = {
+   .update_status = sky81452_bl_update_status,
+   .get_brightness = sky81452_bl_get_brightness,
+};
+
+static ssize_t sky81452_bl_store_enable(struct device *dev,
+   struct device_attribute *attr, const char *buf, size_t count)
+{
+   struct regmap *regmap = bl_get_data(to_backlight_device(dev));
+   unsigned long value;
+   int ret;
+
+   ret = kstrtoul(bu

[RESUBMIT PATCH v3 1/8] mfd: Add support for Skyworks SKY81452 driver

2014-10-06 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 drivers/mfd/Kconfig  |  12 +
 drivers/mfd/Makefile |   1 +
 drivers/mfd/sky81452.c   | 111 +++
 include/linux/mfd/sky81452.h |  32 +
 4 files changed, 156 insertions(+)
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 include/linux/mfd/sky81452.h

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index de5abf2..6962b4e 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -626,6 +626,18 @@ config MFD_SM501_GPIO
 lines on the SM501. The platform data is used to supply the
 base number for the first GPIO line to register.
 
+config MFD_SKY81452
+   tristate "Skyworks Solutions SKY81452"
+   select MFD_CORE
+   select REGMAP_I2C
+   depends on I2C
+   help
+ This is the core driver for the Skyworks SKY81452 backlight and
+ voltage regulator device.
+
+ This driver can also be built as a module.  If so, the module
+ will be called sky81452.
+
 config MFD_SMSC
bool "SMSC ECE1099 series chips"
depends on I2C=y
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index f001487..6c2f317 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -169,6 +169,7 @@ obj-$(CONFIG_MFD_AS3711)+= as3711.o
 obj-$(CONFIG_MFD_AS3722)   += as3722.o
 obj-$(CONFIG_MFD_STW481X)  += stw481x.o
 obj-$(CONFIG_MFD_IPAQ_MICRO)   += ipaq-micro.o
+obj-$(CONFIG_MFD_SKY81452) += sky81452.o
 
 intel-soc-pmic-objs:= intel_soc_pmic_core.o intel_soc_pmic_crc.o
 obj-$(CONFIG_INTEL_SOC_PMIC)   += intel-soc-pmic.o
diff --git a/drivers/mfd/sky81452.c b/drivers/mfd/sky81452.c
new file mode 100644
index 000..9130112
--- /dev/null
+++ b/drivers/mfd/sky81452.c
@@ -0,0 +1,111 @@
+/*
+ * sky81452.c  SKY81452 MFD driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+static const struct regmap_config sky81452_config = {
+   .reg_bits = 8,
+   .val_bits = 8,
+};
+
+static int sky81452_probe(struct i2c_client *client,
+   const struct i2c_device_id *id)
+{
+   struct device *dev = &client->dev;
+   const struct sky81452_platform_data *pdata = dev_get_platdata(dev);
+   struct mfd_cell cells[2];
+   struct regmap *regmap;
+   int ret;
+
+   if (!pdata) {
+   pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata)
+   return -ENOMEM;
+   }
+
+   regmap = devm_regmap_init_i2c(client, &sky81452_config);
+   if (IS_ERR(regmap)) {
+   dev_err(dev, "failed to initialize. err=%ld", PTR_ERR(regmap));
+   return PTR_ERR(regmap);
+   }
+
+   i2c_set_clientdata(client, regmap);
+
+   memset(cells, 0, sizeof(cells));
+   cells[0].name = "sky81452-backlight";
+   cells[0].of_compatible = "skyworks,sky81452-backlight";
+   cells[0].platform_data = pdata->bl_pdata;
+   cells[0].pdata_size = sizeof(*pdata->bl_pdata);
+   cells[1].name = "sky81452-regulator";
+   cells[1].of_compatible = "skyworks,sky81452-regulator";
+   cells[1].platform_data = pdata->regulator_init_data;
+   cells[1].pdata_size = sizeof(*pdata->regulator_init_data);
+
+   ret = mfd_add_devices(dev, -1, cells, ARRAY_SIZE(cells), NULL, 0, NULL);
+   if (ret)
+   dev_err(dev, "failed to add child devices. err=%d", ret);
+
+   return ret;
+}
+
+static int sky81452_remove(struct i2c_client *client)
+{
+   mfd_remove_devices(&client->dev);
+   return 0;
+}
+
+static const struct i2c_device_id sky81452_ids[] = {
+   { "sky81452" },
+   { }
+};
+MODULE_DEVICE_TABLE(i2c, sky81452_ids);
+
+#ifdef CONFIG_OF
+static const struct of_device_id sky81452_of_match[] = {
+   { .compatible = "skyworks,sky81452", },
+   { }
+};
+MODULE_DEVICE_TABLE(of, sky81452_of_match);
+#endif
+
+static struct i2c_driver sky81452_driver = {
+   .driver = {
+   .name = "sky81452",
+   .

[RESUBMIT PATCH v3 0/8] Adding Skyworks SKY81452 device drivers

2014-10-06 Thread Gyungoh Yoo
This patch set includes regulator and backlight driver for SKY81452.
Also it includes documents for device tree and module.

v3:
Cleaned-up DBG messages.
Cleaned-up DT.

v2:
Split the patches for each sub-system.
Added 'reg' attribute for I2C address in device tree documents
Added 'compatible' attribute in child drivers
Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
Added message for exception or errors.

Gyungoh Yoo (8):
  mfd: Add support for Skyworks SKY81452 driver
  backlight: Add support Skyworks SKY81452 backlight driver
  devicetree: mfd: Add new SKY81452 mfd binding
  devicetree: backlight: add new SKY81452 backlight binding
  devicetree: Add vendor prefix for Skyworks Solutions, Inc.
  devicetree: i2c: Add SKY81452 to the Trivial Devices list
  regulator: sky81452: Add compatible string for device binding
  devicetree: regulator: sky81452: Add compatible string for device
binding

 .../devicetree/bindings/i2c/trivial-devices.txt|   1 +
 Documentation/devicetree/bindings/mfd/sky81452.txt |  32 ++
 .../bindings/regulator/sky81452-regulator.txt  |   2 +
 .../devicetree/bindings/vendor-prefixes.txt|   1 +
 .../video/backlight/sky81452-backlight.txt |  24 ++
 drivers/mfd/Kconfig|  12 +
 drivers/mfd/Makefile   |   1 +
 drivers/mfd/sky81452.c | 111 +++
 drivers/regulator/sky81452-regulator.c |  22 +-
 drivers/video/backlight/Kconfig|  10 +
 drivers/video/backlight/Makefile   |   1 +
 drivers/video/backlight/sky81452-backlight.c   | 347 +
 include/linux/mfd/sky81452.h   |  32 ++
 13 files changed, 590 insertions(+), 6 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
 create mode 100644 
Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 drivers/video/backlight/sky81452-backlight.c
 create mode 100644 include/linux/mfd/sky81452.h

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator

2014-09-18 Thread Gyungoh Yoo
On Mon, Sep 15, 2014 at 03:35:54PM -0700, Mark Brown wrote:
> On Thu, Sep 11, 2014 at 02:22:30PM +0900, Gyungoh Yoo wrote:
> 
> > By the way,
> > I knew that compatible string is used for binding a driver.
> > http://devicetree.org/Device_Tree_Usage#Understanding_the_compatible_Property
> 
> > And, from kernel 3.6, MFD core has a mechanism for binding of_node
> > to the driver with of_compatible.
> 
> > Can I have a question about if it is possible to assign compatible string
> > for binding driver independently with reusability?
> 
> Look at a driver like the wm831x regulator drivers - they don't have
> device tree but they're reusing a driver for an IP with the base
> register for the IP being specified in the MFD.  If convering to DT it
> might be reasonable to specify this in device tree, though it's marginal
> since the part name in the core is also good enough.

Thank you for your comment.

I agree.
A child driver can look DT up and reference the base information
in MFD with or without compatible string.
My idea was about easy-binding of DT without referencing
parent node because the recent kernel support this infrastructure.
I will add more information in DT to reuse the driver for the IP,
and I will resubmit.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator

2014-09-10 Thread Gyungoh Yoo
On Sat, Sep 06, 2014 at 03:38:28PM +0100, Mark Brown wrote:
> On Fri, Sep 05, 2014 at 10:55:07AM +0900, Gyungoh Yoo wrote:
> > On Mon, Sep 01, 2014 at 11:31:58AM +0100, Mark Brown wrote:
> 
> > > Why is this a good idea - can this driver be used for anything other
> > > than a sky81452?
> 
> > Yes. There is a possibility that this driver will be used by similar
> > device with SKY81452.
> 
> OK, so tha was slightly the wrong question.  What added information is
> forcing the user to create a subnode and specify a compatible string
> providing?  This driver is specifying a block of multiple regulators
> with absolute register addresses hard coded into it, there's no real
> ability to use the driver in a different configuration here.  As soon as
> we see the parent device we already know everything there is to know
> about the IP block, having a separate compatible string just forces the
> user to do more typing for no gain.

Thank you for your comments.

By the way,
I knew that compatible string is used for binding a driver.
http://devicetree.org/Device_Tree_Usage#Understanding_the_compatible_Property

And, from kernel 3.6, MFD core has a mechanism for binding of_node
to the driver with of_compatible.

Can I have a question about if it is possible to assign compatible string
for binding driver independently with reusability?

Thanks,
Gyungoh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2.2 1/7] regulator: sky81452: Adding Skyworks SKY81452 MFD driver

2014-09-04 Thread Gyungoh Yoo
This patch adds SKY81452 MFD driver.
SKY81452 has 2 functions : backlight LED driver and boost converter.
The MFD driver registers I2C regmap and registers the child drivers.

Signed-off-by: Gyungoh Yoo 
---
 drivers/mfd/Kconfig  |  12 +
 drivers/mfd/Makefile |   1 +
 drivers/mfd/sky81452.c   | 111 +++
 include/linux/mfd/sky81452.h |  32 +
 4 files changed, 156 insertions(+)
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 include/linux/mfd/sky81452.h

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index de5abf2..6962b4e 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -626,6 +626,18 @@ config MFD_SM501_GPIO
 lines on the SM501. The platform data is used to supply the
 base number for the first GPIO line to register.
 
+config MFD_SKY81452
+   tristate "Skyworks Solutions SKY81452"
+   select MFD_CORE
+   select REGMAP_I2C
+   depends on I2C
+   help
+ This is the core driver for the Skyworks SKY81452 backlight and
+ voltage regulator device.
+
+ This driver can also be built as a module.  If so, the module
+ will be called sky81452.
+
 config MFD_SMSC
bool "SMSC ECE1099 series chips"
depends on I2C=y
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index f001487..6c2f317 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -169,6 +169,7 @@ obj-$(CONFIG_MFD_AS3711)+= as3711.o
 obj-$(CONFIG_MFD_AS3722)   += as3722.o
 obj-$(CONFIG_MFD_STW481X)  += stw481x.o
 obj-$(CONFIG_MFD_IPAQ_MICRO)   += ipaq-micro.o
+obj-$(CONFIG_MFD_SKY81452) += sky81452.o
 
 intel-soc-pmic-objs:= intel_soc_pmic_core.o intel_soc_pmic_crc.o
 obj-$(CONFIG_INTEL_SOC_PMIC)   += intel-soc-pmic.o
diff --git a/drivers/mfd/sky81452.c b/drivers/mfd/sky81452.c
new file mode 100644
index 000..3455ac7
--- /dev/null
+++ b/drivers/mfd/sky81452.c
@@ -0,0 +1,111 @@
+/*
+ * sky81452.c  SKY81452 MFD driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+static const struct regmap_config sky81452_config = {
+   .reg_bits = 8,
+   .val_bits = 8,
+};
+
+static int sky81452_probe(struct i2c_client *client,
+   const struct i2c_device_id *id)
+{
+   struct device *dev = &client->dev;
+   const struct sky81452_platform_data *pdata = dev_get_platdata(dev);
+   struct mfd_cell cells[2];
+   struct regmap *regmap;
+   int ret;
+
+   if (!pdata) {
+   pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata)
+   return -ENOMEM;
+   }
+
+   regmap = devm_regmap_init_i2c(client, &sky81452_config);
+   if (IS_ERR(regmap)) {
+   dev_err(dev, "failed to initialize I2C: %d", PTR_ERR(regmap));
+   return PTR_ERR(regmap);
+   }
+
+   i2c_set_clientdata(client, regmap);
+
+   memset(cells, 0, sizeof(cells));
+   cells[0].name = "sky81452-bl";
+   cells[0].of_compatible = "skyworks,sky81452-backlight";
+   cells[0].platform_data = pdata->bl_pdata;
+   cells[0].pdata_size = sizeof(*pdata->bl_pdata);
+   cells[1].name = "sky81452-regulator";
+   cells[1].of_compatible = "skyworks,sky81452-regulator";
+   cells[1].platform_data = pdata->regulator_init_data;
+   cells[1].pdata_size = sizeof(*pdata->regulator_init_data);
+
+   ret = mfd_add_devices(dev, -1, cells, ARRAY_SIZE(cells), NULL, 0, NULL);
+   if (ret)
+   dev_err(dev, "failed to add child devices: %d", ret);
+
+   return ret;
+}
+
+static int sky81452_remove(struct i2c_client *client)
+{
+   mfd_remove_devices(&client->dev);
+   return 0;
+}
+
+static const struct i2c_device_id sky81452_ids[] = {
+   { "sky81452" },
+   { }
+};
+MODULE_DEVICE_TABLE(i2c, sky81452_ids);
+
+#ifdef CONFIG_OF
+static const struct of_device_id sky81452_of_match[] = {
+   { .compatible = "skyworks,sky81452", },
+   { }
+};
+MODULE_DEVICE_TAB

Re: [PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator

2014-09-04 Thread Gyungoh Yoo
On Mon, Sep 01, 2014 at 11:31:58AM +0100, Mark Brown wrote:
> On Mon, Sep 01, 2014 at 11:40:18AM +0900, Gyungoh Yoo wrote:
> > Adding compatible attribute for SKY81452 regulator driver.
> 
> >  Required properties:
> > +- compatible   : Must be "skyworks,sky81452-regulator"
> 
> Why is this a good idea - can this driver be used for anything other
> than a sky81452?

Thank you for the answer.

Yes. There is a possibility that this driver will be used by similar device 
with SKY81452.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2 5/7] Adding SKY81452 regulator device tree bindings document

2014-08-31 Thread Gyungoh Yoo
Please ingnore 'only' this patch.

When sky81452-regulator driver was applied before,
The previous version of this document 'sky81452-regulator.txt' was applied.
I will resubmit the changes as incremental patches against current code of 
sky81452-regulator.txt.

I am sorry for confusiong.
Thank you.

On Thu, Aug 28, 2014 at 07:58:38PM +0900, Gyungoh Yoo wrote:
> v2:
> Added 'compatible' attribute in child drivers
> 
> ---
>  .../bindings/regulator/sky81452-regulator.txt  | 18 
> ++
>  1 file changed, 18 insertions(+)
>  create mode 100644 
> Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
> 
> diff --git 
> a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt 
> b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
> new file mode 100644
> index 000..7b9ff18
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
> @@ -0,0 +1,18 @@
> +SKY81452 voltage regulator
> +
> +Required properties:
> +- compatible : Must be "skyworks,sky81452-regulator"
> +- any required generic properties defined in regulator.txt
> +
> +Optional properties:
> +- any available generic properties defined in regulator.txt
> +
> +Example:
> +
> + regulator {
> + compatible = "skyworks,sky81452-regulator";
> + /* generic regulator properties */
> + regulator-name = "touch_en";
> + regulator-min-microvolt = <450>;
> + regulator-max-microvolt = <800>;
> + };
> -- 
> 1.9.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2.2 2/2] dt-bindings: Adding compatible attribute for SKY81452 regulator

2014-08-31 Thread Gyungoh Yoo
Adding compatible attribute for SKY81452 regulator driver.

---
 Documentation/devicetree/bindings/regulator/sky81452-regulator.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt 
b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
index f98b5ed..7b9ff18 100644
--- a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
@@ -1,6 +1,7 @@
 SKY81452 voltage regulator
 
 Required properties:
+- compatible   : Must be "skyworks,sky81452-regulator"
 - any required generic properties defined in regulator.txt
 
 Optional properties:
@@ -8,7 +9,8 @@ Optional properties:
 
 Example:
 
-   regualtor {
+   regulator {
+   compatible = "skyworks,sky81452-regulator";
/* generic regulator properties */
regulator-name = "touch_en";
regulator-min-microvolt = <450>;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2.2 1/2] regulator: sky81452: Adding compatible attribute in DT

2014-08-31 Thread Gyungoh Yoo
Adding compatible attriubute in DT.
Fixed typo.

---
 drivers/regulator/sky81452-regulator.c | 22 --
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/drivers/regulator/sky81452-regulator.c 
b/drivers/regulator/sky81452-regulator.c
index 97aff0c..b9c54c6 100644
--- a/drivers/regulator/sky81452-regulator.c
+++ b/drivers/regulator/sky81452-regulator.c
@@ -68,12 +68,11 @@ static const struct regulator_desc sky81452_reg = {
 static struct regulator_init_data *sky81452_reg_parse_dt(struct device *dev)
 {
struct regulator_init_data *init_data;
-   struct device_node *np;
+   struct device_node *np = of_node_get(dev->of_node);
 
-   np = of_get_child_by_name(dev->parent->of_node, "regulator");
-   if (unlikely(!np)) {
+   if (!np) {
dev_err(dev, "regulator node not found");
-   return NULL;
+   return ERR_PTR(-ENODATA);
}
 
init_data = of_get_regulator_init_data(dev, np);
@@ -107,17 +106,28 @@ static int sky81452_reg_probe(struct platform_device 
*pdev)
config.regmap = dev_get_drvdata(dev->parent);
 
rdev = devm_regulator_register(dev, &sky81452_reg, &config);
-   if (IS_ERR(rdev))
+   if (IS_ERR(rdev)) {
+   dev_err(dev, "failed to register regulator:%d", PTR_ERR(rdev));
return PTR_ERR(rdev);
+   }
 
platform_set_drvdata(pdev, rdev);
 
return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id sky81452_reg_of_match[] = {
+   { .compatible = "skyworks,sky81452-regulator", },
+   { }
+};
+MODULE_DEVICE_TABLE(of, sky81452_reg_of_match);
+#endif
+
 static struct platform_driver sky81452_reg_driver = {
.driver = {
.name = "sky81452-regulator",
+   .of_match_table = of_match_ptr(sky81452_reg_of_match),
},
.probe = sky81452_reg_probe,
 };
@@ -127,4 +137,4 @@ module_platform_driver(sky81452_reg_driver);
 MODULE_DESCRIPTION("Skyworks SKY81452 Regulator driver");
 MODULE_AUTHOR("Gyungoh Yoo ");
 MODULE_LICENSE("GPL");
-MODULE_VERSION("1.0");
+MODULE_VERSION("1.1");
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2.2 0/2] regulator: sky81452: Adding compatible attribute in DT document

2014-08-31 Thread Gyungoh Yoo
Adding comptiable attribute in DT document.
Splitted the patches for each subsystem.
Fixed typo in DT document.

Gyungoh Yoo (2):
  regulator: sky81452: Adding compatible attribute in DT
  dt-bindings: Adding compatible attribute for SKY81452 regulator

 .../bindings/regulator/sky81452-regulator.txt  |  4 +++-
 drivers/regulator/sky81452-regulator.c | 22 --
 2 files changed, 19 insertions(+), 7 deletions(-)

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2 2/7] Adding Skyworks SKY81452 regulator driver

2014-08-28 Thread Gyungoh Yoo
On Thu, Aug 28, 2014 at 12:02:54PM +0100, Mark Brown wrote:
> On Thu, Aug 28, 2014 at 07:46:37PM +0900, Gyungoh Yoo wrote:
> > v2:
> > Added 'compatible' attribute in the driver
> > Added message for exception or errors.
> 
> This driver has already been applied, please send any changes as
> incremental patches against current code.  I would *not* expect to see
> a compatible being defined for a MFD function device though unless it's
> genuinely reusable.

I am really sorry about confusing. I will resumit this regulator driver as the 
incremental patches.

BTW,
as Lee Jones-MFD supporter mentioned,
MFD core provides infrastructure for child drivers using compatible.
https://lkml.org/lkml/2014/8/27/132

I want your opinion.

Thank you.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2.1 1/7] Adding Skyworks SKY81452 MFD driver

2014-08-28 Thread Gyungoh Yoo
v2.1:
Clear mfd_cells to zero before setting.
Added of_compatible into mfd_cells

---
 drivers/mfd/Kconfig  |  12 +
 drivers/mfd/Makefile |   1 +
 drivers/mfd/sky81452.c   | 111 +++
 include/linux/mfd/sky81452.h |  32 +
 4 files changed, 156 insertions(+)
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 include/linux/mfd/sky81452.h

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index de5abf2..6962b4e 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -626,6 +626,18 @@ config MFD_SM501_GPIO
 lines on the SM501. The platform data is used to supply the
 base number for the first GPIO line to register.
 
+config MFD_SKY81452
+   tristate "Skyworks Solutions SKY81452"
+   select MFD_CORE
+   select REGMAP_I2C
+   depends on I2C
+   help
+ This is the core driver for the Skyworks SKY81452 backlight and
+ voltage regulator device.
+
+ This driver can also be built as a module.  If so, the module
+ will be called sky81452.
+
 config MFD_SMSC
bool "SMSC ECE1099 series chips"
depends on I2C=y
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index f001487..6c2f317 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -169,6 +169,7 @@ obj-$(CONFIG_MFD_AS3711)+= as3711.o
 obj-$(CONFIG_MFD_AS3722)   += as3722.o
 obj-$(CONFIG_MFD_STW481X)  += stw481x.o
 obj-$(CONFIG_MFD_IPAQ_MICRO)   += ipaq-micro.o
+obj-$(CONFIG_MFD_SKY81452) += sky81452.o
 
 intel-soc-pmic-objs:= intel_soc_pmic_core.o intel_soc_pmic_crc.o
 obj-$(CONFIG_INTEL_SOC_PMIC)   += intel-soc-pmic.o
diff --git a/drivers/mfd/sky81452.c b/drivers/mfd/sky81452.c
new file mode 100644
index 000..e91b928
--- /dev/null
+++ b/drivers/mfd/sky81452.c
@@ -0,0 +1,111 @@
+/*
+ * sky81452.c  SKY81452 MFD driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+static const struct regmap_config sky81452_config = {
+   .reg_bits = 8,
+   .val_bits = 8,
+};
+
+static int sky81452_probe(struct i2c_client *client,
+   const struct i2c_device_id *id)
+{
+   struct device *dev = &client->dev;
+   const struct sky81452_platform_data *pdata = dev_get_platdata(dev);
+   struct mfd_cell cells[2];
+   struct regmap *regmap;
+   int ret;
+
+   if (!pdata) {
+   pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata)
+   return -ENOMEM;
+   }
+
+   regmap = devm_regmap_init_i2c(client, &sky81452_config);
+   if (IS_ERR(regmap)) {
+   dev_err(dev, "failed to initialize I2C:%d", PTR_ERR(regmap));
+   return PTR_ERR(regmap);
+   }
+
+   i2c_set_clientdata(client, regmap);
+
+   memset(cells, 0, sizeof(cells));
+   cells[0].name = "sky81452-bl";
+   cells[0].of_compatible = "skyworks,sky81452-backlight";
+   cells[0].platform_data = pdata->bl_pdata;
+   cells[0].pdata_size = sizeof(*pdata->bl_pdata);
+   cells[1].name = "sky81452-regulator";
+   cells[1].of_compatible = "skyworks,sky81452-regulator";
+   cells[1].platform_data = pdata->regulator_init_data;
+   cells[1].pdata_size = sizeof(*pdata->regulator_init_data);
+
+   ret = mfd_add_devices(dev, -1, cells, ARRAY_SIZE(cells), NULL, 0, NULL);
+   if (IS_ERR_VALUE(ret))
+   dev_err(dev, "failed to add child device:%d", ret);
+
+   return ret;
+}
+
+static int sky81452_remove(struct i2c_client *client)
+{
+   mfd_remove_devices(&client->dev);
+   return 0;
+}
+
+static const struct i2c_device_id sky81452_ids[] = {
+   { "sky81452" },
+   { }
+};
+MODULE_DEVICE_TABLE(i2c, sky81452_ids);
+
+#ifdef CONFIG_OF
+static const struct of_device_id sky81452_of_match[] = {
+   { .compatible = "skyworks,sky81452", },
+   { }
+};
+MODULE_DEVICE_TABLE(of, sky81452_of_match);
+#endif
+
+static struct i2c_driver sky81452_driver = {
+   .driver = {
+

[PATCH v2 7/7] Adding SKY81452 backlight document

2014-08-28 Thread Gyungoh Yoo
v2:
split the patches

---
 Documentation/backlight/sky81452-backlight.txt | 26 ++
 1 file changed, 26 insertions(+)
 create mode 100644 Documentation/backlight/sky81452-backlight.txt

diff --git a/Documentation/backlight/sky81452-backlight.txt 
b/Documentation/backlight/sky81452-backlight.txt
new file mode 100644
index 000..39f2f8c
--- /dev/null
+++ b/Documentation/backlight/sky81452-backlight.txt
@@ -0,0 +1,26 @@
+backlight driver for sky81452
+==
+
+* Skyworks Solutions SKY81452 :
+  High-Efficiency, Six-Channel White LED Driver with Touch Panel Bias Supply
+
+Description
+---
+The SKY81452 is a highly integrated, high-efficiency LED backlight solution for
+tablets, notebook computers, monitors, and other portable devices.
+
+The SKY81452 supports Direct Pulse Width Modulation(DPWM) dimming and Analog
+Pulse Width Modulation (APWM). In the DPWM dimming mode, the output waveform
+follows the Pulse Width Modulation Input(PWMI) signal and the current level is
+set by I2C control and an external RSET resistor. In the APWM mode, the PWMI
+signal duty and the I2C brightness control signal are multiplied to control
+the output current level.
+
+The driver exports some additional attributes for SKY81452 backlight.
+- enable : Current sink channels. Bit0 is for channel 1, Bit1 is for channel 2
+   and Bit2 is for channel 3. In same way, Bit5 is for channel 6.
+   For example, if 5 is written to this attribute, channel 1 and
+   channel 3 are enabled.
+- open : Shows an open LED fault.
+- short : Shows an short LED fault.
+- fault : Shows information about over-current and over-temperature.
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2 6/7] Adding SKY81452 backlight device tree bindings document

2014-08-28 Thread Gyungoh Yoo
v2:
Added 'compatible' attribute in child drivers

---
 .../video/backlight/sky81452-backlight.txt | 24 ++
 1 file changed, 24 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt

diff --git 
a/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt 
b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
new file mode 100644
index 000..2c2d947
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
@@ -0,0 +1,24 @@
+SKY81452-backlight bindings
+
+Required properties:
+- compatible   : Must be "skyworks,sky81452-backlight"
+
+Optional properties:
+- name : Name of backlight device. Default is 'lcd-backlight'.
+- gpio-enable  : GPIO to use to EN pin.
+- enable   : Enable mask for current sink channel 1 to 6.
+- ignore-pwm   : Ignore both PWM input
+- dpwm-mode: Enable DPWM dimming mode, otherwise Analog dimming 
mode
+- phase-shift  : Enable phase shift mode
+- ovp-level: Over-voltage protection level. Should be between 14 
or 28V.
+- short-detection-threshold: It should be one of 4, 5, 6 and 7V.
+- boost-current-limit  : It should be one of 800, 1100 and 1500mA.
+
+Example:
+
+   backlight {
+   compatible = "skyworks,sky81452-backlight";
+   name = "pwm-backlight";
+   enable = <0x3F>;
+   ignore-pwm;
+   };
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2 5/7] Adding SKY81452 regulator device tree bindings document

2014-08-28 Thread Gyungoh Yoo
v2:
Added 'compatible' attribute in child drivers

---
 .../bindings/regulator/sky81452-regulator.txt  | 18 ++
 1 file changed, 18 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/regulator/sky81452-regulator.txt

diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt 
b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
new file mode 100644
index 000..7b9ff18
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
@@ -0,0 +1,18 @@
+SKY81452 voltage regulator
+
+Required properties:
+- compatible   : Must be "skyworks,sky81452-regulator"
+- any required generic properties defined in regulator.txt
+
+Optional properties:
+- any available generic properties defined in regulator.txt
+
+Example:
+
+   regulator {
+   compatible = "skyworks,sky81452-regulator";
+   /* generic regulator properties */
+   regulator-name = "touch_en";
+   regulator-min-microvolt = <450>;
+   regulator-max-microvolt = <800>;
+   };
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2 4/7] Adding SKY81452 MFD device tree bindings document

2014-08-28 Thread Gyungoh Yoo
v2:
Added 'reg' attribute for I2C address in device tree documents

---
 .../devicetree/bindings/i2c/trivial-devices.txt|  1 +
 Documentation/devicetree/bindings/mfd/sky81452.txt | 32 ++
 .../devicetree/bindings/vendor-prefixes.txt|  1 +
 3 files changed, 34 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt

diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt 
b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
index 6af570e..ff77879 100644
--- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt
+++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
@@ -78,6 +78,7 @@ ramtron,24c64 i2c serial eeprom  (24cxx)
 ricoh,rs5c372a I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
 samsung,24ad0xd1   S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power)
 sii,s35390a2-wire CMOS real-time clock
+skyworks,sky81452  Skyworks SKY81452: Six-Channel White LED Driver with 
Touch Panel Bias Supply
 st-micro,24c256i2c serial eeprom  (24cxx)
 stm,m41t00 Serial Access TIMEKEEPER
 stm,m41t62 Serial real-time clock (RTC) with alarm
diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
b/Documentation/devicetree/bindings/mfd/sky81452.txt
new file mode 100644
index 000..d61904a
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
@@ -0,0 +1,32 @@
+SKY81452 bindings
+
+Required properties:
+- compatible   : Must be "skyworks,sky81452"
+- reg  : I2C slave address
+
+Required child nodes:
+- backlight: container node for backlight following the binding
+   in video/backlight/sky81452-backlight.txt
+- regulator: container node for regulators following the binding
+   in regulator/sky81452-regulator.txt
+
+Example:
+
+   sky81452@2c {
+   compatible = "skyworks,sky81452";
+   reg = <0x2c>;
+
+   backlight {
+   compatible = "skyworks,sky81452-backlight";
+   name = "pwm-backlight";
+   enable = <0x3F>;
+   ignore-pwm;
+   };
+
+   regulator {
+   compatible = "skyworks,sky81452-regulator";
+   regulator-name = "touch_en";
+   regulator-min-microvolt = <450>;
+   regulator-max-microvolt = <800>;
+   };
+   };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
b/Documentation/devicetree/bindings/vendor-prefixes.txt
index ac7269f..c755978 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -125,6 +125,7 @@ silabs  Silicon Laboratories
 simtek
 siiSeiko Instruments, Inc.
 sirf   SiRF Technology, Inc.
+skyworks   Skyworks Solutions, Inc.
 smsc   Standard Microsystems Corporation
 snps   Synopsys, Inc.
 solidrun   SolidRun
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2 3/7] Adding Skyworks SKY81452 backlight driver

2014-08-28 Thread Gyungoh Yoo
v2:
Added 'compatible' attribute in child drivers
Added messages for exception or errors.

---
 drivers/video/backlight/Kconfig  |  10 +
 drivers/video/backlight/Makefile |   1 +
 drivers/video/backlight/sky81452-backlight.c | 347 +++
 include/linux/sky81452-backlight.h   |  47 
 4 files changed, 405 insertions(+)
 create mode 100644 drivers/video/backlight/sky81452-backlight.c
 create mode 100644 include/linux/sky81452-backlight.h

diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index 8d03924..2586fdd 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -409,6 +409,16 @@ config BACKLIGHT_PANDORA
  If you have a Pandora console, say Y to enable the
  backlight driver.
 
+config BACKLIGHT_SKY81452
+   tristate "Backlight driver for SKY81452"
+   depends on BACKLIGHT_CLASS_DEVICE && MFD_SKY81452
+   help
+ If you have a Skyworks SKY81452, say Y to enable the
+ backlight driver.
+
+ To compile this driver as a module, choose M here: the module will
+ be called sky81452-backlight
+
 config BACKLIGHT_TPS65217
tristate "TPS65217 Backlight"
depends on BACKLIGHT_CLASS_DEVICE && MFD_TPS65217
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index fcd50b73..d67073f 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -50,6 +50,7 @@ obj-$(CONFIG_BACKLIGHT_PANDORA)   += pandora_bl.o
 obj-$(CONFIG_BACKLIGHT_PCF50633)   += pcf50633-backlight.o
 obj-$(CONFIG_BACKLIGHT_PWM)+= pwm_bl.o
 obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
+obj-$(CONFIG_BACKLIGHT_SKY81452)   += sky81452-backlight.o
 obj-$(CONFIG_BACKLIGHT_TOSA)   += tosa_bl.o
 obj-$(CONFIG_BACKLIGHT_TPS65217)   += tps65217_bl.o
 obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
diff --git a/drivers/video/backlight/sky81452-backlight.c 
b/drivers/video/backlight/sky81452-backlight.c
new file mode 100644
index 000..d292026
--- /dev/null
+++ b/drivers/video/backlight/sky81452-backlight.c
@@ -0,0 +1,347 @@
+/*
+ * sky81452-backlight.cSKY81452 backlight driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/* registers */
+#define SKY81452_REG0  0x00
+#define SKY81452_REG1  0x01
+#define SKY81452_REG2  0x02
+#define SKY81452_REG4  0x04
+#define SKY81452_REG5  0x05
+
+/* bit mask */
+#define SKY81452_CS0xFF
+#define SKY81452_EN0x3F
+#define SKY81452_IGPW  0x20
+#define SKY81452_PWMMD 0x10
+#define SKY81452_PHASE 0x08
+#define SKY81452_ILIM  0x04
+#define SKY81452_VSHRT 0x03
+#define SKY81452_OCP   0x80
+#define SKY81452_OTMP  0x40
+#define SKY81452_SHRT  0x3F
+#define SKY81452_OPN   0x3F
+
+#define SKY81452_DEFAULT_NAME "lcd-backlight"
+#define SKY81452_MAX_BRIGHTNESS(SKY81452_CS + 1)
+
+#define CTZ(b) __builtin_ctz(b)
+
+static int sky81452_bl_update_status(struct backlight_device *bd)
+{
+   const struct sky81452_bl_platform_data *pdata =
+   dev_get_platdata(bd->dev.parent);
+   const unsigned int brightness = (unsigned int)bd->props.brightness;
+   struct regmap *regmap = bl_get_data(bd);
+   int ret;
+
+   if (brightness > 0) {
+   ret = regmap_write(regmap, SKY81452_REG0, brightness - 1);
+   if (IS_ERR_VALUE(ret))
+   return ret;
+
+   return regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN,
+   pdata->enable << CTZ(SKY81452_EN));
+   }
+
+   return regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN, 0);
+}
+
+static int sky81452_bl_get_brightness(struct backlight_device *bd)
+{
+   return bd->props.brightness;
+}
+
+static const struct backlight_ops sky81452_bl_ops = {
+   .update_status = sky81452_bl_update_status,
+   .get_brightness = sky81452_bl_get_brightness,
+};
+
+static ssize_t sky81452_bl_store_enable(struct device *dev,
+   struct device_attribute *

[PATCH v2 2/7] Adding Skyworks SKY81452 regulator driver

2014-08-28 Thread Gyungoh Yoo
v2:
Added 'compatible' attribute in the driver
Added message for exception or errors.

---
 drivers/regulator/Kconfig  |  11 +++
 drivers/regulator/Makefile |   1 +
 drivers/regulator/sky81452-regulator.c | 140 +
 3 files changed, 152 insertions(+)
 create mode 100644 drivers/regulator/sky81452-regulator.c

diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 2dc8289..2b05964 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -483,6 +483,17 @@ config REGULATOR_S5M8767
 via I2C bus. S5M8767A have 9 Bucks and 28 LDOs output and
 supports DVS mode with 8bits of output voltage control.
 
+config REGULATOR_SKY81452
+   tristate "Skyworks Solutions SKY81452 voltage regulator"
+   depends on MFD_SKY81452
+   help
+ This driver supports Skyworks SKY81452 voltage output regulator
+ via I2C bus. SKY81452 has one voltage linear regulator can be
+ programmed from 4.5V to 20V.
+
+ This driver can also be built as a module. If so, the module
+ will be called sky81452-regulator.
+
 config REGULATOR_ST_PWM
tristate "STMicroelectronics PWM voltage regulator"
depends on ARCH_STI
diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile
index aa4a6aa..d8206ec 100644
--- a/drivers/regulator/Makefile
+++ b/drivers/regulator/Makefile
@@ -65,6 +65,7 @@ obj-$(CONFIG_REGULATOR_RC5T583)  += rc5t583-regulator.o
 obj-$(CONFIG_REGULATOR_S2MPA01) += s2mpa01.o
 obj-$(CONFIG_REGULATOR_S2MPS11) += s2mps11.o
 obj-$(CONFIG_REGULATOR_S5M8767) += s5m8767.o
+obj-$(CONFIG_REGULATOR_SKY81452) += sky81452-regulator.o
 obj-$(CONFIG_REGULATOR_ST_PWM) += st-pwm.o
 obj-$(CONFIG_REGULATOR_STW481X_VMMC) += stw481x-vmmc.o
 obj-$(CONFIG_REGULATOR_TI_ABB) += ti-abb-regulator.o
diff --git a/drivers/regulator/sky81452-regulator.c 
b/drivers/regulator/sky81452-regulator.c
new file mode 100644
index 000..b9c54c6
--- /dev/null
+++ b/drivers/regulator/sky81452-regulator.c
@@ -0,0 +1,140 @@
+/*
+ * sky81452-regulator.cSKY81452 regulator driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/* registers */
+#define SKY81452_REG1  0x01
+#define SKY81452_REG3  0x03
+
+/* bit mask */
+#define SKY81452_LEN   0x40
+#define SKY81452_LOUT  0x1F
+
+static struct regulator_ops sky81452_reg_ops = {
+   .list_voltage = regulator_list_voltage_linear_range,
+   .map_voltage = regulator_map_voltage_linear_range,
+   .get_voltage_sel = regulator_get_voltage_sel_regmap,
+   .set_voltage_sel = regulator_set_voltage_sel_regmap,
+   .enable = regulator_enable_regmap,
+   .disable = regulator_disable_regmap,
+   .is_enabled = regulator_is_enabled_regmap,
+};
+
+static const struct regulator_linear_range sky81452_reg_ranges[] = {
+   REGULATOR_LINEAR_RANGE(450, 0, 14, 25),
+   REGULATOR_LINEAR_RANGE(900, 15, 31, 100),
+};
+
+static const struct regulator_desc sky81452_reg = {
+   .name = "LOUT",
+   .ops = &sky81452_reg_ops,
+   .type = REGULATOR_VOLTAGE,
+   .owner = THIS_MODULE,
+   .n_voltages = SKY81452_LOUT + 1,
+   .linear_ranges = sky81452_reg_ranges,
+   .n_linear_ranges = ARRAY_SIZE(sky81452_reg_ranges),
+   .vsel_reg = SKY81452_REG3,
+   .vsel_mask = SKY81452_LOUT,
+   .enable_reg = SKY81452_REG1,
+   .enable_mask = SKY81452_LEN,
+};
+
+#ifdef CONFIG_OF
+static struct regulator_init_data *sky81452_reg_parse_dt(struct device *dev)
+{
+   struct regulator_init_data *init_data;
+   struct device_node *np = of_node_get(dev->of_node);
+
+   if (!np) {
+   dev_err(dev, "regulator node not found");
+   return ERR_PTR(-ENODATA);
+   }
+
+   init_data = of_get_regulator_init_data(dev, np);
+
+   of_node_put(np);
+   return init_data;
+}
+#else
+static struct regulator_init_data *sky81452_reg_parse_dt(struct device *dev)
+{
+   return ERR_PTR(-EINVAL);
+}
+#endif
+
+static int sky81452_reg_probe(struct platform_device *pdev)
+{
+   struct device *dev = &pdev->dev;
+   const struct regulator_init_da

[PATCH v2 1/7] Adding Skyworks SKY81452 MFD driver

2014-08-28 Thread Gyungoh Yoo
v2:
Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
Added message for exception or errors.

---
 drivers/mfd/Kconfig  |  12 +
 drivers/mfd/Makefile |   1 +
 drivers/mfd/sky81452.c   | 108 +++
 include/linux/mfd/sky81452.h |  32 +
 4 files changed, 153 insertions(+)
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 include/linux/mfd/sky81452.h

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index de5abf2..6962b4e 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -626,6 +626,18 @@ config MFD_SM501_GPIO
 lines on the SM501. The platform data is used to supply the
 base number for the first GPIO line to register.
 
+config MFD_SKY81452
+   tristate "Skyworks Solutions SKY81452"
+   select MFD_CORE
+   select REGMAP_I2C
+   depends on I2C
+   help
+ This is the core driver for the Skyworks SKY81452 backlight and
+ voltage regulator device.
+
+ This driver can also be built as a module.  If so, the module
+ will be called sky81452.
+
 config MFD_SMSC
bool "SMSC ECE1099 series chips"
depends on I2C=y
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index f001487..6c2f317 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -169,6 +169,7 @@ obj-$(CONFIG_MFD_AS3711)+= as3711.o
 obj-$(CONFIG_MFD_AS3722)   += as3722.o
 obj-$(CONFIG_MFD_STW481X)  += stw481x.o
 obj-$(CONFIG_MFD_IPAQ_MICRO)   += ipaq-micro.o
+obj-$(CONFIG_MFD_SKY81452) += sky81452.o
 
 intel-soc-pmic-objs:= intel_soc_pmic_core.o intel_soc_pmic_crc.o
 obj-$(CONFIG_INTEL_SOC_PMIC)   += intel-soc-pmic.o
diff --git a/drivers/mfd/sky81452.c b/drivers/mfd/sky81452.c
new file mode 100644
index 000..c0ca812
--- /dev/null
+++ b/drivers/mfd/sky81452.c
@@ -0,0 +1,108 @@
+/*
+ * sky81452.c  SKY81452 MFD driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+static const struct regmap_config sky81452_config = {
+   .reg_bits = 8,
+   .val_bits = 8,
+};
+
+static int sky81452_probe(struct i2c_client *client,
+   const struct i2c_device_id *id)
+{
+   struct device *dev = &client->dev;
+   const struct sky81452_platform_data *pdata = dev_get_platdata(dev);
+   struct mfd_cell cells[2];
+   struct regmap *regmap;
+   int ret;
+
+   if (!pdata) {
+   pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata)
+   return -ENOMEM;
+   }
+
+   regmap = devm_regmap_init_i2c(client, &sky81452_config);
+   if (IS_ERR(regmap)) {
+   dev_err(dev, "failed to initialize I2C:%d", PTR_ERR(regmap));
+   return PTR_ERR(regmap);
+   }
+
+   i2c_set_clientdata(client, regmap);
+
+   cells[0].name = "sky81452-bl";
+   cells[0].platform_data = pdata->bl_pdata;
+   cells[0].pdata_size = sizeof(*pdata->bl_pdata);
+   cells[1].name = "sky81452-regulator";
+   cells[1].platform_data = pdata->regulator_init_data;
+   cells[1].pdata_size = sizeof(*pdata->regulator_init_data);
+
+   ret = mfd_add_devices(dev, -1, cells, ARRAY_SIZE(cells), NULL, 0, NULL);
+   if (IS_ERR_VALUE(ret))
+   dev_err(dev, "failed to add child device:%d", ret);
+
+   return ret;
+}
+
+static int sky81452_remove(struct i2c_client *client)
+{
+   mfd_remove_devices(&client->dev);
+   return 0;
+}
+
+static const struct i2c_device_id sky81452_ids[] = {
+   { "sky81452" },
+   { }
+};
+MODULE_DEVICE_TABLE(i2c, sky81452_ids);
+
+#ifdef CONFIG_OF
+static const struct of_device_id sky81452_of_match[] = {
+   { .compatible = "skyworks,sky81452", },
+   { }
+};
+MODULE_DEVICE_TABLE(of, sky81452_of_match);
+#endif
+
+static struct i2c_driver sky81452_driver = {
+   .driver = {
+   .name = "sky81452",
+   .of_match_table = of_match_ptr(sky81452_of_match),
+   },

[PATCH v2 0/7] Adding Skyworks SKY81452 device drivers

2014-08-28 Thread Gyungoh Yoo
This patch set includes regulator and backlight driver for SKY81452.
Also it includes documents for device tree and module.

v2:
Split the patches for each sub-system.
Added 'reg' attribute for I2C address in device tree documents
Added 'compatible' attribute in child drivers
Renamed CONFIG_SKY81452 to CONFIG_MFD_SKY81452
Changed the dependency from I2C=y to I2C, for CONFIG_MFD_SKY81452
Added message for exception or errors.

Gyungoh Yoo (7):
  Adding Skyworks SKY81452 MFD driver
  Adding Skyworks SKY81452 regulator driver
  Adding Skyworks SKY81452 backlight driver
  Adding SKY81452 MFD device tree bindings document
  Adding SKY81452 regulator device tree bindings document
  Adding SKY81452 backlight device tree bindings document
  Adding SKY81452 backlight document

 Documentation/backlight/sky81452-backlight.txt |  26 ++
 .../devicetree/bindings/i2c/trivial-devices.txt|   1 +
 Documentation/devicetree/bindings/mfd/sky81452.txt |  32 ++
 .../bindings/regulator/sky81452-regulator.txt  |  18 ++
 .../devicetree/bindings/vendor-prefixes.txt|   1 +
 .../video/backlight/sky81452-backlight.txt |  24 ++
 drivers/mfd/Kconfig|  12 +
 drivers/mfd/Makefile   |   1 +
 drivers/mfd/sky81452.c | 108 +++
 drivers/regulator/Kconfig  |  11 +
 drivers/regulator/Makefile |   1 +
 drivers/regulator/sky81452-regulator.c | 140 +
 drivers/video/backlight/Kconfig|  10 +
 drivers/video/backlight/Makefile   |   1 +
 drivers/video/backlight/sky81452-backlight.c   | 347 +
 include/linux/mfd/sky81452.h   |  32 ++
 include/linux/sky81452-backlight.h |  47 +++
 17 files changed, 812 insertions(+)
 create mode 100644 Documentation/backlight/sky81452-backlight.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
 create mode 100644 
Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
 create mode 100644 
Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 drivers/regulator/sky81452-regulator.c
 create mode 100644 drivers/video/backlight/sky81452-backlight.c
 create mode 100644 include/linux/mfd/sky81452.h
 create mode 100644 include/linux/sky81452-backlight.h

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 1/3] Adding Skyworks SKY81452 MFD driver

2014-08-27 Thread Gyungoh Yoo
On Wed, Aug 27, 2014 at 09:39:21AM +0100, Lee Jones wrote:
> On Wed, 27 Aug 2014, Gyungoh Yoo wrote:
> > On Tue, Aug 26, 2014 at 09:22:58AM +0100, Lee Jones wrote:
> > > On Mon, 25 Aug 2014, Gyungoh Yoo wrote:
> > > > On Thu, Aug 21, 2014 at 10:45:02AM +0100, Lee Jones wrote:
> > > > > When you send patch-sets, you should send them connected to one
> > > > > another AKA threaded.  That way, when we're reviewing we can look at
> > > > > the other patches in the set for reference.  See the man page for `git
> > > > > send-email` for details.
> > > > > 
> > > > > 
> > > > > 
> > > > > > Signed-off-by: Gyungoh Yoo 
> > > > > > ---
> > > 
> > > [...]
> > > 
> > > > > > +static int sky81452_register_devices(struct device *dev,
> > > > > > +   const struct sky81452_platform_data *pdata)
> > > > > > +{
> > > > > > +   struct mfd_cell cells[] = {
> > > > > > +   {
> > > > > > +   .name = "sky81452-bl",
> > > > > > +   .platform_data = pdata->bl_pdata,
> > > > > > +   .pdata_size = sizeof(*pdata->bl_pdata),
> > > > > 
> > > > > Have you tested this with DT?
> > > > > 
> > > > > You're not passing the compatible string and not using
> > > > > of_platform_populate() so I'm struggling to see how it would work
> > > > > properly.
> > > > 
> > > > sky81452-bl and regulator-sky81452 is parsing the information
> > > > in regulator node of its parent node. So I thought these 2 drivers
> > > > don't need compatible attribute. That is what it didn't have
> > > > compatible string.
> > > > Is is mandatory that all drivers should have compatible attribute?
> > > 
> > > How do they obtain their DT nodes?
> > 
> > The backlight driver which is one of the child driver is obtain its DT node 
> > like this
> > 
> > np = of_get_child_by_name(dev->parent->of_node, "backlight");
> 
> The MFD core provides infrastructure so you don't have to do this.
> 
> Just place the compatible string in 'struct mfd_cell cells[]' and the
> core will match and populate dev->of_node for you.

I see. Thank you.

> 
> > > [...]
> > > 
> > > > > > +   return mfd_add_devices(dev, -1, cells, ARRAY_SIZE(cells),
> > > > > > +   NULL, 0, NULL);
> > > > > 
> > > > > This doesn't really need to be in a function of its own.  Please put
> > > > > it in .probe().  Also check for the return value and present the user
> > > > > with an error message if it fails.
> > > > 
> > > > I think this need to be, in case of !CONFIG_OF.
> > > > Can you please explain more in details?
> > > 
> > > Then how to you obtain the shared register map you created?
> > 
> > regmap is stored in driver data in MFD.
> > 
> > i2c_set_clientdata(client, regmap);
> > 
> > The child drivers obain the regmap from the parent.
> > 
> > struct regmap *regmap = dev_get_drvdata(dev->parent);
> 
> Ah yes, of course you do.  Silly of me to miss this.
> 
> I also just noticed that you're also manually populating the
> chlidren's platform data.  It's easier if you do this from the child
> device drivers:
> 
>   const struct sky81452_platform_data ppdata = dev_get_platdata(dev->parent);
>   const struct sky81452_bl_platform_data = pdata = ppdata->bl_pdata;

I think it could be a good way for this. Thank you.

> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 1/3] Adding Skyworks SKY81452 MFD driver

2014-08-26 Thread Gyungoh Yoo
On Tue, Aug 26, 2014 at 09:22:58AM +0100, Lee Jones wrote:
> On Mon, 25 Aug 2014, Gyungoh Yoo wrote:
> > On Thu, Aug 21, 2014 at 10:45:02AM +0100, Lee Jones wrote:
> > > When you send patch-sets, you should send them connected to one
> > > another AKA threaded.  That way, when we're reviewing we can look at
> > > the other patches in the set for reference.  See the man page for `git
> > > send-email` for details.
> > > 
> > > 
> > > 
> > > > Signed-off-by: Gyungoh Yoo 
> > > > ---
> 
> [...]
> 
> > > > +static int sky81452_register_devices(struct device *dev,
> > > > +   const struct sky81452_platform_data *pdata)
> > > > +{
> > > > +   struct mfd_cell cells[] = {
> > > > +   {
> > > > +   .name = "sky81452-bl",
> > > > +   .platform_data = pdata->bl_pdata,
> > > > +   .pdata_size = sizeof(*pdata->bl_pdata),
> > > 
> > > Have you tested this with DT?
> > > 
> > > You're not passing the compatible string and not using
> > > of_platform_populate() so I'm struggling to see how it would work
> > > properly.
> > 
> > sky81452-bl and regulator-sky81452 is parsing the information
> > in regulator node of its parent node. So I thought these 2 drivers
> > don't need compatible attribute. That is what it didn't have
> > compatible string.
> > Is is mandatory that all drivers should have compatible attribute?
> 
> How do they obtain their DT nodes?

The backlight driver which is one of the child driver is obtain its DT node 
like this

np = of_get_child_by_name(dev->parent->of_node, "backlight");

> 
> [...]
> 
> > > > +   return mfd_add_devices(dev, -1, cells, ARRAY_SIZE(cells),
> > > > +   NULL, 0, NULL);
> > > 
> > > This doesn't really need to be in a function of its own.  Please put
> > > it in .probe().  Also check for the return value and present the user
> > > with an error message if it fails.
> > 
> > I think this need to be, in case of !CONFIG_OF.
> > Can you please explain more in details?
> 
> Then how to you obtain the shared register map you created?

regmap is stored in driver data in MFD.

i2c_set_clientdata(client, regmap);

The child drivers obain the regmap from the parent.

struct regmap *regmap = dev_get_drvdata(dev->parent);

> 
> [...]
> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 1/3] Adding Skyworks SKY81452 MFD driver

2014-08-25 Thread Gyungoh Yoo
Thank you for reviewing the patches.

On Thu, Aug 21, 2014 at 10:45:02AM +0100, Lee Jones wrote:
> When you send patch-sets, you should send them connected to one
> another AKA threaded.  That way, when we're reviewing we can look at
> the other patches in the set for reference.  See the man page for `git
> send-email` for details.
> 
> 
> 
> > Signed-off-by: Gyungoh Yoo 
> > ---
> >  Documentation/devicetree/bindings/mfd/sky81452.txt |  24 +
> 
> Binding documents should be sent separately:
> 
> See: Documentation/devicetree/bindings/submitting-patches.txt
> 
> >  .../devicetree/bindings/vendor-prefixes.txt|   1 +
> 
> This can go in with the documentation.

I see. I will re-send them separately.

> 
> >  drivers/mfd/Kconfig|  12 +++
> >  drivers/mfd/Makefile   |   1 +
> >  drivers/mfd/sky81452.c | 113 
> > +
> >  include/linux/mfd/sky81452.h   |  32 ++
> >  6 files changed, 183 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
> >  create mode 100644 drivers/mfd/sky81452.c
> >  create mode 100644 include/linux/mfd/sky81452.h
> > 
> > diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
> > b/Documentation/devicetree/bindings/mfd/sky81452.txt
> > new file mode 100644
> > index 000..5fb0b4f
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
> > @@ -0,0 +1,24 @@
> > +SKY81452 bindings
> > +
> > +Required properties:
> > +- compatible   : Must be "skyworks,sky81452"
> > +
> > +Required child nodes:
> > +- backlight: container node for backlight following the binding
> > +   in video/backlight/sky81452-backlight.txt
> > +- regulator: container node for regulators following the binding
> > +   in regulator/sky81452-regulator.txt
> > +
> > +Example:
> > +
> > +   sky81452@2C {
> 
> Lower case.
> 
> > +   compatible = "skyworks,sky81452";
> 
> "reg"?
> 
> You also need to document the 'compatible' and 'reg' properties.
> 
> > +   backlight {
> > +   ...
> > +   };
> > +
> > +   regulator {
> > +   ...
> > +   };
> > +   };
> 
> I think it would be helpful to place a fully populated example in
> here.

I will update it.

> 
> > diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
> > b/Documentation/devicetree/bindings/vendor-prefixes.txt
> > index d415b38..ce76e10 100644
> > --- a/Documentation/devicetree/bindings/vendor-prefixes.txt
> > +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
> > @@ -122,6 +122,7 @@ silabs  Silicon Laboratories
> >  simtek
> >  siiSeiko Instruments, Inc.
> >  sirf   SiRF Technology, Inc.
> > +skyworks   Skyworks Solutions, Inc.
> >  smsc   Standard Microsystems Corporation
> >  snps   Synopsys, Inc.
> >  spansion   Spansion Inc.
> > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> > index de5abf2..acfb2e5 100644
> > --- a/drivers/mfd/Kconfig
> > +++ b/drivers/mfd/Kconfig
> > @@ -626,6 +626,18 @@ config MFD_SM501_GPIO
> >  lines on the SM501. The platform data is used to supply the
> >  base number for the first GPIO line to register.
> >  
> > +config SKY81452
> 
> MFD_SKY81452
> 
> > +   tristate "Skyworks Solutions SKY81452"
> > +   select MFD_CORE
> > +   select REGMAP_I2C
> > +   depends on I2C=y
> 
> Why do you need I2C to be built-in, rather than as a module?

It will depend only on I2C.

> 
> > +   help
> > + This is the core driver for the Skyworks SKY81452 backlight and
> > + voltage regulator device.
> > +
> > + This driver can also be built as a module.  If so, the module
> > + will be called sky81452.
> > +
> >  config MFD_SMSC
> > bool "SMSC ECE1099 series chips"
> > depends on I2C=y
> > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> > index f001487..191c656 100644
> > --- a/drivers/mfd/Makefile
> > +++ b/drivers/mfd/Makefile
> > @@ -169,6 +169,7 @@ obj-$(CONFIG_MFD_AS3711)    += as3711.o
> >  obj-$(CONFIG_MFD_AS3722)   += as3722.o
> >  obj-$(CONFIG_MFD_STW481X)  += stw481x.o
> >  obj-$(CONFIG_MFD_IPAQ_MICRO)   += ipaq-micro.o
> > +obj

Re: [PATCH 1/3] Adding Skyworks SKY81452 MFD driver

2014-08-11 Thread Gyungoh Yoo
Hello,

Can somebody please review if the code has anything to improve?

Thanks. 

On Fri, Aug 08, 2014 at 06:08:19PM +0900, Gyungoh Yoo wrote:
> Signed-off-by: Gyungoh Yoo 
> ---
>  Documentation/devicetree/bindings/mfd/sky81452.txt |  24 +
>  .../devicetree/bindings/vendor-prefixes.txt|   1 +
>  drivers/mfd/Kconfig|  12 +++
>  drivers/mfd/Makefile   |   1 +
>  drivers/mfd/sky81452.c | 113 
> +
>  include/linux/mfd/sky81452.h   |  32 ++
>  6 files changed, 183 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
>  create mode 100644 drivers/mfd/sky81452.c
>  create mode 100644 include/linux/mfd/sky81452.h
> 
> diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
> b/Documentation/devicetree/bindings/mfd/sky81452.txt
> new file mode 100644
> index 000..5fb0b4f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
> @@ -0,0 +1,24 @@
> +SKY81452 bindings
> +
> +Required properties:
> +- compatible : Must be "skyworks,sky81452"
> +
> +Required child nodes:
> +- backlight  : container node for backlight following the binding
> + in video/backlight/sky81452-backlight.txt
> +- regulator  : container node for regulators following the binding
> + in regulator/sky81452-regulator.txt
> +
> +Example:
> +
> + sky81452@2C {
> + compatible = "skyworks,sky81452";
> +
> + backlight {
> + ...
> + };
> +
> + regulator {
> + ...
> + };
> + };
> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
> b/Documentation/devicetree/bindings/vendor-prefixes.txt
> index d415b38..ce76e10 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.txt
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
> @@ -122,6 +122,7 @@ silabsSilicon Laboratories
>  simtek
>  sii  Seiko Instruments, Inc.
>  sirf SiRF Technology, Inc.
> +skyworks Skyworks Solutions, Inc.
>  smsc Standard Microsystems Corporation
>  snps Synopsys, Inc.
>  spansion Spansion Inc.
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index de5abf2..acfb2e5 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -626,6 +626,18 @@ config MFD_SM501_GPIO
>lines on the SM501. The platform data is used to supply the
>base number for the first GPIO line to register.
>  
> +config SKY81452
> + tristate "Skyworks Solutions SKY81452"
> + select MFD_CORE
> + select REGMAP_I2C
> + depends on I2C=y
> + help
> +   This is the core driver for the Skyworks SKY81452 backlight and
> +   voltage regulator device.
> +
> +   This driver can also be built as a module.  If so, the module
> +   will be called sky81452.
> +
>  config MFD_SMSC
> bool "SMSC ECE1099 series chips"
> depends on I2C=y
> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> index f001487..191c656 100644
> --- a/drivers/mfd/Makefile
> +++ b/drivers/mfd/Makefile
> @@ -169,6 +169,7 @@ obj-$(CONFIG_MFD_AS3711)  += as3711.o
>  obj-$(CONFIG_MFD_AS3722) += as3722.o
>  obj-$(CONFIG_MFD_STW481X)+= stw481x.o
>  obj-$(CONFIG_MFD_IPAQ_MICRO) += ipaq-micro.o
> +obj-$(CONFIG_SKY81452)   += sky81452.o
>  
>  intel-soc-pmic-objs  := intel_soc_pmic_core.o intel_soc_pmic_crc.o
>  obj-$(CONFIG_INTEL_SOC_PMIC) += intel-soc-pmic.o
> diff --git a/drivers/mfd/sky81452.c b/drivers/mfd/sky81452.c
> new file mode 100644
> index 000..566912f
> --- /dev/null
> +++ b/drivers/mfd/sky81452.c
> @@ -0,0 +1,113 @@
> +/*
> + * sky81452.cSKY81452 MFD driver
> + *
> + * Copyright 2014 Skyworks Solutions Inc.
> + * Author : Gyungoh Yoo 
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the
> + * Free Software Foundation; either version 2, or (at your option) any
> + * later version.
> + *
> + * This program is distributed in the hope that it will be useful, but
> + * WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License along
> + * with this program; if not, see <http://www.gnu.org/licenses/>.
&g

[PATCH 3/3] Adding Skyworks SKY81452 backlight driver

2014-08-08 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 Documentation/backlight/sky81452-backlight.txt |  26 ++
 .../video/backlight/sky81452-backlight.txt |  20 ++
 drivers/video/backlight/Kconfig|  10 +
 drivers/video/backlight/Makefile   |   1 +
 drivers/video/backlight/sky81452-backlight.c   | 334 +
 include/linux/sky81452-backlight.h |  47 +++
 6 files changed, 438 insertions(+)
 create mode 100644 Documentation/backlight/sky81452-backlight.txt
 create mode 100644 
Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
 create mode 100644 drivers/video/backlight/sky81452-backlight.c
 create mode 100644 include/linux/sky81452-backlight.h

diff --git a/Documentation/backlight/sky81452-backlight.txt 
b/Documentation/backlight/sky81452-backlight.txt
new file mode 100644
index 000..e5a18ee
--- /dev/null
+++ b/Documentation/backlight/sky81452-backlight.txt
@@ -0,0 +1,26 @@
+backlight driver for sky81452
+==
+
+* Skyworks Solutions SKY81452 :
+  High-Efficiency, Six-Channel White LED Driver with Touch Panel Bias Supply
+
+Description
+---
+The SKY81452 is a highly integrated, high-efficiency LED backlight solution for
+tablets, notebook computers, monitors, and other portable devices.
+
+The SKY81452 supports Direct Pulse Width Modulation(DPWM) dimming and Analog
+Pulse Width Modulation (APWM). In the DPWM dimming mode, the output waveform
+follows the Pulse Width Modulation Input(PWMI) signal and the current level is
+set by I2C control and an external RSET resistor. In the APWM mode, the PWMI
+signal duty and the I2C brightness control signal are multiplied to control
+the output current level.
+
+The driver exports some additional attributes for SKY81452.
+- enable : Current sink channels. Bit0 is for channel 1, Bit1 is for channel 2
+   and Bit2 is for channel 3. In same way, Bit5 is for channel 6.
+   For example, if 5 is written to this attribute, channel 1 and
+   channel 3 are enabled.
+- open : Shows an open LED fault.
+- short : Shows an short LED fault.
+- fault : Shows information about over-current and over-temperature.
diff --git 
a/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt 
b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
new file mode 100644
index 000..ebedc33
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
@@ -0,0 +1,20 @@
+SKY81452-backlight bindings
+
+Optional properties:
+- name : Name of backlight device. Default is 'lcd-backlight'.
+- gpio-enable  : GPIO to use to EN pin.
+- enable   : Enable mask for current sink channel 1 to 6.
+- ignore-pwm   : Ignore both PWM input
+- dpwm-mode: Enable DPWM dimming mode, otherwise Analog dimming 
mode
+- phase-shift  : Enable phase shift mode
+- ovp-level: Over-voltage protection level. Should be between 14 
or 28V.
+- short-detection-threshold : It should be one of 4, 5, 6 and 7V.
+- boost-current-limit  : It should be one of 800, 1100 and 1500mA.
+
+Example:
+
+   backlight {
+   name = "pwm-backlight";
+   enable = <0x3F>;
+   ignore-pwm;
+   };
diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index cc153f5..7b92a1b 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -420,6 +420,16 @@ config BACKLIGHT_PANDORA
  If you have a Pandora console, say Y to enable the
  backlight driver.
 
+config BACKLIGHT_SKY81452
+   tristate "Backlight driver for SKY81452"
+   depends on BACKLIGHT_CLASS_DEVICE && SKY81452
+   help
+ If you have a Skyworks SKY81452, say Y to enable the
+ backlight driver.
+
+ To compile this driver as a module, choose M here: the module will
+ be called sky81452-backlight
+
 config BACKLIGHT_TPS65217
tristate "TPS65217 Backlight"
depends on BACKLIGHT_CLASS_DEVICE && MFD_TPS65217
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index a9ea34a..7e8136f 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -51,6 +51,7 @@ obj-$(CONFIG_BACKLIGHT_PANDORA)   += pandora_bl.o
 obj-$(CONFIG_BACKLIGHT_PCF50633)   += pcf50633-backlight.o
 obj-$(CONFIG_BACKLIGHT_PWM)+= pwm_bl.o
 obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
+obj-$(CONFIG_BACKLIGHT_SKY81452)   += sky81452-backlight.o
 obj-$(CONFIG_BACKLIGHT_TOSA)   += tosa_bl.o
 obj-$(CONFIG_BACKLIGHT_TPS65217)   += tps65217_bl.o
 obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
diff --git a/drivers/video/backlight/sky81452-backlight.c 
b/drivers/video/backlight/sky81452-backlight.c
new file mode 100644
index 000

[PATCH 2/3] Adding Skyworks SKY81452 regulator driver

2014-08-08 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 .../bindings/regulator/sky81452-regulator.txt  |  16 +++
 drivers/regulator/Kconfig  |  11 ++
 drivers/regulator/Makefile |   1 +
 drivers/regulator/sky81452-regulator.c | 130 +
 4 files changed, 158 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
 create mode 100644 drivers/regulator/sky81452-regulator.c

diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt 
b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
new file mode 100644
index 000..f98b5ed
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
@@ -0,0 +1,16 @@
+SKY81452 voltage regulator
+
+Required properties:
+- any required generic properties defined in regulator.txt
+
+Optional properties:
+- any available generic properties defined in regulator.txt
+
+Example:
+
+   regualtor {
+   /* generic regulator properties */
+   regulator-name = "touch_en";
+   regulator-min-microvolt = <450>;
+   regulator-max-microvolt = <800>;
+   };
diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 2dc8289..f6bf208 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -483,6 +483,17 @@ config REGULATOR_S5M8767
 via I2C bus. S5M8767A have 9 Bucks and 28 LDOs output and
 supports DVS mode with 8bits of output voltage control.
 
+config REGULATOR_SKY81452
+   tristate "Skyworks Solutions SKY81452 voltage regulator"
+   depends on SKY81452
+   help
+ This driver supports Skyworks SKY81452 voltage output regulator
+ via I2C bus. SKY81452 has one voltage linear regulator can be
+ programmed from 4.5V to 20V.
+
+ This driver can also be built as a module. If so, the module
+ will be called sky81452-regulator.
+
 config REGULATOR_ST_PWM
tristate "STMicroelectronics PWM voltage regulator"
depends on ARCH_STI
diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile
index aa4a6aa..d8206ec 100644
--- a/drivers/regulator/Makefile
+++ b/drivers/regulator/Makefile
@@ -65,6 +65,7 @@ obj-$(CONFIG_REGULATOR_RC5T583)  += rc5t583-regulator.o
 obj-$(CONFIG_REGULATOR_S2MPA01) += s2mpa01.o
 obj-$(CONFIG_REGULATOR_S2MPS11) += s2mps11.o
 obj-$(CONFIG_REGULATOR_S5M8767) += s5m8767.o
+obj-$(CONFIG_REGULATOR_SKY81452) += sky81452-regulator.o
 obj-$(CONFIG_REGULATOR_ST_PWM) += st-pwm.o
 obj-$(CONFIG_REGULATOR_STW481X_VMMC) += stw481x-vmmc.o
 obj-$(CONFIG_REGULATOR_TI_ABB) += ti-abb-regulator.o
diff --git a/drivers/regulator/sky81452-regulator.c 
b/drivers/regulator/sky81452-regulator.c
new file mode 100644
index 000..97aff0c
--- /dev/null
+++ b/drivers/regulator/sky81452-regulator.c
@@ -0,0 +1,130 @@
+/*
+ * sky81452-regulator.cSKY81452 regulator driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/* registers */
+#define SKY81452_REG1  0x01
+#define SKY81452_REG3  0x03
+
+/* bit mask */
+#define SKY81452_LEN   0x40
+#define SKY81452_LOUT  0x1F
+
+static struct regulator_ops sky81452_reg_ops = {
+   .list_voltage = regulator_list_voltage_linear_range,
+   .map_voltage = regulator_map_voltage_linear_range,
+   .get_voltage_sel = regulator_get_voltage_sel_regmap,
+   .set_voltage_sel = regulator_set_voltage_sel_regmap,
+   .enable = regulator_enable_regmap,
+   .disable = regulator_disable_regmap,
+   .is_enabled = regulator_is_enabled_regmap,
+};
+
+static const struct regulator_linear_range sky81452_reg_ranges[] = {
+   REGULATOR_LINEAR_RANGE(450, 0, 14, 25),
+   REGULATOR_LINEAR_RANGE(900, 15, 31, 100),
+};
+
+static const struct regulator_desc sky81452_reg = {
+   .name = "LOUT",
+   .ops = &sky81452_reg_ops,
+   .type = REGULATOR_VOLTAGE,
+   .owner = THIS_MODULE,
+   .n_voltages = SKY81452_LOUT + 1,
+   .linear_ranges = sky81452_reg_ranges,
+   .n_linear_ranges = ARRAY_SIZE(sky81452_reg_ranges),
+   .vsel_reg = SKY81452

[PATCH 1/3] Adding Skyworks SKY81452 MFD driver

2014-08-08 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 Documentation/devicetree/bindings/mfd/sky81452.txt |  24 +
 .../devicetree/bindings/vendor-prefixes.txt|   1 +
 drivers/mfd/Kconfig|  12 +++
 drivers/mfd/Makefile   |   1 +
 drivers/mfd/sky81452.c | 113 +
 include/linux/mfd/sky81452.h   |  32 ++
 6 files changed, 183 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 include/linux/mfd/sky81452.h

diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
b/Documentation/devicetree/bindings/mfd/sky81452.txt
new file mode 100644
index 000..5fb0b4f
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
@@ -0,0 +1,24 @@
+SKY81452 bindings
+
+Required properties:
+- compatible   : Must be "skyworks,sky81452"
+
+Required child nodes:
+- backlight: container node for backlight following the binding
+   in video/backlight/sky81452-backlight.txt
+- regulator: container node for regulators following the binding
+   in regulator/sky81452-regulator.txt
+
+Example:
+
+   sky81452@2C {
+   compatible = "skyworks,sky81452";
+
+   backlight {
+   ...
+   };
+
+   regulator {
+   ...
+   };
+   };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
b/Documentation/devicetree/bindings/vendor-prefixes.txt
index d415b38..ce76e10 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -122,6 +122,7 @@ silabs  Silicon Laboratories
 simtek
 siiSeiko Instruments, Inc.
 sirf   SiRF Technology, Inc.
+skyworks   Skyworks Solutions, Inc.
 smsc   Standard Microsystems Corporation
 snps   Synopsys, Inc.
 spansion   Spansion Inc.
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index de5abf2..acfb2e5 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -626,6 +626,18 @@ config MFD_SM501_GPIO
 lines on the SM501. The platform data is used to supply the
 base number for the first GPIO line to register.
 
+config SKY81452
+   tristate "Skyworks Solutions SKY81452"
+   select MFD_CORE
+   select REGMAP_I2C
+   depends on I2C=y
+   help
+ This is the core driver for the Skyworks SKY81452 backlight and
+ voltage regulator device.
+
+ This driver can also be built as a module.  If so, the module
+ will be called sky81452.
+
 config MFD_SMSC
bool "SMSC ECE1099 series chips"
depends on I2C=y
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index f001487..191c656 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -169,6 +169,7 @@ obj-$(CONFIG_MFD_AS3711)+= as3711.o
 obj-$(CONFIG_MFD_AS3722)   += as3722.o
 obj-$(CONFIG_MFD_STW481X)  += stw481x.o
 obj-$(CONFIG_MFD_IPAQ_MICRO)   += ipaq-micro.o
+obj-$(CONFIG_SKY81452) += sky81452.o
 
 intel-soc-pmic-objs:= intel_soc_pmic_core.o intel_soc_pmic_crc.o
 obj-$(CONFIG_INTEL_SOC_PMIC)   += intel-soc-pmic.o
diff --git a/drivers/mfd/sky81452.c b/drivers/mfd/sky81452.c
new file mode 100644
index 000..566912f
--- /dev/null
+++ b/drivers/mfd/sky81452.c
@@ -0,0 +1,113 @@
+/*
+ * sky81452.c  SKY81452 MFD driver
+ *
+ * Copyright 2014 Skyworks Solutions Inc.
+ * Author : Gyungoh Yoo 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+static const struct regmap_config sky81452_config = {
+   .reg_bits = 8,
+   .val_bits = 8,
+};
+
+static int sky81452_register_devices(struct device *dev,
+   const struct sky81452_platform_data *pdata)
+{
+   struct mfd_cell cells[] = {
+   {
+   .name = "sky81452-bl",
+   .platform_data = pdata->bl_pdata,
+   .pdata_size = sizeof(*pdata->bl_pdata),
+   },
+   {
+   .name = "sky81452-regulator",
+   .platform_data = pdata-&

Re: [PATCH] Adding a support for Skyworks SKY81452

2014-08-07 Thread Gyungoh Yoo
Thank you for your comments.
I will fix them and resubmit.

On Thu, Aug 07, 2014 at 02:34:39PM +0200, Tobias Klauser wrote:
> On 2014-08-07 at 10:05:38 +0200, Gyungoh Yoo  wrote:
> > Signed-off-by: Gyungoh Yoo 
> > ---
> >  Documentation/backlight/sky81452.txt   |  25 ++
> >  Documentation/devicetree/bindings/mfd/sky81452.txt |  24 ++
> >  .../bindings/regulator/sky81452-regulator.txt  |  16 +
> >  .../devicetree/bindings/vendor-prefixes.txt|   1 +
> >  .../video/backlight/sky81452-backlight.txt |  20 ++
> >  drivers/mfd/Kconfig|  12 +
> >  drivers/mfd/Makefile   |   1 +
> >  drivers/mfd/sky81452.c | 115 +++
> >  drivers/regulator/Kconfig  |  11 +
> >  drivers/regulator/Makefile |   1 +
> >  drivers/regulator/sky81452-regulator.c | 127 
> >  drivers/video/backlight/Kconfig|  10 +
> >  drivers/video/backlight/Makefile   |   1 +
> >  drivers/video/backlight/sky81452-backlight.c   | 333 
> > +
> >  include/linux/mfd/sky81452.h   |  31 ++
> >  include/linux/sky81452-backlight.h |  46 +++
> >  16 files changed, 774 insertions(+)
> >  create mode 100644 Documentation/backlight/sky81452.txt
> >  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
> >  create mode 100644 
> > Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
> >  create mode 100644 
> > Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> >  create mode 100644 drivers/mfd/sky81452.c
> >  create mode 100644 drivers/regulator/sky81452-regulator.c
> >  create mode 100644 drivers/video/backlight/sky81452-backlight.c
> >  create mode 100644 include/linux/mfd/sky81452.h
> >  create mode 100644 include/linux/sky81452-backlight.h
> 
> [...]
> 
> > diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
> > b/Documentation/devicetree/bindings/mfd/sky81452.txt
> > new file mode 100644
> > index 000..18dd6ac
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
> > @@ -0,0 +1,24 @@
> > +SKY81452 bindings
> > +
> > +Required properties:
> > +- compatible   : Must be "sky,sky81452"
> > +
> > +Required child nodes:
> > +- backlight: container node for backlight following the 
> > binding
> > +   in video/backlight/sky81452-backlight.txt
> > +- regulator: container node for regulators following the 
> > binding
> > +   in regulator/sky81452-regulator.txt
> > +
> > +Example:
> > +
> > +sky81452@2C {
> > +compatible = "sky,sky81452";
> > +
> > +   backlight {
> > +   ...
> > +   };
> > +
> > +   regulator {
> > +   ...
> > +   };
> > +};
> 
> Mixture of tabs and spaces in the example, please use tabs only. Same
> for the example in sky81452-backlight.txt
> 
> [...]
> 
> > diff --git a/drivers/mfd/sky81452.c b/drivers/mfd/sky81452.c
> > new file mode 100644
> > index 000..e09552f
> > --- /dev/null
> > +++ b/drivers/mfd/sky81452.c
> > @@ -0,0 +1,115 @@
> 
> [...]
> 
> > +static int sky81452_probe(struct i2c_client *client,
> > +   const struct i2c_device_id *id)
> > +{
> > +   const struct sky81452_platform_data *pdata;
> > +   struct device *dev = &client->dev;
> > +   struct regmap *map;
> > +
> > +#ifdef CONFIG_OF
> > +   pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
> 
> You still should check the return value in this case.
> 
> > +#else
> > +   pdata = dev_get_platdata(dev);
> > +   if (unlikely(!pdata))
> 
> There's usually no need to use unlikely() in driver code, especially not
> in non-critical functions like probe()
> 
> > +   return -EINVAL;
> > +#endif
> > +
> > +   map = devm_regmap_init_i2c(client, &sky81452_config);
> > +   if (IS_ERR(map))
> > +   return PTR_ERR(map);
> > +
> > +   i2c_set_clientdata(client, map);
> > +
> > +   return sky81452_register_devices(dev, pdata);
> > +}
> > +
> > +static int sky81452_remove(struct i2c_client *client)
> > +{
> > +   mfd_remove_devices(&client->de

Re: [PATCH] Adding a support for Skyworks SKY81452

2014-08-07 Thread Gyungoh Yoo
On Thu, Aug 07, 2014 at 11:09:52AM +0100, Lee Jones wrote:
> On Thu, 07 Aug 2014, Gyungoh Yoo wrote:
> 
> > Signed-off-by: Gyungoh Yoo 
> > ---
> >  Documentation/backlight/sky81452.txt   |  25 ++
> >  Documentation/devicetree/bindings/mfd/sky81452.txt |  24 ++
> >  .../bindings/regulator/sky81452-regulator.txt  |  16 +
> >  .../devicetree/bindings/vendor-prefixes.txt|   1 +
> >  .../video/backlight/sky81452-backlight.txt |  20 ++
> >  drivers/mfd/Kconfig|  12 +
> >  drivers/mfd/Makefile   |   1 +
> >  drivers/mfd/sky81452.c | 115 +++
> >  drivers/regulator/Kconfig  |  11 +
> >  drivers/regulator/Makefile |   1 +
> >  drivers/regulator/sky81452-regulator.c | 127 
> >  drivers/video/backlight/Kconfig|  10 +
> >  drivers/video/backlight/Makefile   |   1 +
> >  drivers/video/backlight/sky81452-backlight.c   | 333 
> > +
> >  include/linux/mfd/sky81452.h   |  31 ++
> >  include/linux/sky81452-backlight.h |  46 +++
> >  16 files changed, 774 insertions(+)
> >  create mode 100644 Documentation/backlight/sky81452.txt
> >  create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
> >  create mode 100644 
> > Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
> >  create mode 100644 
> > Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
> >  create mode 100644 drivers/mfd/sky81452.c
> >  create mode 100644 drivers/regulator/sky81452-regulator.c
> >  create mode 100644 drivers/video/backlight/sky81452-backlight.c
> >  create mode 100644 include/linux/mfd/sky81452.h
> >  create mode 100644 include/linux/sky81452-backlight.h
> 
> Wow, no way.  Please split this up into separate patches.  Ideally, at
> least one per subsystem and separate ones again for the DT bindings.
> 

Sorry I didn't know. I will split them and resubmit.
Thank you.

> [...]
> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] Adding a support for Skyworks SKY81452

2014-08-07 Thread Gyungoh Yoo
Signed-off-by: Gyungoh Yoo 
---
 Documentation/backlight/sky81452.txt   |  25 ++
 Documentation/devicetree/bindings/mfd/sky81452.txt |  24 ++
 .../bindings/regulator/sky81452-regulator.txt  |  16 +
 .../devicetree/bindings/vendor-prefixes.txt|   1 +
 .../video/backlight/sky81452-backlight.txt |  20 ++
 drivers/mfd/Kconfig|  12 +
 drivers/mfd/Makefile   |   1 +
 drivers/mfd/sky81452.c | 115 +++
 drivers/regulator/Kconfig  |  11 +
 drivers/regulator/Makefile |   1 +
 drivers/regulator/sky81452-regulator.c | 127 
 drivers/video/backlight/Kconfig|  10 +
 drivers/video/backlight/Makefile   |   1 +
 drivers/video/backlight/sky81452-backlight.c   | 333 +
 include/linux/mfd/sky81452.h   |  31 ++
 include/linux/sky81452-backlight.h |  46 +++
 16 files changed, 774 insertions(+)
 create mode 100644 Documentation/backlight/sky81452.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/sky81452.txt
 create mode 100644 
Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
 create mode 100644 
Documentation/devicetree/bindings/video/backlight/sky81452-backlight.txt
 create mode 100644 drivers/mfd/sky81452.c
 create mode 100644 drivers/regulator/sky81452-regulator.c
 create mode 100644 drivers/video/backlight/sky81452-backlight.c
 create mode 100644 include/linux/mfd/sky81452.h
 create mode 100644 include/linux/sky81452-backlight.h

diff --git a/Documentation/backlight/sky81452.txt 
b/Documentation/backlight/sky81452.txt
new file mode 100644
index 000..e612151
--- /dev/null
+++ b/Documentation/backlight/sky81452.txt
@@ -0,0 +1,25 @@
+Kernel driver for sky81452
+==
+
+* Skyworks Solutions SKY81452 :
+  High-Efficiency, Six-Channel White LED Driver with Touch Panel Bias Supply
+
+Description
+---
+The SKY81452 is a highly integrated, high-efficiency LED backlight solution for
+tablets, notebook computers, monitors, and other portable devices.
+
+The SKY81452 supports Direct Pulse Width Modulation(DPWM) dimming and Analog
+Pulse Width Modulation (APWM). In the DPWM dimming mode, the output waveform
+follows the Pulse Width Modulation Input(PWMI) signal and the current level is
+set by I2C control and an external RSET resistor. In the APWM mode, the PWMI
+signal duty and the I2C brightness control signal are multiplied to control
+the output current level.
+
+The driver exports some additional attributes for SKY81452.
+- slew_rate : Fade in/out slew rate control, in msec/dimming step.
+   It should be 0, 2, 4 or 8msec/step. 0 means 32usec slew rate.
+- enable : Current sink channels. Bit0 is for channel 1, Bit1 is for channel 2
+   and Bit2 is for channel 3. For example, if 5 is written to this
+   attribute, channel 1 and channel 3 are enabled.
+- status : Fault status indication.
diff --git a/Documentation/devicetree/bindings/mfd/sky81452.txt 
b/Documentation/devicetree/bindings/mfd/sky81452.txt
new file mode 100644
index 000..18dd6ac
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/sky81452.txt
@@ -0,0 +1,24 @@
+SKY81452 bindings
+
+Required properties:
+- compatible   : Must be "sky,sky81452"
+
+Required child nodes:
+- backlight: container node for backlight following the binding
+   in video/backlight/sky81452-backlight.txt
+- regulator: container node for regulators following the binding
+   in regulator/sky81452-regulator.txt
+
+Example:
+
+sky81452@2C {
+compatible = "sky,sky81452";
+
+   backlight {
+   ...
+   };
+
+   regulator {
+   ...
+   };
+};
diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt 
b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
new file mode 100644
index 000..f98b5ed
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
@@ -0,0 +1,16 @@
+SKY81452 voltage regulator
+
+Required properties:
+- any required generic properties defined in regulator.txt
+
+Optional properties:
+- any available generic properties defined in regulator.txt
+
+Example:
+
+   regualtor {
+   /* generic regulator properties */
+   regulator-name = "touch_en";
+   regulator-min-microvolt = <450>;
+   regulator-max-microvolt = <800>;
+   };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt 
b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 46a311e..a755c52 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vend