2018-11-21 14:01:29

by Clément Péron

[permalink] [raw]
Subject: [PATCH v2] pwm: kconfig: enable kona pwm to be built for cygnus arch

The Cygnus architecture use a Kona PWM. This is already present
in the device tree but can't be built actually. Hence, allow the
Kona PWM to be built for Cygnus arch.

Signed-off-by: Clément Péron <[email protected]>
---
drivers/pwm/Kconfig | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
index 27e5dd47a01f..982f4059f4e8 100644
--- a/drivers/pwm/Kconfig
+++ b/drivers/pwm/Kconfig
@@ -88,7 +88,9 @@ config PWM_BCM_IPROC

config PWM_BCM_KONA
tristate "Kona PWM support"
- depends on ARCH_BCM_MOBILE
+ depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
+ depends on HAVE_CLK && HAS_IOMEM
+ default ARCH_BCM_CYGNUS
help
Generic PWM framework driver for Broadcom Kona PWM block.

--
2.19.1



2018-11-21 21:54:50

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH v2] pwm: kconfig: enable kona pwm to be built for cygnus arch



On 11/21/2018 4:35 AM, Clément Péron wrote:
> The Cygnus architecture use a Kona PWM. This is already present
> in the device tree but can't be built actually. Hence, allow the
> Kona PWM to be built for Cygnus arch.
>
> Signed-off-by: Clément Péron <[email protected]>

Reviewed-by: Florian Fainelli <[email protected]>

The "default ARCH_BCM_CYGNUS" could arguably cover ARCH_BCM_MOBILE as
well, but this is not probably worth a respin just to address that.

> ---
> drivers/pwm/Kconfig | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
> index 27e5dd47a01f..982f4059f4e8 100644
> --- a/drivers/pwm/Kconfig
> +++ b/drivers/pwm/Kconfig
> @@ -88,7 +88,9 @@ config PWM_BCM_IPROC
>
> config PWM_BCM_KONA
> tristate "Kona PWM support"
> - depends on ARCH_BCM_MOBILE
> + depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
> + depends on HAVE_CLK && HAS_IOMEM
> + default ARCH_BCM_CYGNUS
> help
> Generic PWM framework driver for Broadcom Kona PWM block.
>
>

--
Florian

2018-11-21 22:13:20

by Scott Branden

[permalink] [raw]
Subject: Re: [PATCH v2] pwm: kconfig: enable kona pwm to be built for cygnus arch


On 2018-11-21 11:00 a.m., Florian Fainelli wrote:
>
> On 11/21/2018 4:35 AM, Clément Péron wrote:
>> The Cygnus architecture use a Kona PWM. This is already present
>> in the device tree but can't be built actually. Hence, allow the
>> Kona PWM to be built for Cygnus arch.
>>
>> Signed-off-by: Clément Péron <[email protected]>
> Reviewed-by: Florian Fainelli <[email protected]>

Reviewed-by: Scott Branden <[email protected]>

>
> The "default ARCH_BCM_CYGNUS" could arguably cover ARCH_BCM_MOBILE as
> well, but this is not probably worth a respin just to address that.
Yes, it's fine as is.
>
>> ---
>> drivers/pwm/Kconfig | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
>> index 27e5dd47a01f..982f4059f4e8 100644
>> --- a/drivers/pwm/Kconfig
>> +++ b/drivers/pwm/Kconfig
>> @@ -88,7 +88,9 @@ config PWM_BCM_IPROC
>>
>> config PWM_BCM_KONA
>> tristate "Kona PWM support"
>> - depends on ARCH_BCM_MOBILE
>> + depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
>> + depends on HAVE_CLK && HAS_IOMEM
>> + default ARCH_BCM_CYGNUS
>> help
>> Generic PWM framework driver for Broadcom Kona PWM block.
>>
>>

2018-11-24 07:34:55

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: [PATCH v2] pwm: kconfig: enable kona pwm to be built for cygnus arch

Hello Cl?ment,

On Wed, Nov 21, 2018 at 01:35:08PM +0100, Cl?ment P?ron wrote:
> The Cygnus architecture use a Kona PWM. This is already present
> in the device tree but can't be built actually. Hence, allow the
> Kona PWM to be built for Cygnus arch.
>
> Signed-off-by: Cl?ment P?ron <[email protected]>
> ---
> drivers/pwm/Kconfig | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
> index 27e5dd47a01f..982f4059f4e8 100644
> --- a/drivers/pwm/Kconfig
> +++ b/drivers/pwm/Kconfig
> @@ -88,7 +88,9 @@ config PWM_BCM_IPROC
>
> config PWM_BCM_KONA
> tristate "Kona PWM support"
> - depends on ARCH_BCM_MOBILE
> + depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
> + depends on HAVE_CLK && HAS_IOMEM
> + default ARCH_BCM_CYGNUS

