All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Yauhen Kharuzhy <jekhor@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	MyungJoo Ham <myungjoo.ham@samsung.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Subject: Re: [PATCH 1/2] extcon-intel-cht-wc: Make charger detection co-existed with OTG host mode
Date: Thu, 14 Feb 2019 16:32:36 +0100	[thread overview]
Message-ID: <4bda8c03-5517-3627-f82e-d6bce0c4f340@redhat.com> (raw)
In-Reply-To: <20190214070943.GB16597@jeknote.loshitsa1.net>

Hi,

On 14-02-19 08:09, Yauhen Kharuzhy wrote:
> On Thu, Feb 14, 2019 at 12:15:00AM +0100, Hans de Goede wrote:
>> Hi,
>>
>> On 10-02-19 21:36, Yauhen Kharuzhy wrote:
>>> Whiskey Cove Cherry Trail PMIC requires disabling OTG host mode before
>>> of charger detection procedure. Do this by manipulationg of CHGRCTRL1
>>> register.
>>>
>>> Source: APCI DSDT code of Lenovo Yoga Book YB1-X91L and open-sourced
>>> Intel's drivers.
>>
>> Hmm, of the ACPI code is updating the otg-mode, then there should be
>> no reason for us to do this, can you provide an acpidump of your
>> device please?
> 
> sure: https://github.com/jekhor/yogabook-linux/blob/master/yoga/acpi/yoga.acpidump.log
> 
> Yes, there is ACPI routine for switching this but it is not called at
> IRQ handling because it is handled by extcon driver. See my notes here:
> https://github.com/jekhor/yogabook-linux/blob/master/yoga/acpi/investigate.txt#L364

The reason the _E12 and/or _E1F methods are not called is because
they are GPIO interrupt handlers for virtual GPIOs on the PMIC,
this is another abomination on these devices, that the ACPI GPIO
interface is abused to make it look like the PMIC has more GPIOs
then it really does and a bunch if them are used either to create
event handlers for no-one knows which events exactly, where as
the 0x20 - 0x55 ones are write-only virtual GPIOs where writing
them is supposed to do no-one knows what.  For some reason the
people who engineered this decided it was not a good idea to have
the AML code actually just directly talk to the hardware (except
that in other cases it does of course) and it goes through these
fake GPIOs which presumably are implemented by the Windows GPIO
driver for the PMIC

Note that we do implement the custom opregion 0x8F for the INT34D3
/ PMI5 device, so the GET/SET calls could work, except that we
have the following bug:

  -drivers/acpi/pmic/intel_pmic.c intel_pmic_regs_handler is wrong,
   assumes everything is a write, read of address 3 should return last value
   read on writing 0 to address 4, see the GET method on INT34D3 / PMI5

Even if we fix that bug though, there still is the issues that we:

1) Do not know when to execute the _E12 and/or _E1F methods
2) Do not know what to do of any of the "virtual" GPIOs are written
3) There is no valid ACPI battery interface for querying battery status

So we are better of just not executing the _E12 and/or _E1F methods
ever and directly talking to the hardware.

<grumble mode on>
If only the engineers who did the firmware interface for these
devices had actually known what they were doing.
</grumble mode>

Regards,

Hans


  reply	other threads:[~2019-02-14 15:32 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20190210204024epcas3p36ea277b499e647b870d538c5680309bd@epcas3p3.samsung.com>
2019-02-10 20:36 ` [PATCH 0/2] extcon: Intel Cherry Trail Whiskey Cove PMIC and external charger tweaks Yauhen Kharuzhy
2019-02-10 20:36   ` [PATCH 1/2] extcon-intel-cht-wc: Make charger detection co-existed with OTG host mode Yauhen Kharuzhy
2019-02-13 23:15     ` Hans de Goede
2019-02-14  7:09       ` Yauhen Kharuzhy
2019-02-14 15:32         ` Hans de Goede [this message]
2019-02-14 14:22     ` Hans de Goede
2019-02-10 20:36   ` [PATCH 2/2] extcon intel-cht-wc: Enable external charger Yauhen Kharuzhy
2019-02-14 16:31     ` Hans de Goede
2019-02-15  6:32       ` Yauhen Kharuzhy
2019-02-17 21:52         ` Yauhen Kharuzhy
2019-02-18  9:24           ` Hans de Goede
2019-02-18 15:07             ` Yauhen Kharuzhy
2019-02-19 13:39               ` Hans de Goede
2019-02-19 20:20                 ` Yauhen Kharuzhy
2019-02-20 16:42                   ` Hans de Goede
2019-02-20 20:28                     ` Yauhen Kharuzhy
2019-02-21  9:33                       ` Hans de Goede
2019-02-13 23:00   ` [PATCH 0/2] extcon: Intel Cherry Trail Whiskey Cove PMIC and external charger tweaks Hans de Goede
2019-02-14 10:07     ` Hans de Goede
2019-02-14 12:47     ` Andy Shevchenko
     [not found]       ` <CAKWEGV7SGDMttB6uHwnkyjWk+bmSmZ-vTSOXHg1UAgLBeqnaXw@mail.gmail.com>
2019-02-14 15:05         ` Hans de Goede
2019-02-15  7:01           ` Yauhen Kharuzhy
2019-02-15  9:26             ` Hans de Goede
2019-02-15  9:29           ` Andy Shevchenko
2019-02-15  9:33             ` Hans de Goede
2019-02-15  7:08   ` Chanwoo Choi

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=4bda8c03-5517-3627-f82e-d6bce0c4f340@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=jekhor@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=myungjoo.ham@samsung.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.