Re: [PATCH 07/10] pwm: gpio: Add a generic gpio based PWM driver

Olliver Schinagl
2015-10-27T08:50:47Z

Hey Rob,

On October 27, 2015 8:42:48 AM CET, Rob Herring <robh+dt@kernel.org> wrote:
>On Mon, Oct 26, 2015 at 4:32 PM, Olliver Schinagl
><o.schinagl@ultimaker.com> wrote:
>> From: Olliver Schinagl <oliver@schinagl.nl>
>>
>> This patch adds a bit-banging gpio PWM driver. It makes use of
>hrtimers,
>> to allow nano-second resolution, though it obviously strongly depends
>on
>> the switching speed of the gpio pins, hrtimer and system load.
>>
>> Each pwm node can have 1 or more "pwm-gpio" entries, which will be
>> treated as pwm's as part of a pwm chip.
>>
>> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
>> ---
>> Documentation/devicetree/bindings/pwm/pwm-gpio.txt | 18 ++
>> MAINTAINERS | 5 +
>> drivers/pwm/Kconfig | 15 ++
>> drivers/pwm/Makefile | 1 +
>> drivers/pwm/pwm-gpio.c | 253
>+++++++++++++++++++++
>> 5 files changed, 292 insertions(+)
>> create mode 100644
>Documentation/devicetree/bindings/pwm/pwm-gpio.txt
>> create mode 100644 drivers/pwm/pwm-gpio.c
>>
>> diff --git a/Documentation/devicetree/bindings/pwm/pwm-gpio.txt
>b/Documentation/devicetree/bindings/pwm/pwm-gpio.txt
>> new file mode 100644
>> index 0000000..336f61f
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/pwm/pwm-gpio.txt
>> @@ -0,0 +1,18 @@
>> +Generic GPIO bit-banged PWM driver
>> +
>> +Required properties:
>> + - compatible: should be "pwm-gpio"
>> + - #pwm-cells: should be 3, see pwm.txt in this directory for a
>general
>> + description of the cells format.
>> + - pwm-gpios: one or more gpios describing the used gpio, see the
>gpio
>> + bindings for the used gpio driver.
>
>I'm not sure there is really much advantage to having multiple gpios
>per node. It would simplify the driver a bit not to, but I don't feel
>strongly either way.
I figured this way you have one (or more) gpio 'chips' and then per chip 1 or more outputs. I actually thing pne would use several gpios rather then several 'chips'. Most hardware oprates the same way i thought.
>
>> +
>> +Example:
>> +#include <dt-bindings/gpio/gpio.h>
>> +
>> + pwm: pwm@0 {
>
>Unit address should be associated with a reg property, so drop it.
Done

>
>> + compatible = "pwm-gpio";
>> + #pwm-cells = 3;
>> + pwm-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>;
>> + pwm-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
>
>This would not actually compile. You can't have 2 properties of the
>same name.
A bad example is still a bug. Fixed.
>
>> + };
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 7ba7ab7..0ae7fbf 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -4555,6 +4555,11 @@ F: drivers/i2c/muxes/i2c-mux-gpio.c
>> F: include/linux/i2c-mux-gpio.h
>> F: Documentation/i2c/muxes/i2c-mux-gpio
>>
>> +GENERIC GPIO PWM DRIVER
>> +M: Olliver Schinagl <oliver@schinagl.nl>
>> +S: Maintained
>> +F: drivers/pwm/pwm-gpio.c
>
>Can you add the binding doc too.
Sure, done.

>
>Rob

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.