Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp3371356img; Mon, 25 Mar 2019 08:59:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqxvM4z2ocZ4LzAjMF66RiCN9ZdmnzjC4wEMdczKWanoybh+jCi1nRc8V+iwogIUfPzXdYku X-Received: by 2002:aa7:811a:: with SMTP id b26mr24088989pfi.250.1553529554039; Mon, 25 Mar 2019 08:59:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553529554; cv=none; d=google.com; s=arc-20160816; b=dQpLAO+1uSBSjJMjmlSRorMxCX5YbFzO/r8uB5FAtTyhRZ0FdTpcv8o1uw1g15E/r0 Bu/CP+zZVGBNPWqlscvQmJIDEakkYle4zqCpn9/Jf3a6FrNt7FmgJslM3gLLh5t6qUZL c1Muz4xuaPDxr0S56vswt2DvqHux2+AXx+ojrE/SMU8JMDZt9HXnqgN0okXKbElDsqNJ yFDffKODa2BPBh74anT9T9ud2/duvAvVKsvcEEaypP1zfJOS2w4aGvjR9d+rQBhyH3RS EMbn9Y6Np5TpVGQZaxa4LimUJFgsT0kowhJM/gpdjwwVL+bjyzZMSdQ0QKEDnfgiGZU+ ZuCw== 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; bh=3UGrJ1DF3R/mNTjQ+0Rnvms/pxKujROcDP3xuj7Rh3M=; b=cubqKqSBEUD3b4Pj7OoMPzLjBC4jWBVulUTCthnHKhF9QLwfvmK+d1oS3y4KQybUxk WGIPi/kOI3G+7pvDIyLTifMgmc3N3kid6vDVwAG2pmblAU1AJh9WxRo726AlPT2/wzWC CE4kb2AHlLT/UZwFiorPg/1ZFsVWOzdU9RWRzbE+7mpR5TJCKs+ZDIDOOpVRcZ+zZ2He rCdAQGfdpMhSFH+X0mRyGKb4NK+nvJellW2nJrQ+5ZS+rQoDCBR+HeYOB0z6NS9XbL7k Zga3RVXxHlkAn4A4U762wo+Qj2pMOEF9gUD+zZaYrrH/HwgO/QnRRAGpSX+JtIObGzSA XzGA== 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=codethink.co.uk Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u63si9747552pgc.553.2019.03.25.08.58.58; Mon, 25 Mar 2019 08:59:14 -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=codethink.co.uk Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729348AbfCYP6R (ORCPT + 99 others); Mon, 25 Mar 2019 11:58:17 -0400 Received: from imap1.codethink.co.uk ([176.9.8.82]:35570 "EHLO imap1.codethink.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725788AbfCYP6R (ORCPT ); Mon, 25 Mar 2019 11:58:17 -0400 Received: from [167.98.27.226] (helo=[10.35.5.150]) by imap1.codethink.co.uk with esmtpsa (Exim 4.84_2 #1 (Debian)) id 1h8RzK-0006zb-5a; Mon, 25 Mar 2019 15:58:14 +0000 Subject: Re: [PATCH v2] Documentation: acpi: Add an example for PRP0001 To: Andy Shevchenko Cc: rjw@rjwysocki.net, lenb@kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, mika.westerberg@linux.intel.com References: <20190325151210.23226-1-thomas.preston@codethink.co.uk> <20190325153032.GG9224@smile.fi.intel.com> From: Thomas Preston Message-ID: <3ae33d42-1175-bdbe-036b-1df5edc6a802@codethink.co.uk> Date: Mon, 25 Mar 2019 15:58:13 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190325153032.GG9224@smile.fi.intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 25/03/2019 15:30, Andy Shevchenko wrote: > On Mon, Mar 25, 2019 at 03:12:10PM +0000, Thomas Preston wrote: >> Add an example for the magic PRP0001 device ID which allows matching >> ACPI devices against drivers using OF Device Tree compatible property. > >> It wasn't clear to me that PRP0001 could be used in _CID. > > Yes, but it's not necessary to have it if we have defined a _HID. > > In that case PRP0001 is a temporary stub until corresponding driver > incorporates an official _HID. > > On the contrary, when there is no official _HID available, PRP0001 can be used > instead directly as a _HID and no _CID is needed. > In that case, how do we uniquely identify devices in sysfs? We have a case where sound/soc/soc-core.c generates an i2c codec name i2c-TDA7802:00. It is useful to identify that device by part name, rather than some indexed generic PRP device i2c-PRP0001:04. I can achieve this with: _HID("TDA7802") _CID("PRP0001") ... compatible = "st,tda7802" // driver I want to load using OF DT > I would really recommend to look at the examples in meta-acpi repository. There > are cases like described above. > > This one is good enough, though see below. > I will drop the superfluous _CID - I think the example is still useful to have. Even if we don't illustrate my special case for _HID/_CID. >> Signed-off-by: Thomas Preston >> --- >> Documentation/acpi/enumeration.txt | 31 +++++++++++++++++++++++++++++++ >> 1 file changed, 31 insertions(+) >> >> diff --git a/Documentation/acpi/enumeration.txt b/Documentation/acpi/enumeration.txt >> index 7bcf9c3d9fbe..8375fc506b47 100644 >> --- a/Documentation/acpi/enumeration.txt >> +++ b/Documentation/acpi/enumeration.txt >> @@ -410,6 +410,37 @@ Specifically, the device IDs returned by _HID and preceding PRP0001 in the _CID >> return package will be checked first. Also in that case the bus type the device >> will be enumerated to depends on the device ID returned by _HID. >> >> +For example, the following ACPI sample might be used to enumerate an lm75-type >> +I2C temperature sensor and match it to the driver using the Device Tree >> +namespace link: >> + >> + Device (TMP0) >> + { >> + /* _HID will appear in sysfs */ >> + Name (_HID, "PRP0001") >> + > >> + /* _CID can also be used to search for "compatible" property */ >> + Name (_CID, "PRP0001") > > So, these lines are superfluous as stated exaxtly in a following paragraph. > >> + >> + Name (_DSD, Package() { >> + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), >> + Package () { >> + Package (2) { "compatible", "ti,tmp75" }, >> + } >> + }) >> + Method (_CRS, 0, Serialized) >> + { >> + Name (SBUF, ResourceTemplate () >> + { >> + I2cSerialBusV2 (0x48, ControllerInitiated, >> + 400000, AddressingMode7Bit, >> + "\\_SB.PCI0.I2C1", 0x00, >> + ResourceConsumer, , Exclusive,) >> + }) >> + Return (SBUF) >> + } >> + } >> + >> It is valid to define device objects with a _HID returning PRP0001 and without >> the "compatible" property in the _DSD or a _CID as long as one of their >> ancestors provides a _DSD with a valid "compatible" property. Such device >