Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp4503661imm; Mon, 30 Jul 2018 16:17:25 -0700 (PDT) X-Google-Smtp-Source: AAOMgpf3ADjOuKawwq6FyABVZ5Lns1H870Zn/LE0qHMHTAKzvslrBG2iOuL66ob2Hbkw3bUb3can X-Received: by 2002:a62:df4e:: with SMTP id u75-v6mr19814256pfg.195.1532992645138; Mon, 30 Jul 2018 16:17:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532992645; cv=none; d=google.com; s=arc-20160816; b=bK250xw5yA6HKaLsjZxDIZkUhx9wf/eOey+L+ui7sIidt89S7WSWQ7CVsEJwkUjfwh m4EG82VCM/3MHPBrrjsEE/ESoxVt0W34iZeTE38F0b7G+H8skV3cmPaSvwHBbj5HgaWL BTfuDTmlCN/qBeWubpL5ajUnbDpEVnLjw4vYAWiiSX0wpx1kuM6RKYTFSU9qMqVjzltt 0uT5T2i4Sjl4D9FmLm9HaR22tFRrkNdcckERX1qEEEPrFWzZJG0bwiyDGkb5po7xSwlT JfFxWwRJR1z+zsaB4l6GECNuv0/tx+wg+OZQK3xiNZ4Pwc0HuxDegwjqg2PhUuzfE60z yoew== 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=idlZ8tlv8TjtoajeBKhDZKlW073HFjN/bFhF+/2C21w=; b=Hekmcb4ymfxh+CyJOW8CZ6Be8uUNpzOKAse24jhOyuerUeLCQ5QLu+Np/ZL0ISvG1M bXhiRB3U8Ou5zL8ngAur0wsSt48f234ZYGuffrkKll0Pij31TH9ThlUrCo0p7kOVSFhN /ilC4God5xjekWsrAZHLhG61PfvWzyzTuDvjb7ANBDCeXO1rpLYwKhjixaX6yZaD93jJ +sdqojmL7Qr950mUby8Cl3H4DotwnEvcZKoq1oD28ZVx0+/nLoI1mk2MIsq9DkxOWRs0 9AYV26KUhVdq+uwFl439W6h9Yw3zHrFOVygWH2MNZYh5G/U2mexlmlkWQ7s8AQCQQ4eT c4Sg== 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 m9-v6si12441422pga.456.2018.07.30.16.17.11; Mon, 30 Jul 2018 16:17:25 -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 S1732130AbeGaAxD (ORCPT + 99 others); Mon, 30 Jul 2018 20:53:03 -0400 Received: from mga07.intel.com ([134.134.136.100]:14706 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732038AbeGaAxD (ORCPT ); Mon, 30 Jul 2018 20:53:03 -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 orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Jul 2018 16:15:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,425,1526367600"; d="scan'208";a="60751514" Received: from yoojae-mobl1.amr.corp.intel.com (HELO [10.7.153.149]) ([10.7.153.149]) by orsmga007.jf.intel.com with ESMTP; 30 Jul 2018 16:15:45 -0700 Subject: Re: [PATCH v7 08/12] mfd: intel-peci-client: Add PECI client MFD driver To: Rob Herring Cc: Lee Jones , Jean Delvare , Guenter Roeck , Mark Rutland , Joel Stanley , Andrew Jeffery , Jonathan Corbet , Greg Kroah-Hartman , Gustavo Pimentel , Kishon Vijay Abraham I , Lorenzo Pieralisi , darrick.wong@oracle.com, sandeen@redhat.com, Arnd Bergmann , Wu Hao , kusumi.tomohiro@gmail.com, bryantly@linux.vnet.ibm.com, fbarrat@linux.vnet.ibm.com, David Miller , Mauro Carvalho Chehab , Andrew Morton , Randy Dunlap , Philippe Ombredanne , Vinod , Stephen Boyd , david.kershner@unisys.com, =?UTF-8?Q?Uwe_Kleine-K=c3=b6nig?= , Sagar Dharia , Johan Hovold , Thomas Gleixner , jgross@suse.com, Cyrille Pitchen , Linux HWMON List , devicetree@vger.kernel.org, "linux-kernel@vger.kernel.org" , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , linux-aspeed@lists.ozlabs.org, Linux Doc Mailing List , OpenBMC Maillist , James Feist , Jason M Biils , Vernon Mauery References: <20180723214751.1733-1-jae.hyun.yoo@linux.intel.com> <20180723214751.1733-9-jae.hyun.yoo@linux.intel.com> <20180727082611.GE4628@dell> From: Jae Hyun Yoo Message-ID: <7ab43253-1154-6e2f-b216-69b0d44b470a@linux.intel.com> Date: Mon, 30 Jul 2018 16:15:45 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 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 Hi Rob, On 7/30/2018 3:10 PM, Rob Herring wrote: > On Fri, Jul 27, 2018 at 11:36 AM Jae Hyun Yoo > wrote: >> >> Hi Lee, >> >> On 7/27/2018 1:26 AM, Lee Jones wrote: >>> On Mon, 23 Jul 2018, Jae Hyun Yoo wrote: >>> >>>> This commit adds PECI client MFD driver. >>>> >>>> Signed-off-by: Jae Hyun Yoo >>>> Cc: Lee Jones >>>> Cc: Rob Herring >>>> Cc: Andrew Jeffery >>>> Cc: James Feist >>>> Cc: Jason M Biils >>>> Cc: Joel Stanley >>>> Cc: Vernon Mauery >>>> --- >>>> drivers/mfd/Kconfig | 14 ++ >>>> drivers/mfd/Makefile | 1 + >>>> drivers/mfd/intel-peci-client.c | 182 ++++++++++++++++++++++++++ >>>> include/linux/mfd/intel-peci-client.h | 81 ++++++++++++ >>>> 4 files changed, 278 insertions(+) >>>> create mode 100644 drivers/mfd/intel-peci-client.c >>>> create mode 100644 include/linux/mfd/intel-peci-client.h >>>> >>>> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig >>>> index f3fa516011ec..e38b591479d4 100644 >>>> --- a/drivers/mfd/Kconfig >>>> +++ b/drivers/mfd/Kconfig >>>> @@ -595,6 +595,20 @@ config MFD_INTEL_MSIC >>>> Passage) chip. This chip embeds audio, battery, GPIO, etc. >>>> devices used in Intel Medfield platforms. >>>> >>>> +config MFD_INTEL_PECI_CLIENT >>>> + bool "Intel PECI client" >>>> + depends on (PECI || COMPILE_TEST) >>>> + select MFD_CORE >>>> + help >>>> + If you say yes to this option, support will be included for the >>>> + multi-funtional Intel PECI (Platform Environment Control Interface) >>>> + client. PECI is a one-wire bus interface that provides a communication >>>> + channel from PECI clients in Intel processors and chipset components >>>> + to external monitoring or control devices. >>>> + >>>> + Additional drivers must be enabled in order to use the functionality >>>> + of the device. >>>> + >>>> config MFD_IPAQ_MICRO >>>> bool "Atmel Micro ASIC (iPAQ h3100/h3600/h3700) Support" >>>> depends on SA1100_H3100 || SA1100_H3600 >>>> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile >>>> index 2852a6042ecf..29e2cacc58bd 100644 >>>> --- a/drivers/mfd/Makefile >>>> +++ b/drivers/mfd/Makefile >>>> @@ -203,6 +203,7 @@ obj-$(CONFIG_MFD_INTEL_LPSS) += intel-lpss.o >>>> obj-$(CONFIG_MFD_INTEL_LPSS_PCI) += intel-lpss-pci.o >>>> obj-$(CONFIG_MFD_INTEL_LPSS_ACPI) += intel-lpss-acpi.o >>>> obj-$(CONFIG_MFD_INTEL_MSIC) += intel_msic.o >>>> +obj-$(CONFIG_MFD_INTEL_PECI_CLIENT) += intel-peci-client.o >>>> obj-$(CONFIG_MFD_PALMAS) += palmas.o >>>> obj-$(CONFIG_MFD_VIPERBOARD) += viperboard.o >>>> obj-$(CONFIG_MFD_RC5T583) += rc5t583.o rc5t583-irq.o >>>> diff --git a/drivers/mfd/intel-peci-client.c b/drivers/mfd/intel-peci-client.c >>>> new file mode 100644 >>>> index 000000000000..d7702cf1ea50 >>>> --- /dev/null >>>> +++ b/drivers/mfd/intel-peci-client.c >>>> @@ -0,0 +1,182 @@ >>>> +// SPDX-License-Identifier: GPL-2.0 >>>> +// Copyright (c) 2018 Intel Corporation >>>> + >>>> +#include >>>> +#include >>>> +#include >>>> +#include >>>> +#include >>>> +#include >>>> + >>>> +enum cpu_gens { >>>> + CPU_GEN_HSX = 0, /* Haswell Xeon */ >>>> + CPU_GEN_BRX, /* Broadwell Xeon */ >>>> + CPU_GEN_SKX, /* Skylake Xeon */ >>>> +}; >>>> + >>>> +static struct mfd_cell peci_functions[] = { >>>> + { >>>> + .name = "peci-cputemp", >>>> + .of_compatible = "intel,peci-cputemp", >>>> + }, >>>> + { >>>> + .name = "peci-dimmtemp", >>>> + .of_compatible = "intel,peci-dimmtemp", >>>> + }, >>>> +}; >>> >>> The more I look at this driver, the less I think it fits into MFD. >>> >>> What's stopping you from registering these devices directly from DT? >>> >> >> Because DT doesn't allow 2 nodes at the same address so Rob suggested >> MFD for this case. > > Only after I first suggested you create cpu and dimm sensors from a > single hwmon driver. Perhaps you should figure out how to fix the > problem with delayed registration. Perhaps you can register the > sensor, but just delay returning actual data until it is ready. > The actual reason why I divided the single hwmon driver into two is for using recommended hwmon API set which doesn't allow incremental creation of sysfs attributes at run time - using of 'devm_hwmon_device_register_with_info' is suggested by Guenter instead of using other deprecated APIs. The reason why the delayed registration is needed is, BMC kernel cannot know how many DIMM are installed in remote machine before the machine completing memory training and testing in POST. So dimm temp driver cannot create hwmon attributes in advance. My thought is, this way is the best to address these requirements. Thanks, Jae > Rob >