2018-01-11 11:34:36

by Hao Zhang

[permalink] [raw]
Subject: [PATCH v1 4/4] ARM: dts: add pwm node for r40.

This patch add pwm node for r40.

Signed-off-by: hao_zhang <[email protected]>
---
arch/arm/boot/dts/sun8i-r40.dtsi | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi
index 173dcc1..84c963c 100644
--- a/arch/arm/boot/dts/sun8i-r40.dtsi
+++ b/arch/arm/boot/dts/sun8i-r40.dtsi
@@ -295,6 +295,11 @@
bias-pull-up;
};

+ pwm_pins: pwm-pins {
+ pins = "PB2", "PB3";
+ function = "pwm";
+ };
+
uart0_pb_pins: uart0-pb-pins {
pins = "PB22", "PB23";
function = "uart0";
@@ -306,6 +311,14 @@
reg = <0x01c20c90 0x10>;
};

+ pwm: pwm@1c23400 {
+ compatible = "allwinner,sun8i-r40-pwm";
+ reg = <0x01c23400 0x154>;
+ clocks = <&osc24M>;
+ #pwm-cells = <3>;
+ status = "disabled";
+ };
+
uart0: serial@1c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28000 0x400>;
--
2.7.4


2018-01-11 12:48:22

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH v1 4/4] ARM: dts: add pwm node for r40.

Hi,

On Thu, Jan 11, 2018 at 07:34:12PM +0800, hao_zhang wrote:
> This patch add pwm node for r40.
>
> Signed-off-by: hao_zhang <[email protected]>
> ---
> arch/arm/boot/dts/sun8i-r40.dtsi | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi
> index 173dcc1..84c963c 100644
> --- a/arch/arm/boot/dts/sun8i-r40.dtsi
> +++ b/arch/arm/boot/dts/sun8i-r40.dtsi
> @@ -295,6 +295,11 @@
> bias-pull-up;
> };
>
> + pwm_pins: pwm-pins {
> + pins = "PB2", "PB3";
> + function = "pwm";
> + };
> +

Is it the only combination of pins that is usable?

If so, you can add the pinctrl-0 property directly in the pwm nodes.

Thanks!
Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com


Attachments:
(No filename) (836.00 B)
signature.asc (833.00 B)
Download all attachments

2018-01-14 06:43:43

by Hao Zhang

[permalink] [raw]
Subject: Re: [PATCH v1 4/4] ARM: dts: add pwm node for r40.

2018-01-11 20:47 GMT+08:00 Maxime Ripard <[email protected]>:
> Hi,
>
> On Thu, Jan 11, 2018 at 07:34:12PM +0800, hao_zhang wrote:
>> This patch add pwm node for r40.
>>
>> Signed-off-by: hao_zhang <[email protected]>
>> ---
>> arch/arm/boot/dts/sun8i-r40.dtsi | 13 +++++++++++++
>> 1 file changed, 13 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi
>> index 173dcc1..84c963c 100644
>> --- a/arch/arm/boot/dts/sun8i-r40.dtsi
>> +++ b/arch/arm/boot/dts/sun8i-r40.dtsi
>> @@ -295,6 +295,11 @@
>> bias-pull-up;
>> };
>>
>> + pwm_pins: pwm-pins {
>> + pins = "PB2", "PB3";
>> + function = "pwm";
>> + };
>> +
>
> Is it the only combination of pins that is usable?
>
> If so, you can add the pinctrl-0 property directly in the pwm nodes.
>

There are 8 channel pwm of R40/V40/T3, the pins that can be configed to pwm are:
PB2, PB3, PI20, PI21, PB20, PB21, PB9, PB10

PB2, PB3 can be configed on bananapi-m2-ultra and on my T3 board, but
the other pins
is not exist on the board or some pin is confilct with other
functions, so i just add
PB2, PB3. but i think split it is better, just like this :

pwm0_pin: pwm0-pin {
pins = "PB2";
function = "pwm";
};

pwm1_pin: pwm1-pin {
pins = "PB3";
function = "pwm";
};

the node of pwm2~7 should also be added here?

On sun8i-r40-bananapi-m2-ultra.dts:
because of the special customize board, i think just add pinctrl-0 = <&pwm0_pin>
(PB3 I just use to test pwm channel 1)for bananapi-m2-ultra board is enough.

&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pin>;
status = "okay";
};

Thanks ;-)
Hao Zhang


> Thanks!
> Maxime
>
> --
> Maxime Ripard, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com

2018-01-15 08:38:18

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH v1 4/4] ARM: dts: add pwm node for r40.

Hi,

On Sun, Jan 14, 2018 at 02:43:39PM +0800, Hao Zhang wrote:
> 2018-01-11 20:47 GMT+08:00 Maxime Ripard <[email protected]>:
> > On Thu, Jan 11, 2018 at 07:34:12PM +0800, hao_zhang wrote:
> >> This patch add pwm node for r40.
> >>
> >> Signed-off-by: hao_zhang <[email protected]>
> >> ---
> >> arch/arm/boot/dts/sun8i-r40.dtsi | 13 +++++++++++++
> >> 1 file changed, 13 insertions(+)
> >>
> >> diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi
> >> index 173dcc1..84c963c 100644
> >> --- a/arch/arm/boot/dts/sun8i-r40.dtsi
> >> +++ b/arch/arm/boot/dts/sun8i-r40.dtsi
> >> @@ -295,6 +295,11 @@
> >> bias-pull-up;
> >> };
> >>
> >> + pwm_pins: pwm-pins {
> >> + pins = "PB2", "PB3";
> >> + function = "pwm";
> >> + };
> >> +
> >
> > Is it the only combination of pins that is usable?
> >
> > If so, you can add the pinctrl-0 property directly in the pwm nodes.
> >
>
> There are 8 channel pwm of R40/V40/T3, the pins that can be configed
> to pwm are: PB2, PB3, PI20, PI21, PB20, PB21, PB9, PB10

