Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1061405imm; Wed, 23 May 2018 09:38:44 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqxUsyMFv17xlF3z3Qn9a9G8Hne5AVbftxeI+aqWLonXH3gwRx0WCQcgRuqz0KIMvuda4Gc X-Received: by 2002:a63:715a:: with SMTP id b26-v6mr2975550pgn.47.1527093524295; Wed, 23 May 2018 09:38:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527093524; cv=none; d=google.com; s=arc-20160816; b=wxptPywT4S+1D0JbSQy+feidnKfBChyg8eFAsNb+hmNdj5GIKjSlb0+I2GpcVGqWqa iA9A4zn0bGHaXDIFCmabYOLam+onkyiqDbDYpUA2VZeoMNVgPd3Iemckrlinwlnu2prA zWfdeM5nyYodnPGoqxJFcAq+hKYb1aryeOnxJSCdQbw22CzA2MdtxJCvbUyQUAdAZj9k /tDsLGeuITM17qdcLDm74NvfiQcKa9V9PyRwpeHw9r35CRsdp0NQYmGGBU7H49gWz46M cDXHrR4jLCdBuP4DFiANTIZJK66/wbNv6B8WsOkPdnRyoBsivHuaLegTq6rFCYyjm2p+ f1Lw== 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=IhJL8I3B5aSe0YWp+p3lD2RVWN7G5O7Q7G2KTrmdo28=; b=vZqLUCKOsFknSe8qkLCrUcxN66orp2oGNSR0mq2e9rNVdogCGWaNICQTNaaIoJAX73 5ziadcozG4Zs4KAmsTb67DkKS+tuVCuUvfmMZmxBrrjQxYWuICWYsqhre6sWkpK2Nfdb UyWY1TtyRGp5b47JXJGGWhSymqe3h0wtjxidZvuuUkcsqGgRqapRhHGDu2IUk+nu3A8U Ue4fJ+amkN/671ikOhcWJvCOoZWpQGMmPb7AuJPNx3+F8whuKj8wF18YGGM3gzXvkoro kY9GwPiybr9P2ZWgo7hBo/puNNYavhGk0Cepccs12HQivBH/yjxwKGKj52yjvM0Q8Z4D zoGQ== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g5-v6si18620402plp.108.2018.05.23.09.38.25; Wed, 23 May 2018 09:38: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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754778AbeEWQiD (ORCPT + 99 others); Wed, 23 May 2018 12:38:03 -0400 Received: from mga17.intel.com ([192.55.52.151]:15986 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754623AbeEWQiB (ORCPT ); Wed, 23 May 2018 12:38:01 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 May 2018 09:38:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,433,1520924400"; d="scan'208";a="43337861" Received: from yoojae-mobl1.amr.corp.intel.com (HELO [10.7.153.151]) ([10.7.153.151]) by orsmga007.jf.intel.com with ESMTP; 23 May 2018 09:38:00 -0700 Subject: Re: [v4 07/11] dt-bindings: hwmon: Add documents for PECI hwmon client drivers To: Rob Herring Cc: Mark Rutland , Haiyue Wang , Vernon Mauery , James Feist , devicetree@vger.kernel.org, "linux-kernel@vger.kernel.org" , Andrew Jeffery , Arnd Bergmann , Jason M Biils , Joel Stanley References: <20180521195905.27983-1-jae.hyun.yoo@linux.intel.com> <20180522164230.GA11707@rob-hp-laptop> From: Jae Hyun Yoo Message-ID: <51752610-d2c1-7fbc-101e-e99346fa29e4@linux.intel.com> Date: Wed, 23 May 2018 09:37:59 -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 5/23/2018 8:11 AM, Rob Herring wrote: > On Tue, May 22, 2018 at 12:18 PM, Jae Hyun Yoo > wrote: >> On 5/22/2018 9:42 AM, Rob Herring wrote: >>> >>> On Mon, May 21, 2018 at 12:59:05PM -0700, Jae Hyun Yoo wrote: >>>> >>>> This commit adds dt-bindings documents for PECI hwmon client drivers. >>>> >>>> Signed-off-by: Jae Hyun Yoo >>>> Reviewed-by: Haiyue Wang >>>> Reviewed-by: James Feist >>>> Reviewed-by: Vernon Mauery >>>> Cc: Andrew Jeffery >>>> Cc: Arnd Bergmann >>>> Cc: Jason M Biils >>>> Cc: Joel Stanley >>>> --- >>>> .../bindings/hwmon/peci-cputemp.txt | 23 ++++++++++++++++++ >>>> .../bindings/hwmon/peci-dimmtemp.txt | 24 +++++++++++++++++++ >>>> 2 files changed, 47 insertions(+) >>>> create mode 100644 >>>> Documentation/devicetree/bindings/hwmon/peci-cputemp.txt >>>> create mode 100644 >>>> Documentation/devicetree/bindings/hwmon/peci-dimmtemp.txt >>>> >>>> diff --git a/Documentation/devicetree/bindings/hwmon/peci-cputemp.txt >>>> b/Documentation/devicetree/bindings/hwmon/peci-cputemp.txt >>>> new file mode 100644 >>>> index 000000000000..2f59aee12d9e >>>> --- /dev/null >>>> +++ b/Documentation/devicetree/bindings/hwmon/peci-cputemp.txt >>>> @@ -0,0 +1,23 @@ >>>> +Bindings for Intel PECI (Platform Environment Control Interface) cputemp >>>> driver. >>>> + >>>> +Required properties: >>>> +- compatible : Should be "intel,peci-cputemp". >>>> +- reg : Should contain address of a client CPU. Address range of >>>> CPU >>>> + clients is starting from 0x30 based on PECI specification. >>>> + >>>> +Example: >>>> + peci-bus@0 { >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + < more properties > >>>> + >>>> + peci-cputemp@30 { >>>> + compatible = "intel,peci-cputemp"; >>>> + reg = <0x30>; >>>> + }; >>> >>> >>> [...] >>> >>>> + peci-dimmtemp@30 { >>>> + compatible = "intel,peci-dimmtemp"; >>>> + reg = <0x30>; >>>> + }; >>> >>> >>> As I said in the prior version, 2 nodes at the same address is wrong. >>> >>> Rob >>> >> >> In PECI bus, there is one and only bus host (adapter) and multiple >> clients on a PECI bus, and PECI spec doesn't allow multiple originators >> so only the host device can originate message. > > Yes, I get that. A single host still has to address slave devices. > >> In this implementation, >> all message transactions on a bus from client driver modules and user >> space will be serialized well in the PECI core bus driver so bus >> occupation and traffic arbitration will be managed well in the PECI core >> bus driver even in case of a bus has 2 client drivers at the same >> address. I'm sure that this implementation doesn't make that kind of >> problem to OS. > > Multiple clients to a single device is common, but that is a software > problem and doesn't belong in DT. > > I don't think there is a single other case in the kernel where > multiple drivers can bind to the same device at a given bus address. > That is why we have things like MFD. Though in this case, why can't > one hwmon driver register multiple hwmon devices (cpu and dimm temps)? > It was implemented as a single driver until v2 but dimm temps need delayed creation unlikely the cpu temps on hwmon subsystem because of memory training behavior of remote x86 cpus. Since hwmon doesn't allow incremental creation, I had to divide it into two, cputemp and dimmtemp, so that cputemp can be registered immediately when the remote x86 cpu turns on and dimmtemp can be registered by delayed creation. It is the reason why I had to make the two hwmon driver modules that sharing a single device address. Additionally, PECI isn't limited for temperature monitoring feature but it can be used for other functions such as platform management, cpu interface tuning and diagnostics and failure analysis, so in case of adding a new driver for the functions, we should add an another DT node which is sharing the same cpu address. Thanks, -Jae