From: Lukasz Majewski <lukma@denx.de>
To: "Michal Vokáč" <michal.vokac@ysoft.com>
Cc: "Thierry Reding" <thierry.reding@gmail.com>,
"Rob Herring" <robh+dt@kernel.org>,
"Mark Rutland" <mark.rutland@arm.com>,
devicetree@vger.kernel.org, linux-pwm@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Fabio Estevam" <fabio.estevam@nxp.com>,
"Lothar Waßmann" <LW@karo-electronics.de>
Subject: Re: [RFC PATCH 1/2] dt-bindings: pwm: imx: Allow switching PWM output between PWM and GPIO
Date: Thu, 23 Aug 2018 14:36:00 +0200 [thread overview]
Message-ID: <20180823143600.3e417542@jawa> (raw)
In-Reply-To: <0691e93d-c2e2-21e5-374f-c29e7765de93@ysoft.com>
[-- Attachment #1: Type: text/plain, Size: 5252 bytes --]
Hi Michal,
> On 23.8.2018 12:40, Lukasz Majewski wrote:
>
> Hi Lukasz, thanks for the reply!
> > Hi Michal,
> >
> >> Output of the PWM block of i.MX SoCs is always zero volts when the
> >> block is disabled. This can caue issues when inverted PWM polarity
> >> is needed. With inverted polarity a duty cycle = 0% corresponds to
> >> solid high level on the output. If the PWM is dissabled its output
> >> instantly goes to solid zero which corresponds to duty cycle =
> >> 100%.
> >>
> >> To have a trully inverted PWM output configure the PWM pad as a
> >> GPIO with pull-up. Then switch the pad to PWM output whenever
> >> non-zero duty cycle is needed.
> >
> > Just to ask - Is your display equipped with power supply
> > enable/disable pin?
>
> No it is not. The backlight on my display is just a bunch of serial-
> parallel connected LEDs with separate GND and VCC pins on a separate
> flex cable. And the display itself also does not have a reset or
> enable signal. It is a PITA to use it I must say..
Yes, it seems so. I must have had more luck than you with the HW....
>
> > As fair as I remember the trick to avoid flickering the display
> > was to disable the display (enable-gpio property) and set the PWM
> > PIN as GPIO to high in u-boot.
>
> Yes, I know about that. I can not use this as the PWM output is the
> only signal I have to control the backlight. I mentioned that
> somewhere in the previous discussion with Lothar.
Yes, I've read it. I also find the PWM pinctrl as "default" state more
natural.
One more idea - though.
In iMX6Q it was possible to specify the pinctrl PIN setup as 0x80000000
- this means that it goes untouched to the IP block (configured by
bootloader).
Maybe it would work to:
1. Setup the PWM output as GPIO in u-boot (high)
2. In PWM IMX probe configure PWM to be 100% duty cycle. And switch
iomux to PWM function of the pin
3. Then latter in the code PWM gets configured and we can control it in
"normal" way ?
Or am I missing some important point?
>
> I also think this could be useful not only for backlight. Any circuit
> that requires truly inverted PWM signal can use it. I see it as an
> enhancement to what you with Lothar have already done ;)
>
> >>
> >> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> >> ---
> >> Documentation/devicetree/bindings/pwm/imx-pwm.txt | 44
> >> +++++++++++++++++++++++ 1 file changed, 44 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/pwm/imx-pwm.txt
> >> b/Documentation/devicetree/bindings/pwm/imx-pwm.txt index
> >> c61bdf8..3b1bc4c 100644 ---
> >> a/Documentation/devicetree/bindings/pwm/imx-pwm.txt +++
> >> b/Documentation/devicetree/bindings/pwm/imx-pwm.txt @@ -14,6 +14,12
> >> @@ See the clock consumer binding,
> >> Documentation/devicetree/bindings/clock/clock-bindings.txt
> >> - interrupts: The interrupt for the pwm controller
> >>
> >> +Optional properties:
> >> +- pinctrl: For i.MX27 and newer SoCs. Add extra pinctrl to
> >> configure the PWM
> >> + pin to gpio function. It allows control over the pin output
> >> level when the
> >> + PWM block is disabled. This is meant to be used if inverted
> >> polarity of the
> >> + PWM signal is required. See "Inverted PWM output" section
> >> bellow. +
> >> Example:
> >>
> >> pwm1: pwm@53fb4000 {
> >> @@ -25,3 +31,41 @@ pwm1: pwm@53fb4000 {
> >> clock-names = "ipg", "per";
> >> interrupts = <61>;
> >> };
> >> +
> >> +Inverted PWM output
> >> +-------------------
> >> +
> >> +The i.MX SoC has such limitation that whenever a pad is configured
> >> as a PWM +output, the output level is always zero volts when the
> >> PWM block is disabled. +The zero output level is actively driven
> >> by the output stage of the PWM block +and can not be overridden by
> >> pull-up. It also does not matter what PWM polarity +a PWM client
> >> (e.g. backlight) requested. +
> >> +To gain control of the PWM output level in disabled state two
> >> pinctrl states +can be used. The "default" state and the "pwm"
> >> state. In the default state the +PWM output is configured as a
> >> GPIO with pull-up. In the "pwm" state the output +is configured as
> >> a PWM output. This setup assures that the PWM output is at +the
> >> required level that corresponds to duty cycle = 0 when PWM is
> >> disabled. +E.g. at boot. +
> >> +Example:
> >> +
> >> +&pwm1 {
> >> + pinctrl-names = "default", "pwm";
> >> + pinctrl-0 = <&pinctrl_backlight_gpio>;
> >> + pinctrl-1 = <&pinctrl_backlight_pwm>;
> >> +}
> >> +
> >> +pinctrl_backlight_gpio: pwm1grp-gpio {
> >> + fsl,pins = <
> >> + /* GPIO with 22kOhm pull-up */
> >> + MX6QDL_PAD_GPIO_9__GPIO1_IO09 0xF008
> >> + >;
> >> +};
> >> +
> >> +pinctrl_backlight_pwm: pwm1grp-pwm {
> >> + fsl,pins = <
> >> + /* PWM output */
> >> + MX6QDL_PAD_GPIO_9__PWM1_OUT 0x8
> >> + >;
> >> +};
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2018-08-23 12:36 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-21 14:38 [RFC PATCH 0/2] pwm: imx: Configure output to GPIO in disabled state Michal Vokáč
2018-08-21 14:38 ` [RFC PATCH 1/2] dt-bindings: pwm: imx: Allow switching PWM output between PWM and GPIO Michal Vokáč
2018-08-22 6:14 ` Lothar Waßmann
2018-08-22 7:01 ` Michal Vokáč
2018-08-22 11:17 ` Lothar Waßmann
2018-08-22 13:20 ` Michal Vokáč
2018-08-22 14:10 ` Lothar Waßmann
2018-08-23 9:13 ` Michal Vokáč
2018-08-23 11:18 ` Lothar Waßmann
2018-08-23 12:38 ` Michal Vokáč
2018-08-23 10:40 ` Lukasz Majewski
2018-08-23 11:19 ` Lothar Waßmann
2018-08-23 11:21 ` Michal Vokáč
2018-08-23 12:36 ` Lukasz Majewski [this message]
2018-10-09 11:03 ` Vokáč Michal
2018-08-31 12:18 ` Rob Herring
2018-08-31 12:45 ` Lothar Waßmann
2018-08-31 13:17 ` Michal Vokáč
2018-08-31 13:30 ` Lothar Waßmann
2018-10-09 10:30 ` Vokáč Michal
2018-08-21 14:38 ` [RFC PATCH 2/2] pmw: imx: Configure output to GPIO in disabled state Michal Vokáč
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180823143600.3e417542@jawa \
--to=lukma@denx.de \
--cc=LW@karo-electronics.de \
--cc=devicetree@vger.kernel.org \
--cc=fabio.estevam@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=michal.vokac@ysoft.com \
--cc=robh+dt@kernel.org \
--cc=thierry.reding@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).