From: Yauhen Kharuzhy <jekhor@gmail.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-leds@vger.kernel.org
Subject: Re: [PATCH v2 1/2] leds: Add Intel Cherry Trail Whiskey Cove PMIC LEDs
Date: Thu, 14 Feb 2019 09:55:40 +0300 [thread overview]
Message-ID: <20190214065540.GA16597@jeknote.loshitsa1.net> (raw)
In-Reply-To: <1df39a63-533f-bb68-a056-a0241f148be9@redhat.com>
On Wed, Feb 13, 2019 at 11:43:29PM +0100, Hans de Goede wrote:
> Hi,
>
> On 12-02-19 21:59, Yauhen Kharuzhy wrote:
> > Add support for LEDs connected to the Intel Cherry Trail Whiskey Cove
> > PMIC. Charger and general-purpose leds are supported. Hardware blinking
> > is implemented, breathing is not.
> >
> > This driver was tested with Lenovo Yoga Book notebook.
>
> Thank you for working on this. The CHT Whiskey Cove PMIC is
> also used on the GPD win and GPD pocket devices and there LED1
> by default indicates the charging status.
>
> Since your driver forces the LED into SWCTL mode on probe()
> this means that any kernel with it enabled will break the
> charging LEDs OOTB function, this is undesirable.
>
> I believe it would be best to add a custom "mode" attribute
> to the led classdev, with "manual" and "on-when-charging"
> modes, this would then control bits 0-1 of reg 0x5e1f and
> by default these bits should be left as is when the driver
> loads.
>
> Note that in my experience the "charging" mode only works
> when bits 0-1 have the value 10. I've some written notes from
> when I played with this myself and they say:
>
> -CHT WC powerled control 0x5e1f: bits 0-1:
> 0: ????
> 1: Off
> 2: On when charging
> 3: On
> -CHT WC powerled pattern control 0x5e20: bits 1-2:
> 0: Off
> 1: On
> 2: Blinking
> 3: Glowing
Maybe you are right, I will check but at Linux Yoga Book this LED
doesn't work as HW-controlled charging status indicator, so I didn't
discovery this.
I used this source as reference; https://github.com/jekhor/yogabook-linux-android-kernel/blob/cm-13.0/drivers/misc/charger_gp_led.c
> Also note that the 0x5e20 notes do not match with your
> defines, I believe this is a small bug in your code, see
> comments in line below.
>
> As for the 0x5e20 settings, I believe another custom
> sysfs attribute, called "breathing" would be a good idea to
> export the breathing functionality.
>
> The way I see this working is that writing "1" to this will
> turn on glowing mode, and writing 0 to it, or 0 to brightness
> will turn it off. Reading it will return 1/0 depending on
> whether the LED is in glowing mode or not.
Jacek? Pavel? I thought about pattern_set() implementation for 'breathing'
mode in future but this doesn't seem simple, maybe custom attribute will has
sense?
>
> For an example of adding custom sysfs attributes to a
> led-class device see kbd_led_groups and kbd_led_attrs in:
> drivers/platform/x86/dell-laptop.c
>
> > +
> > +#define CHT_WC_LED1_CTRL 0x5e1f
> > +#define CHT_WC_LED1_FSM 0x5e20
> > +#define CHT_WC_LED1_PWM 0x5e21
> > +
> > +#define CHT_WC_LED2_CTRL 0x4fdf
> > +#define CHT_WC_LED2_FSM 0x4fe0
> > +#define CHT_WC_LED2_PWM 0x4fe1
> > +
> > +/* HW or SW control of charging led */
> > +#define CHT_WC_LED1_SWCTL BIT(0)
> > +#define CHT_WC_LED1_ON BIT(1)
> > +
> > +#define CHT_WC_LED2_ON BIT(0)
> > +#define CHT_WC_LED_I_MA2_5 (2 << 2)
> > +/* LED current limit */
> > +#define CHT_WC_LED_I_MASK GENMASK(3, 2)
> > +
> > +#define CHT_WC_LED_F_1_4_HZ (0 << 4)
> > +#define CHT_WC_LED_F_1_2_HZ (1 << 4)
> > +#define CHT_WC_LED_F_1_HZ (2 << 4)
> > +#define CHT_WC_LED_F_2_HZ (3 << 4)
> > +#define CHT_WC_LED_F_MASK 0x30
> > +
> > +#define CHT_WC_LED_EFF_ON BIT(1)
> > +#define CHT_WC_LED_EFF_BLINKING BIT(2)
> > +#define CHT_WC_LED_EFF_BREATHING BIT(3)
> > +#define CHT_WC_LED_EFF_MASK 0x06
>
> So your MASK is correct here, but the values used should
> be based on that, so you get:
>
> #define CHT_WC_LED_EFF_ON (1 << 1)
> #define CHT_WC_LED_EFF_BLINKING (2 << 1)
> #define CHT_WC_LED_EFF_BREATHING (3 << 1)
>
> Note that this effectively only changes the value of
> CHT_WC_LED_EFF_BREATHING, so that it now to fits in your
> mask.
>
> Regards,
Hm, it seems lost in refactoring time, thanks. My original defines were:
#define CHT_WC_LED_EFF_ON (1<<1)
#define CHT_WC_LED_EFF_BLINKING (2<<1)
#define CHT_WC_LED_EFF_BREATHING (3<<1)
#define CHT_WC_LED_EFF_MASK 0x06
I will revert this in next version.
--
Yauhen Kharuzhy
next prev parent reply other threads:[~2019-02-14 6:55 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-12 20:58 [PATCH v2 0/2] Intel Cherry Trail Whiskey Cove LEDs support Yauhen Kharuzhy
2019-02-12 20:59 ` [PATCH v2 1/2] leds: Add Intel Cherry Trail Whiskey Cove PMIC LEDs Yauhen Kharuzhy
2019-02-13 22:43 ` Hans de Goede
2019-02-13 23:07 ` Pavel Machek
2019-02-13 23:25 ` Hans de Goede
2019-02-13 23:38 ` Pavel Machek
2019-02-14 9:57 ` Hans de Goede
2019-02-14 11:14 ` Pavel Machek
2019-02-14 11:31 ` Hans de Goede
2019-02-14 12:28 ` Pavel Machek
2019-02-15 21:41 ` Jacek Anaszewski
2019-02-15 23:26 ` Pavel Machek
2019-02-14 21:46 ` Jacek Anaszewski
2019-02-14 23:03 ` Pavel Machek
2019-02-15 7:27 ` Yauhen Kharuzhy
2019-02-15 21:43 ` Jacek Anaszewski
2019-02-16 11:26 ` Yauhen Kharuzhy
2019-02-15 11:27 ` Hans de Goede
2019-02-15 13:02 ` Pavel Machek
2019-02-15 21:42 ` Jacek Anaszewski
2019-02-15 22:26 ` Hans de Goede
2019-02-15 22:31 ` Jacek Anaszewski
2019-02-15 23:14 ` Hans de Goede
2019-02-16 17:02 ` Jacek Anaszewski
2019-02-16 19:01 ` Hans de Goede
2019-02-16 19:37 ` Pavel Machek
2019-02-16 20:55 ` Hans de Goede
2019-02-17 0:08 ` Pavel Machek
2019-02-17 14:10 ` Hans de Goede
2019-02-17 17:45 ` Pavel Machek
2019-02-18 11:12 ` Hans de Goede
2019-02-18 21:59 ` Jacek Anaszewski
2019-02-16 21:54 ` Jacek Anaszewski
2019-02-16 22:03 ` Hans de Goede
2019-02-17 12:40 ` Jacek Anaszewski
2019-02-14 11:28 ` Pavel Machek
2019-02-14 21:34 ` Yauhen Kharuzhy
2019-02-14 6:55 ` Yauhen Kharuzhy [this message]
2019-02-14 10:04 ` Hans de Goede
2019-02-12 20:59 ` [PATCH v2 2/2] mfd: Add leds MFD cell for intel_soc_pmic_chtwc Yauhen Kharuzhy
2019-02-13 21:24 ` Jacek Anaszewski
2019-03-20 9:56 ` Lee Jones
2019-03-20 9:57 ` Lee Jones
2019-04-21 19:28 ` [PATCH v2 0/2] Intel Cherry Trail Whiskey Cove LEDs support Hans de Goede
2019-04-24 18:32 ` Yauhen Kharuzhy
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=20190214065540.GA16597@jeknote.loshitsa1.net \
--to=jekhor@gmail.com \
--cc=hdegoede@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
/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
all inboxes | Powered by JetHome®