Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751932AbbLJBcH (ORCPT ); Wed, 9 Dec 2015 20:32:07 -0500 Received: from mail-qg0-f49.google.com ([209.85.192.49]:34820 "EHLO mail-qg0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751286AbbLJBcE (ORCPT ); Wed, 9 Dec 2015 20:32:04 -0500 MIME-Version: 1.0 In-Reply-To: <20151208220722.GG4000@usrtlx11787.corpusers.net> References: <1449610162-30543-1-git-send-email-john.stultz@linaro.org> <20151208220722.GG4000@usrtlx11787.corpusers.net> Date: Wed, 9 Dec 2015 17:32:02 -0800 Message-ID: Subject: Re: [RFC][PATCH] misc: Introduce reboot_reason driver From: John Stultz To: Bjorn Andersson Cc: lkml , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Vinay Simha BN , Haojian Zhuang , "devicetree@vger.kernel.org" , Android Kernel Team , Andy Gross , "linux-arm-msm@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2467 Lines: 59 On Tue, Dec 8, 2015 at 2:07 PM, Bjorn Andersson wrote: > On Tue 08 Dec 13:29 PST 2015, John Stultz wrote: >> diff --git a/arch/arm/boot/dts/qcom-apq8064-nexus7-flo.dts b/arch/arm/boot/dts/qcom-apq8064-nexus7-flo.dts >> index 5183d18..ee5dcb7 100644 >> --- a/arch/arm/boot/dts/qcom-apq8064-nexus7-flo.dts >> +++ b/arch/arm/boot/dts/qcom-apq8064-nexus7-flo.dts >> @@ -282,6 +282,15 @@ >> }; >> }; >> >> + reboot_reason: reboot_reason@2a03f65c { >> + compatible = "reboot_reason"; >> + reg = <0x2A03F65C 0x4>; >> + reason,none = <0x77665501>; >> + reason,bootloader = <0x77665500>; >> + reason,recovery = <0x77665502>; >> + reason,oem = <0x6f656d00>; >> + }; >> + > > This address refers to IMEM, which is shared with a number of other > uses. So I think we should have a simple-mfd (and syscon) with this > within. So talking with Arnd some more it looked like IMEM was really just SRAM. Is that not the case, or is there something else special about it? Does it really need simple-mfd and syscon? I'm still fuzzy on how to use those for this. >> + /* initialize specified reasons from DT */ >> + if (!of_property_read_u32(pdev->dev.of_node, "reason,none", &val)) >> + reasons[NONE] = val; >> + if (!of_property_read_u32(pdev->dev.of_node, "reason,bootloader", &val)) >> + reasons[BOOTLOADER] = val; >> + if (!of_property_read_u32(pdev->dev.of_node, "reason,recovery", &val)) >> + reasons[RECOVERY] = val; >> + if (!of_property_read_u32(pdev->dev.of_node, "reason,oem", &val)) >> + reasons[OEM] = val; > > I would like for this to be less hard coded. So thinking of this more. Is having something like: cmds = "default", "bootloader", "recovery"; vals = <0xmagic1>, <0xmagic2>, <0xmagic3>; what you're thinking about? This wouldn't quite handle the "oem-N" options as simply, but they could define each oem- case explicitly in the DT to support it. thanks -john -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/