From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756241AbbIVPId (ORCPT ); Tue, 22 Sep 2015 11:08:33 -0400 Received: from bh-25.webhostbox.net ([208.91.199.152]:59826 "EHLO bh-25.webhostbox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752517AbbIVPIb (ORCPT ); Tue, 22 Sep 2015 11:08:31 -0400 Subject: Re: Please suggest proper format for DT properties. To: Arnd Bergmann , Constantine Shulyupin , Jean Delvare References: <1442615803-17766-1-git-send-email-const@MakeLinux.com> <3914149.k3sqApaTEz@wuerfel> Cc: open list , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala From: Guenter Roeck Message-ID: <56016EE9.1010302@roeck-us.net> Date: Tue, 22 Sep 2015 08:08:25 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <3914149.k3sqApaTEz@wuerfel> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Authenticated_sender: linux@roeck-us.net X-OutGoing-Spam-Status: No, score=-1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bh-25.webhostbox.net X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - roeck-us.net X-Get-Message-Sender-Via: bh-25.webhostbox.net: authenticated_id: linux@roeck-us.net X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/22/2015 01:36 AM, Arnd Bergmann wrote: > On Saturday 19 September 2015 01:36:43 Constantine Shulyupin wrote: >> >> I am designing DT support for a hwmon chip. >> It has some sensors, each of them can be: >> - "disabled" >> - "thermal diode" >> - "thermistor" >> - "voltage" >> >> Four possible options for DT properties format. >> >> Option 1: Separated property for each sensor. >> >> Example nct7802 node: >> >> nct7802 { >> compatible = "nuvoton,nct7802"; >> reg = <0x2a>; >> nuvoton,sensor1-type = "thermistor"; >> nuvoton,sensor2-type = "disabled"; >> nuvoton,sensor3-type = "voltage"; >> }; >> >> Option 2: Array of strings for all sensors. >> >> nct7802 { >> compatible = "nuvoton,nct7802"; >> reg = <0x2a>; >> nuvoton,sensors-types = "thermistor", "disabled", "voltage"; >> }; >> >> Option 3: Sets of 4 cells. >> >> Borrowed from marvell,reg-init and broadcom,c45-reg-init. >> >> The first cell is the page address, >> the second a register address within the page, >> the third cell contains a mask to be ANDed with the existing register >> value, and the fourth cell is ORed with the result to yield the >> new register value. If the third cell has a value of zero, >> no read of the existing value is performed. >> >> Example nct7802 node: >> >> nct7802 { >> compatible = "nuvoton,nct7802"; >> reg = <0x2a>; >> nct7802,reg-init = >> <0 0x21 0 0x01 > // START = 1 >> <0 0x22 0x03 0x02>; // RTD1_MD = 2 >> }; >> > > I would strongly prefer Option 1 or 2 over option 3. > Between 1 and 2, I'd probably go for 1. Another option might > be to have a subnode per sensor: > > nct7802@2a { > compatible = "nuvoton,nct7802"; > reg = <0x2a>; > #address-cells=<1>; > #size-cells=<0>; > > sensor@1 { > compatible = "nuvoton,nct7802-thermistor"; > further-properties; > }; > sensor@3 { > compatible = "nuvoton,nct7802-voltage"; > for-example-range-mv = <0 5000>; > }; > }; > I personally would prefer this approach. It would also make it easier to add more properties. Wonder what is more appropriate, though - a compatible property or something like the following ? sensor-type = "xxx"; I don't have a preference, just asking. Also, would the index be derived from "@1", or should there be a reg property ? > In either case, I'd say that disabled sensors should not need to > be listed. > Agreed. Thanks, Guenter