From: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
To: opensbi@lists.infradead.org
Subject: [PATCH v2 5/5] lib: utils/reset: Add generic da9063 reset driver
Date: Wed, 3 Nov 2021 13:07:29 +0100 [thread overview]
Message-ID: <1faef420-1516-fee0-058a-210176ab4703@canonical.com> (raw)
In-Reply-To: <20211103105940.4c20e7bc@redslave.neermore.group>
On 11/3/21 08:59, Nikita Shubin wrote:
> Hello All!
>
> On Tue, 26 Oct 2021 11:40:13 +0200
> Heinrich Schuchardt <heinrich.schuchardt@canonical.com> wrote:
>
>> On 10/26/21 10:04, Heinrich Schuchardt wrote:
>>> On 10/15/21 15:19, Nikita Shubin wrote:
>>>> From: Nikita Shubin <n.shubin@yadro.com>
>>>>
>>>> da9063 PMIC can be used to reset/shutdown the
>>>> Sifive Unmatched board.
>>>>
>>>> shutdown is done simply by writing SHUTDOWN bit to
>>>> DA9063_REG_CONTROL_F register.
>>>>
>>>> reset via setting WAKEUP bit in DA9063_REG_CONTROL_F
>>>> register followed by masking POWER and POWER1 domains
>>>> and setting STANDBY bit in DA9063_REG_CONTROL_A,
>>>> originally discovered by Alexandre Ghiti on linux-riscv
>>>> maillists.
>>>>
>>>> Signed-off-by: Nikita Shubin <n.shubin@yadro.com>
>>
>> Alexandre and I had the same finding for the driver:
>>
>> Reset works fine after a hard reset (via the reset button) when
>> coming from Linux.
>>
>> After a poweroff reset in U-Boot does not work.
>>
>> Our expectation is that OpenSBI ensures that the SBI system reset
>> extension works upon entry into the next firmware stage without
>> requiring any further initialization by that software.
>>
>> When a reset is requested you should make not presumption about the
>> state of the system. Simply fully initialize the da9063 state to
>> guarantee a successful reset.
>
> Heinrich and Alexandre, i have done a small investigation:
>
> The RTC works fine on Unmatched, just had a small issue with PLIC driver
> firing IRQ only once, here is a separate patch from Guo Ren:
>
> https://patchwork.kernel.org/project/linux-riscv/patch/20211101131736.3800114-1-guoren at kernel.org/
>
> And a small patch to enable da9063 as a wakeup source:
>
> https://github.com/YADRO-KNS/linux/commit/37c2a5b2031a42af99dd7125f8c93ab71236d3fa
>
> Indeed after power-cycle with RESET button or POWER button, I2C is
> unavailable (not initialised by U-Boot):
>
> First boot reset after powercycle with powerdown/reset button:
> => reset
> resetting ...
> da9063_system_reset: chip is not da9063 PMIC
>
> After rebooting with Linux reboot:
> => reset
> resetting ...
>
> All okay and that's means that it's not a full reset, I2C was
> initialised by linux, and not resetted.
Doesn't this imply that the I2C initialization code should be added to
OpenSBI?
Best regards
Heinrich
>
> However if we arm the clock and go shutdown:
>
> sh -c "echo `date '+%s' -d '+ 1 minutes'` >
> /sys/class/rtc/rtc0/wakealarm" shutdown
> shutdown
>
> We get:
> => reset
> resetting ...
> da9063_system_reset: chip is not da9063 PMIC
>
> So "reset" with RTC is indeed a full reset...
>
> All above also means that "sacrificing" RTC means sacrificing user
> setted wakeup ALARM's.
>
> May be it's worth splitting reset into WARM_REBOOT, COLD_REBOOT with
> WARM reboot is going through method proposed by Alexandre and COLD
> reboot via RTC, and explicitly specify that COLD reboot WILL overwrite
> ALARM setting ?
>
> What do you think about this ?
>
>>
>> Best regards
>>
>> Heinrich
>
next prev parent reply other threads:[~2021-11-03 12:07 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-15 13:19 [PATCH v2 0/5] I2C framework, reboot Unmatched via PMIC Nikita Shubin
2021-10-15 13:19 ` [PATCH v2 1/5] lib: utils/reset: add priority to gpio reset Nikita Shubin
2021-10-15 13:19 ` [PATCH v2 2/5] lib: utils/i2c: Add generic I2C configuration library Nikita Shubin
2021-10-19 12:04 ` Alexandre Ghiti
2021-10-20 6:41 ` Nikita Shubin
2021-10-20 8:19 ` Alexandre Ghiti
2021-10-15 13:19 ` [PATCH v2 3/5] lib: utils/i2c: Add simple FDT based I2C framework Nikita Shubin
2021-10-19 12:05 ` Alexandre Ghiti
2021-10-20 6:49 ` Nikita Shubin
2021-10-15 13:19 ` [PATCH v2 4/5] lib: utils/i2c: Add minimal SiFive I2C driver Nikita Shubin
2021-10-19 12:34 ` Alexandre Ghiti
2021-10-20 6:51 ` Nikita Shubin
2021-10-15 13:19 ` [PATCH v2 5/5] lib: utils/reset: Add generic da9063 reset driver Nikita Shubin
2021-10-19 12:39 ` Alexandre Ghiti
2021-10-20 7:00 ` Nikita Shubin
2021-10-20 8:33 ` Alexandre Ghiti
2021-10-20 9:00 ` Nikita Shubin
2021-10-21 4:40 ` Alexandre Ghiti
2021-10-26 8:04 ` Heinrich Schuchardt
2021-10-26 9:40 ` Heinrich Schuchardt
2021-10-26 14:17 ` Nikita Shubin
2021-11-03 7:59 ` Nikita Shubin
2021-11-03 12:07 ` Heinrich Schuchardt [this message]
2021-11-03 12:13 ` Nikita Shubin
2021-11-04 13:06 ` Anup Patel
2021-10-15 13:44 ` [PATCH v2 0/5] I2C framework, reboot Unmatched via PMIC Jessica Clarke
[not found] ` <1372921634305615@mail.yandex.ru>
[not found] ` <32095245-4C98-4C9E-9DAF-68167106A968@jrtc27.com>
2021-10-15 14:05 ` Nikita Shubin
2021-10-15 14:21 ` Jessica Clarke
2021-10-15 15:05 ` Alexandre Ghiti
2021-10-19 11:57 ` Alexandre Ghiti
2021-10-20 7:26 ` Nikita Shubin
2021-10-20 8:11 ` Alexandre Ghiti
2021-10-20 8:42 ` Nikita Shubin
2021-10-21 4:34 ` Alexandre Ghiti
2021-10-20 4:59 ` Alexandre Ghiti
2021-10-20 6:17 ` Nikita Shubin
2021-10-26 6:34 ` Alexandre Ghiti
2021-10-26 14:30 ` Nikita Shubin
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=1faef420-1516-fee0-058a-210176ab4703@canonical.com \
--to=heinrich.schuchardt@canonical.com \
--cc=opensbi@lists.infradead.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