And a single controller, or several of them?

> PB2, PB3 can be configed on bananapi-m2-ultra and on my T3 board,
> but the other pins is not exist on the board or some pin is confilct
> with other functions, so i just add PB2, PB3. but i think split it
> is better, just like this :
>
> pwm0_pin: pwm0-pin {
> pins = "PB2";
> function = "pwm";
> };
>
> pwm1_pin: pwm1-pin {
> pins = "PB3";
> function = "pwm";
> };

Yep, that would be better. If it's just a matter of channels, maybe we
can even name them pwm-ch0-pin and pwm-ch1-pin? That would be more
explicit.

> the node of pwm2~7 should also be added here?

If there's no users, no.

> On sun8i-r40-bananapi-m2-ultra.dts:
> because of the special customize board, i think just add pinctrl-0 = <&pwm0_pin>
> (PB3 I just use to test pwm channel 1)for bananapi-m2-ultra board is enough.
>
> &pwm {
> pinctrl-names = "default";
> pinctrl-0 = <&pwm0_pin>;
> status = "okay";
> };

It depends if that PWM is used as a PWM all the time (for example to
drive a backlight for a panel tied to the board), or if it's exported
through one of the generic pin headers, please leave it populated but
disabled (with a comment that it is exported on one of the pin of the
headers)

Thanks!
Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com


Attachments:
(No filename) (2.51 kB)
signature.asc (833.00 B)
Download all attachments

2018-01-15 11:19:08

by Hao Zhang

[permalink] [raw]
Subject: Re: [PATCH v1 4/4] ARM: dts: add pwm node for r40.

2018-01-15 16:38 GMT+08:00 Maxime Ripard <[email protected]>:
> Hi,
>
> On Sun, Jan 14, 2018 at 02:43:39PM +0800, Hao Zhang wrote:
>> 2018-01-11 20:47 GMT+08:00 Maxime Ripard <[email protected]>:
>> > On Thu, Jan 11, 2018 at 07:34:12PM +0800, hao_zhang wrote:
>> >> This patch add pwm node for r40.
>> >>
>> >> Signed-off-by: hao_zhang <[email protected]>
>> >> ---
>> >> arch/arm/boot/dts/sun8i-r40.dtsi | 13 +++++++++++++
>> >> 1 file changed, 13 insertions(+)
>> >>
>> >> diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi
>> >> index 173dcc1..84c963c 100644
>> >> --- a/arch/arm/boot/dts/sun8i-r40.dtsi
>> >> +++ b/arch/arm/boot/dts/sun8i-r40.dtsi
>> >> @@ -295,6 +295,11 @@
>> >> bias-pull-up;
>> >> };
>> >>
>> >> + pwm_pins: pwm-pins {
>> >> + pins = "PB2", "PB3";
>> >> + function = "pwm";
>> >> + };
>> >> +
>> >
>> > Is it the only combination of pins that is usable?
>> >
>> > If so, you can add the pinctrl-0 property directly in the pwm nodes.
>> >
>>
>> There are 8 channel pwm of R40/V40/T3, the pins that can be configed
>> to pwm are: PB2, PB3, PI20, PI21, PB20, PB21, PB9, PB10
>
> And a single controller, or several of them?

Single controller with 8 channels pwm output.

>
>> PB2, PB3 can be configed on bananapi-m2-ultra and on my T3 board,
>> but the other pins is not exist on the board or some pin is confilct
>> with other functions, so i just add PB2, PB3. but i think split it
>> is better, just like this :
>>
>> pwm0_pin: pwm0-pin {
>> pins = "PB2";
>> function = "pwm";
>> };
>>
>> pwm1_pin: pwm1-pin {
>> pins = "PB3";
>> function = "pwm";
>> };
>
> Yep, that would be better. If it's just a matter of channels, maybe we
> can even name them pwm-ch0-pin and pwm-ch1-pin? That would be more
> explicit.
>

Agree

>> the node of pwm2~7 should also be added here?
>
> If there's no users, no.
>
>> On sun8i-r40-bananapi-m2-ultra.dts:
>> because of the special customize board, i think just add pinctrl-0 = <&pwm0_pin>
>> (PB3 I just use to test pwm channel 1)for bananapi-m2-ultra board is enough.
>>
>> &pwm {
>> pinctrl-names = "default";
>> pinctrl-0 = <&pwm0_pin>;
>> status = "okay";
>> };
>
> It depends if that PWM is used as a PWM all the time (for example to
> drive a backlight for a panel tied to the board), or if it's exported
> through one of the generic pin headers, please leave it populated but
> disabled (with a comment that it is exported on one of the pin of the
> headers)
>
> Thanks!
> Maxime
>
> --
> Maxime Ripard, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com