[PATCH 08/10] ARM: VFxxx: Add code to detect reset reason
Andrey Smirnov
andrew.smirnov at gmail.com
Mon Apr 16 06:12:32 PDT 2018
On Mon, Apr 16, 2018 at 12:19 AM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> On Sat, Apr 14, 2018 at 10:50:22AM -0700, Andrey Smirnov wrote:
>> Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
>> ---
>> arch/arm/mach-imx/imx.c | 78 +++++++++++++++++----------
>> arch/arm/mach-imx/include/mach/reset-reason.h | 11 ++++
>> 2 files changed, 62 insertions(+), 27 deletions(-)
>>
>> diff --git a/arch/arm/mach-imx/imx.c b/arch/arm/mach-imx/imx.c
>> index fb1160de9..e84713766 100644
>> --- a/arch/arm/mach-imx/imx.c
>> +++ b/arch/arm/mach-imx/imx.c
>> @@ -158,6 +158,7 @@ void imx_set_reset_reason(void __iomem *srsr)
>> {
>> enum reset_src_type type = RESET_UKWN;
>> const u32 reg = readl(srsr);
>> + const bool is_vf610 = cpu_is_vf610();
>>
>> /*
>> * SRSR register captures ALL reset event that occured since
>> @@ -166,37 +167,60 @@ void imx_set_reset_reason(void __iomem *srsr)
>> */
>> writel(reg, srsr);
>>
>> - switch (reg) {
>> - case IMX_SRC_SRSR_IPP_RESET: /* FALLTHROUGH */
>> - case IMX_SRC_SRSR_IPP_RESET | IMX_SRC_SRSR_WDOG1_RESET:
>> - type = RESET_POR;
>> - break;
>> - case IMX_SRC_SRSR_WDOG3_RESET: /* FALLTHROUGH */
>> - case IMX_SRC_SRSR_WDOG4_RESET: /* FALLTHROUGH */
>> - case IMX_SRC_SRSR_WDOG1_RESET:
>> - type = RESET_WDG;
>> - break;
>> - case IMX_SRC_SRSR_JTAG_RESET: /* FALLTHROUGH */
>> - case IMX_SRC_SRSR_JTAG_SW_RESET:
>> - type = RESET_JTAG;
>> - break;
>> - case IMX_SRC_SRSR_TEMPSENSE_RESET:
>> - type = RESET_THERM;
>> - break;
>> - case IMX_SRC_SRSR_WARM_BOOT:
>> - type = RESET_RST;
>> - break;
>> + if (is_vf610) {
>
> The caller already knows this is a vf610 and the code path for vf610 is
> completely different. Please add a vf610_set_reset_reason() instead of
> clobbering the i.MX function with this.
>
They do share code fore clearing RSRS register, but sure, will do in v2.
Thanks,
Andrey Smirnov
More information about the barebox
mailing list