[PATCH] ARM: dts: Add mask-tpm-reset to the device tree

Vikas Sajjan vikas.sajjan at samsung.com
Wed Jul 9 21:35:02 PDT 2014


Doug,

On Wed, Jul 9, 2014 at 8:52 PM, Doug Anderson <dianders at chromium.org> wrote:
> Vikas,
>
> On Tue, Jul 8, 2014 at 9:20 AM, Tomasz Figa <t.figa at samsung.com> wrote:
>> On 08.07.2014 17:27, Doug Anderson wrote:
>>> Hi,
>>>
>>> On Tue, Jul 8, 2014 at 12:46 AM, Linus Walleij <linus.walleij at linaro.org> wrote:
>>>> On Thu, Jun 26, 2014 at 11:15 AM, Vikas Sajjan <vikas.sajjan at samsung.com> wrote:
>>>>
>>>>> From: Doug Anderson <dianders at chromium.org>
>>>>>
>>>>> The mask-tpm-reset GPIO is used by the kernel to prevent the TPM from
>>>>> being reset across sleep/wake.  If we don't set it to anything then
>>>>> the TPM will be reset.  U-Boot will detect this as invalid
>>>>> and will reset the system on resume time. This GPIO can always be low
>>>>> and not hurt anything.  It will get pulled back high again during a
>>>>> normal warm reset when it will default back to an input.
>>>>>
>>>>> To properly preserve the TPM state across suspend/resume and to make
>>>>> the chrome U-Boot happy, properly set the GPIO to mask the
>>>>> reset to the TPM.
>>>>>
>>>>> Signed-off-by: Doug Anderson <dianders at chromium.org>
>>>>> Signed-off-by: Vikas Sajjan <vikas.sajjan at samsung.com>
>>>> (...)
>>>>> +       /* We need GPX0_6 to be low at sleep time; just keep it low always */
>>>>> +       mask_tpm_reset_regulator: mask-tpm-reset-regulator {
>>>>> +       compatible = "regulator-fixed";
>>>>
>>>> No matter how the discussion ends up, regulator-fixed is wrong.
>>>
>>> OK, fair enough.
>>>
>>>
>>>> Either folding it into the TPM driver or using a separate reset driver
>>>> is fine with me.
>>>
>>> OK, Vikas: do you want to code up the driver?
>>>
>>>
>>>> So what about the generic delayed reset GPIO thing?
>>>> http://marc.info/?l=linux-kernel&m=140309916607115&w=2
>>>
>>> That's a neat concept and could be useful in other cases, but I think
>>> it's just as much of a hack as using a regulator.  This is not a reset
>>> signal for the TPM.  This is a signal that will mask the CPU's reset
>>> signal (using a special bit of board-specific logic).
>>>
>>>
>>> Personally I think Tomasz's idea of using hogs (after his patches
>>> allowing a default output level) is the cleanest, but I think Stephen
>>> didn't like that.
>>
>> I don't see any benefits of using complex interfaces over simply
>> initializing the pin to the right value once at boot-up or at
>> suspend/resume. As far as I understand Doug's explanation of the
>> problem, nothing else is expected from the OS with respect to this pin.
>> Moreover it doesn't affect operation of any drivers.
>>
>> So I'm still for the simplest and effective solution, i.e. hogs.
>
> It looks as if Tomasz's patch has landed, so perhaps you could try to
> code it up his way.  It should be very simple.  Please make sure to CC
> Stephen Warren on the patch so that he is included in the discussion
> (and of course include Tomasz, Linus W, etc).

Can you point me to Tomasz's patchset on which I should rebase this patch on.


>
> -Doug



More information about the linux-arm-kernel mailing list