Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753566AbbLNTzH (ORCPT ); Mon, 14 Dec 2015 14:55:07 -0500 Received: from seldrel01.sonyericsson.com ([37.139.156.2]:13051 "EHLO seldrel01.sonyericsson.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753368AbbLNTzD (ORCPT ); Mon, 14 Dec 2015 14:55:03 -0500 Date: Mon, 14 Dec 2015 11:54:51 -0800 From: Bjorn Andersson To: John Stultz 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" Subject: Re: [RFC][PATCH] misc: Introduce reboot_reason driver Message-ID: <20151214195450.GQ4000@usrtlx11787.corpusers.net> References: <1449610162-30543-1-git-send-email-john.stultz@linaro.org> <20151208220722.GG4000@usrtlx11787.corpusers.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.22 (2013-10-16) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3273 Lines: 78 On Wed 09 Dec 17:32 PST 2015, John Stultz wrote: > 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. > I'm pretty sure it's just SRAM, but I hadn't looked at that binding before, sounds like a conceptually better fit. The part that I was looking for was the convenience of having a regmap available for the uses that we will find later on, but I guess sram provides similar means of accessing various pieces of the memory. > >> + /* 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? As these are normally just ascii strings I was thinking we could have them as individual properties and then use for_each_property_of_node() on the implementation side. But it doesn't really matter. > > 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. > If we have a reasonably dynamic way of defining these there's little to no reason to treat oem-N specially from the others. Regards, Bjorn -- 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/