This looks good. As pointed out before the default is a bit strange
and could include ARCH_BCM_MOBILE for symmetry.

Anyhow:

Acked-by: Uwe Kleine-K?nig <[email protected]>

Related to this driver I have a set of questions: If the disable
callback completed, does the hardware still drive the pin? If yes, would
it be possible to disable the pin driver such that the pin gets high-Z?
If yes, how?

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |

2018-11-24 08:20:23

by Clément Péron

[permalink] [raw]
Subject: Re: [PATCH v2] pwm: kconfig: enable kona pwm to be built for cygnus arch

Hi,

On Thu, 22 Nov 2018 at 21:05, Uwe Kleine-König
<[email protected]> wrote:
>
> Hello Clément,
>
> On Wed, Nov 21, 2018 at 01:35:08PM +0100, Clément Péron wrote:
> > The Cygnus architecture use a Kona PWM. This is already present
> > in the device tree but can't be built actually. Hence, allow the
> > Kona PWM to be built for Cygnus arch.
> >
> > Signed-off-by: Clément Péron <[email protected]>
> > ---
> > drivers/pwm/Kconfig | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
> > index 27e5dd47a01f..982f4059f4e8 100644
> > --- a/drivers/pwm/Kconfig
> > +++ b/drivers/pwm/Kconfig
> > @@ -88,7 +88,9 @@ config PWM_BCM_IPROC
> >
> > config PWM_BCM_KONA
> > tristate "Kona PWM support"
> > - depends on ARCH_BCM_MOBILE
> > + depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
> > + depends on HAVE_CLK && HAS_IOMEM
> > + default ARCH_BCM_CYGNUS
>
> This looks good. As pointed out before the default is a bit strange
> and could include ARCH_BCM_MOBILE for symmetry.

Ok, let me resend a v3

>
> Anyhow:
>
> Acked-by: Uwe Kleine-König <[email protected]>
>
> Related to this driver I have a set of questions: If the disable
> callback completed, does the hardware still drive the pin? If yes, would
> it be possible to disable the pin driver such that the pin gets high-Z?
> If yes, how?

The output pin type is configured with the bit "21:16 PWMOUT_TYPE RW
default 0x3F" in the Control register
PWM_CONTROL_TYPE_SHIFT macro in the driver
Datasheets says : "When set to 1 the PWM Output signal will have a
push/pull type.When set to 0 the PWM Output signal will have an open
drain output type.Recommend to leave it push/pull type."

In the driver we actually set push/pull mode for all channels :
/* Set push/pull for all channels */
for (chan = 0; chan < kp->chip.npwm; chan++)
value |= (1 << PWM_CONTROL_TYPE_SHIFT(chan));

Regards,
Clement

>
> Best regards
> Uwe
>
> --
> Pengutronix e.K. | Uwe Kleine-König |
> Industrial Linux Solutions | http://www.pengutronix.de/ |

2018-11-24 08:24:01

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: [PATCH v2] pwm: kconfig: enable kona pwm to be built for cygnus arch

Hello Cl?ment,

On Fri, Nov 23, 2018 at 10:31:18AM +0100, Cl?ment P?ron wrote:
> On Thu, 22 Nov 2018 at 21:05, Uwe Kleine-K?nig
> <[email protected]> wrote:
> > Related to this driver I have a set of questions: If the disable
> > callback completed, does the hardware still drive the pin? If yes, would
> > it be possible to disable the pin driver such that the pin gets high-Z?
> > If yes, how?
>
> The output pin type is configured with the bit "21:16 PWMOUT_TYPE RW
> default 0x3F" in the Control register
> PWM_CONTROL_TYPE_SHIFT macro in the driver
> Datasheets says : "When set to 1 the PWM Output signal will have a
> push/pull type.When set to 0 the PWM Output signal will have an open
> drain output type.Recommend to leave it push/pull type."
>
> In the driver we actually set push/pull mode for all channels :
> /* Set push/pull for all channels */
> for (chan = 0; chan < kp->chip.npwm; chan++)
> value |= (1 << PWM_CONTROL_TYPE_SHIFT(chan));

So if disabling the output driver was part of the requirements for
.disable the bcm-kona driver could not implement this for both inverted
and uninverted PWMs. (At least not without resorting to pinmuxing.)

Thanks
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |