Received: by 10.192.165.156 with SMTP id m28csp1730281imm; Wed, 18 Apr 2018 14:58:44 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/+pNDGGnsph2oqqb0rhj++cvLaZq7IbD3EvkCqK5wNorpkiTHoISvLWfwe5JhUeRFaqnyB X-Received: by 10.101.76.207 with SMTP id n15mr3043279pgt.313.1524088724573; Wed, 18 Apr 2018 14:58:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524088724; cv=none; d=google.com; s=arc-20160816; b=tCANkFTOv1xDsisB457IbCxzw2TYwm93aVeN9LTgDYKFyZ1haK+Xj9xLSJK0AD7zEV E1Fd8h6LLkyKYfqnEUZ///nyEE8Fj1wYmtpcelupDz61g3fvxJkmi/UW2OxI/e9tnRMf bRyJKGMdZGS8czxWKqW3L5EkNDyWTDfUpOsSdU4av5k0QblQsXWjPwCXWag1Ua2CThdI Jatg9//5FsIeQduShg40Vq3yMTI1x7EhClBu5joFuRqSQZk4ZAylTooXeXCY1l1VIE1g oiQ60bysLo/5bFLIbB6njyd4ZeDcW5d7Bzwj7BQsYBccGt7lWp4NWX8893zsjsCAkUOq Eoyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=Cmn/hwnL0LiIC7T4dqsY9BYN660XfAzOVXKDBpdo4sM=; b=NsLJGB8TT73wXSh9QK2sOnuUSON9K7/XKX/OaEqdUV3U5XDPBcy8avotxKf2uVJBff qtt6Kzvr0sCMtcX46bKDICLD+gnMFNxPrh1pwGKhfb0IU+Q5kVIMEuPFTGJRF6LJY9lU 7qzn5UZz7iFy/UFfZmZ9/Bgl8Bq2OPgHx2y+2A5jYCJLNk/2KqchPLx1Ogn1ZTe8pT7o RFHzC57CsclYKHdzr+j//vHNCIgvuk5nsz3rvv9lW4+TsRZchs6ShoONOewLqNia6v0Y YnLSXQJsKZiczvDr5qBF2X9+NmH1wvg+yvWWKprC1KLs3QtbszTMSV5CjedHCQQVVGu4 +yKg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c1-v6si1928612pld.585.2018.04.18.14.58.28; Wed, 18 Apr 2018 14:58:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752710AbeDRV5P (ORCPT + 99 others); Wed, 18 Apr 2018 17:57:15 -0400 Received: from mga14.intel.com ([192.55.52.115]:32756 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752499AbeDRV5L (ORCPT ); Wed, 18 Apr 2018 17:57:11 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Apr 2018 14:57:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,466,1517904000"; d="scan'208";a="33630149" Received: from yoojae-mobl1.amr.corp.intel.com (HELO [10.7.153.150]) ([10.7.153.150]) by fmsmga008.fm.intel.com with ESMTP; 18 Apr 2018 14:57:09 -0700 Subject: Re: [PATCH v3 07/10] Documentation: dt-bindings: Add documents for PECI hwmon client drivers To: Rob Herring Cc: Alan Cox , Andrew Jeffery , Andrew Lunn , Andy Shevchenko , Arnd Bergmann , Benjamin Herrenschmidt , Fengguang Wu , Greg KH , Guenter Roeck , Haiyue Wang , James Feist , Jason M Biils , Jean Delvare , Joel Stanley , Julia Cartwright , Miguel Ojeda , Milton Miller II , Pavel Machek , Randy Dunlap , Stef van Os , Sumeet R Pawnikar , Vernon Mauery , "linux-kernel@vger.kernel.org" , linux-doc@vger.kernel.org, devicetree@vger.kernel.org, Linux HWMON List , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , OpenBMC Maillist References: <20180410183212.16787-1-jae.hyun.yoo@linux.intel.com> <20180410183212.16787-8-jae.hyun.yoo@linux.intel.com> <20180416181423.t4vf7sugv6z3aw5h@rob-hp-laptop> <287e0fd9-b631-2602-2785-7b8aaed7a6b9@linux.intel.com> <6ff697e8-cd20-e551-da13-b614cc39f900@linux.intel.com> <1f2a86ff-b902-1d1d-488a-807ac1dd20cc@linux.intel.com> From: Jae Hyun Yoo Message-ID: <884d3c16-84e8-e38a-731a-313ba7105176@linux.intel.com> Date: Wed, 18 Apr 2018 14:57:09 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/18/2018 2:28 PM, Rob Herring wrote: > On Wed, Apr 18, 2018 at 3:28 PM, Jae Hyun Yoo > wrote: >> On 4/18/2018 7:32 AM, Rob Herring wrote: >>> >>> On Tue, Apr 17, 2018 at 3:40 PM, Jae Hyun Yoo >>> wrote: >>>> >>>> On 4/16/2018 4:51 PM, Jae Hyun Yoo wrote: >>>>> >>>>> >>>>> On 4/16/2018 4:22 PM, Jae Hyun Yoo wrote: >>>>>> >>>>>> >>>>>> On 4/16/2018 11:14 AM, Rob Herring wrote: >>>>>>> >>>>>>> >>>>>>> On Tue, Apr 10, 2018 at 11:32:09AM -0700, Jae Hyun Yoo wrote: >>>>>>>> >>>>>>>> >>>>>>>> This commit adds dt-bindings documents for PECI cputemp and dimmtemp >>>>>>>> client >>>>>>>> drivers. >>>>>>> >>>>>>> >>>>>>> >>>> >>>> [...] >>>> >>>>>>>> +Example: >>>>>>>> + peci-bus@0 { >>>>>>>> + #address-cells = <1>; >>>>>>>> + #size-cells = <0>; >>>>>>>> + < more properties > >>>>>>>> + >>>>>>>> + peci-dimmtemp@cpu0 { >>>>>>> >>>>>>> >>>>>>> >>>>>>> unit-address is wrong. >>>>>>> >>>>>> >>>>>> Will fix it using the reg value. >>>>>> >>>>>>> It is a different bus from cputemp? Otherwise, you have conflicting >>>>>>> addresses. If that's the case, probably should make it clear by >>>>>>> showing >>>>>>> different host adapters for each example. >>>>>>> >>>>>> >>>>>> It could be the same bus with cputemp. Also, client address sharing is >>>>>> possible by PECI core if the functionality is different. I mean, >>>>>> cputemp and >>>>>> dimmtemp targeting the same client is possible case like this. >>>>>> peci-cputemp@30 >>>>>> peci-dimmtemp@30 >>>>>> >>>>> >>>>> Oh, I got your point. Probably, I should change these separate settings >>>>> into one like >>>>> >>>>> peci-client@30 { >>>>> compatible = "intel,peci-client"; >>>>> reg = <0x30>; >>>>> }; >>>>> >>>>> Then cputemp and dimmtemp drivers could refer the same compatible >>>>> string. >>>>> Will rewrite it. >>>>> >>>> >>>> I've checked it again and realized that it should use function based node >>>> name like: >>>> >>>> peci-cputemp@30 >>>> peci-dimmtemp@30 >>>> >>>> If it use the same string like 'peci-client@30', the drivers cannot be >>>> selectively enabled. The client address sharing way is well handled in >>>> PECI >>>> core and this way would be better for the future implementations of other >>>> PECI functional drivers such as crash dump driver and so on. So I'm going >>>> change the unit-address only. >>> >>> >>> 2 nodes at the same address is wrong (and soon dtc will warn you on >>> this). You have 2 potential options. The first is you need additional >>> address information in the DT if these are in fact 2 independent >>> devices. This could be something like a function number to use >>> something from PCI addressing. From what I found on PECI, it doesn't >>> seem to have anything like that. The 2nd option is you have a single >>> DT node which registers multiple hwmon devices. DT nodes and drivers >>> don't have to be 1-1. Don't design your DT nodes from how you want to >>> partition drivers in some OS. >>> >>> Rob >>> >> >> Please correct me if I'm wrong but I'm still thinking that it is >> possible. Also, I did compile it but dtc doesn't make a warning. Let me >> show an another use case which is similar to this case: > > I did say *soon*. It's in dtc repo, but not the kernel copy yet. > >> In arch/arm/boot/dts/aspeed-g5.dtsi >> [...] >> lpc_host: lpc-host@80 { >> compatible = "aspeed,ast2500-lpc-host", "simple-mfd", "syscon"; >> reg = <0x80 0x1e0>; >> reg-io-width = <4>; >> >> #address-cells = <1>; >> #size-cells = <1>; >> ranges = <0x0 0x80 0x1e0>; >> >> lpc_ctrl: lpc-ctrl@0 { >> compatible = "aspeed,ast2500-lpc-ctrl"; >> reg = <0x0 0x80>; >> clocks = <&syscon ASPEED_CLK_GATE_LCLK>; >> status = "disabled"; >> }; >> >> lpc_snoop: lpc-snoop@0 { >> compatible = "aspeed,ast2500-lpc-snoop"; >> reg = <0x0 0x80>; >> interrupts = <8>; >> status = "disabled"; >> }; >> } >> [...] >> >> This is device tree setting for LPC interface and its child nodes. >> LPC interface can be used as a multi-functional interface such as >> snoop 80, KCS, SIO and so on. In this use case, lpc-ctrl@0 and >> lpc-snoop@0 are sharing their address range from their individual >> driver modules and they can be registered quite well through both >> static dt or dynamic dtoverlay. PECI is also a multi-functional >> interface which is similar to the above case, I think. > > This case too is poor design and should be fixed as well. Simply put, > you can have 2 devices on a bus at the same address without some sort > of mux or arbitration device in the middle. If you have a device/block > with multiple functions provided to the OS, then it is the OS's > problem to arbitrate access. It is not a DT problem because OS's can > vary in how they handle that both from OS to OS and over time. > > Rob > If I change it to a single DT node which registers 2 hwmon devices using the 2nd option above, then I still have 2 devices on a bus at the same address. Does it also make a problem to the OS then? Jae