Thread (39 messages) 39 messages, 8 authors, 2013-09-03

[PATCH 4/4] Documentation: Add device tree bindings for Freescale FTM PWM

From: Xiubo Li-B47053 <hidden>
Date: 2013-08-26 05:36:01
Also in: linux-devicetree, linux-pwm, lkml

Hi Stephen,

Subject: Re: [PATCH 4/4] Documentation: Add device tree bindings for
Freescale FTM PWM

On 08/23/2013 01:36 AM, Thierry Reding wrote:
quoted
On Thu, Aug 22, 2013 at 08:26:10AM +0200, Sascha Hauer wrote:
quoted
On Thu, Aug 22, 2013 at 02:55:42AM +0000, Xiubo Li-B47053 wrote:
quoted
Hi Tomasz,

Thanks for your comments.

quoted
Could you explain meaning of this property more precisely?
I'm interested especially how is this related to the PWM IP block
and boards.
Yes. There are 8 channels most. While the pinctrls of 4th and 5th
channels could be used by uart's Rx and Tx, then these 2 channels
won't be used for pwm output, so there will be 6 channels available
by the pwm. Thus, the pwm chip will register only 6 pwms(6 channels)
most("fsl,pwm-channel-orders = {0 1 2 3
6 7}").And also the "fsl,pwm-channel-number" will be 6.
If the chip has eight PWMs I would register all of them. If some of
them are not routed out by the pinmux then just nothing happens if
you use them. In a sane devicetree they won't be referenced anyway
when they are not routed out of the SoC.
In that case, shouldn't this be hooked up to the pinctrl subsystem as
well? As I understand the above, the logical thing would be for each
PWM channel's .request() operation to configure the pinmuxing
appropriately. And if it can't be configured as necessary then
.request() should return an error (or propagate the error from the
pinctrl subsystem).
I think the pin-muxing should be static, i.e. set up when the PWM device
as a whole probe()s, rather than being twiddled at request/free time.
Certainly the pinmux support in the device core is now set up to acquire
the default state right before probe(). I don't see a need to do anything
custom here.
As we have tolk about this before in [PATCH 1/4]:
"
quoted
Why do you need to manipulate the pinctrl to en/disable a channel?
This is because in Vybrid VF610 TOWER board, there are 4 leds, and each
led's one point(diode's positive pole) is connected to 3.3V, and the
other point is connected to pwm's one channel. When the 4 pinctrls are
configured as enable at the same time, the 4 pinctrls is low valtage, and
the 4 leds will be lighted up as default, then when you enable/disable
one led will effects others.

These pinctrls are belong to pwm, and I don't think led or other customer
could control them directly.
So, here I authorize the 4 pinctrls to each channel controls.
"
For the reason above, I have to control the pinctrls separately.

If all the pinctrls set as default state, the 8 pinctrls must be controlled together.
And the 4 leds will all be lighted up as default and will influence each other.

Thanks very much.

--
Best Regards.
Xiubo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help