From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50D5EC43460 for ; Mon, 17 May 2021 08:28:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 341B76121F for ; Mon, 17 May 2021 08:28:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235504AbhEQI3l (ORCPT ); Mon, 17 May 2021 04:29:41 -0400 Received: from mail-sn1anam02on2040.outbound.protection.outlook.com ([40.107.96.40]:53455 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S230011AbhEQI3j (ORCPT ); Mon, 17 May 2021 04:29:39 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JKK77IrbB17c3HcA99epwERStcDKOnDRwbTHxDGiXVIB+msBzBxXDt/S2aM3JeqgH3gFJ2+rzwBES6qELV35zIfJ6yZXghXo9IVAqH8pDCNmlRf/pRkAnmGwC0kLazE7iVGDS7PT5XwCs4PIM+rH/U/Cdy9lxgzGsK+/u69XBdE9DqqnSEuH0zZGnqGHsGBPzpkePTaGUzy5Fg6RcXBAV2K5IEypGrAajT0a9H5BI/JYIc68RYl0DNgLDYuaOw/tLK5/I5jC5vEaZi+ELMBeChVvbphYqEDtBL6IMj9vW8UAo4bfnoMQf2rD+9pnTJhZtw2B5Cef4pJRuCI86OoWhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ol5KXD9kAi3ap4FD1Le6gXcSWhVw5izXiiITxvM85iU=; b=WsuXLdwRk7UvI0drSMq6DJc0Iwf2kXFe1ZUHsOZGyxqIAiM6xFp9qyED/Q/tefTeBjg2smJKqX3awca5ejw0yyLJRTld1rpMpHBmLlh/8tO+Ss/xSvzXpzx+F3omEI37jAFXC8+Iuw7prFcVrP+P42OV4kdohq+0BDIN8/XXDIq0nXq7tmaDXKaVuHJcef7i+WdoeBj9ISCOXucPArmhWVwLhFEwU9fyCQhO/QqFcLOLHSvvHAh1mM+V1zp5dK6UDrWqxJR5VL3bMqD2tl8tNBphxbbH4yJvaATPfrMesMeY5PpXXbRpQS/3XgCtgUJ5/fnUi3yhFbbMSBCQHqH8SQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.199.62.198) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ol5KXD9kAi3ap4FD1Le6gXcSWhVw5izXiiITxvM85iU=; b=U52Ub6QMXGtklSu2rhCa3IuSUIXzk13xoK7O9TJKZglHAC8euvU9c2Ms5b02BEyB2s3nrH+PprelV8Q+hPQGmRrGZybb3ca2XhzYxS7T1bw4hfAUuzDrpIRua6f5EOVhAVzIT9GeOAupUki4d5s4HXy2vbecj5WjlofX5jsZNH8= Received: from SN6PR01CA0022.prod.exchangelabs.com (2603:10b6:805:b6::35) by DM6PR02MB7002.namprd02.prod.outlook.com (2603:10b6:5:250::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 08:28:21 +0000 Received: from SN1NAM02FT0022.eop-nam02.prod.protection.outlook.com (2603:10b6:805:b6:cafe::1e) by SN6PR01CA0022.outlook.office365.com (2603:10b6:805:b6::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Mon, 17 May 2021 08:28:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198) smtp.mailfrom=xilinx.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=pass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.62.198 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com; Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by SN1NAM02FT0022.mail.protection.outlook.com (10.97.5.0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4129.27 via Frontend Transport; Mon, 17 May 2021 08:28:21 +0000 Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Mon, 17 May 2021 01:28:18 -0700 Received: from smtp.xilinx.com (172.19.127.95) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id 15.1.2176.2 via Frontend Transport; Mon, 17 May 2021 01:28:18 -0700 Envelope-to: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, alvaro.gamez@hazent.com, devicetree@vger.kernel.org, linux-pwm@vger.kernel.org, robh@kernel.org, sean.anderson@seco.com Received: from [172.30.17.109] (port=52570) by smtp.xilinx.com with esmtp (Exim 4.90) (envelope-from ) id 1liYbq-0003KZ-8J; Mon, 17 May 2021 01:28:18 -0700 To: Sean Anderson , Michal Simek , Rob Herring CC: Linux PWM List , , Alvaro Gamez , "linux-kernel@vger.kernel.org" , linux-arm-kernel References: <20210511191239.774570-1-sean.anderson@seco.com> <20210513021631.GA878860@robh.at.kernel.org> <70176596-2250-8ae1-912a-9f9c30694e7d@seco.com> <9cf3a580-e4d3-07fc-956f-dc5c84802d93@xilinx.com> <87b31b06-9b81-5743-e3a8-50c255c0a83c@seco.com> From: Michal Simek Subject: Re: [PATCH v3 1/2] dt-bindings: pwm: Add Xilinx AXI Timer Message-ID: <141399b7-db9c-45e1-f743-9e3bc5e6f9fd@xilinx.com> Date: Mon, 17 May 2021 10:28:15 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <87b31b06-9b81-5743-e3a8-50c255c0a83c@seco.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f37a989b-e94f-43e0-f588-08d9190dbb04 X-MS-TrafficTypeDiagnostic: DM6PR02MB7002: X-Microsoft-Antispam-PRVS: X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MpXlCJmv5nV/zz8mB/ReXNMONBr96oNBllMSrVdwgfuN/4cdw+qIol6lNL5g9xsx2sOuR9OIQf310oHGpj1TXzmLEsC+BZkDXYqdhMK9n697djOGgopo3+B6b6Y0j5hypQEvAK62TNekBPIv554C4iTGisYlpsWR/fSmMBJUZqfPIjo1s0MSa0AxXry4THPVvvtUGghHnV8ws7uMMUnX5YljIGXQgrRyBIHdCWw2qJK8vHNMs0Yl7kHhF/Xx+kPtAG6WTxZCe+iCToZhhm+p3w4M6lrijUsrPk7M8lcVtK6kRi38CIOa1Eg2f2pI5ffOj9uDYP7j+4EdhOn935oyPQ84EbFWga12Y2JUKvIyoMSTJNaBfk1dKRDltziaSEUC3Mnn3xtdQGngNjMSdkGdsxc6ldI3P4GK2yPmgydRqda9zcbHyY+Z4joK/SisVCYuS3mD3KOMwDGMafVaJCoitaRiJvJjkLO1fZkVXRe9rBKUQ6cS5L7w4hBpAMYPElZgB4zHKWEJLQYftYU5wrGflaagNJVAVTP1Im9oLN/G6/IOZQ34z04R6R6iGMTqwfC5rWKd7/r8I1ED5adxCdFgJZzFR/fWiDofgR+3blHiFQiu7ftYHmzcx79jhBGpsw5Z/37/+ijR0T2e0oKglM3mjBk0vYRcfEM0P+5HgRG6BW9PBBYAsil3MUP4J30ZvMJbMIHwppUBJNjUCOKGje9FSw== X-Forefront-Antispam-Report: CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(4636009)(396003)(346002)(39850400004)(136003)(376002)(46966006)(36840700001)(53546011)(5660300002)(83380400001)(70206006)(2616005)(426003)(70586007)(82740400003)(7636003)(4326008)(356005)(31686004)(54906003)(2906002)(8676002)(6666004)(44832011)(9786002)(47076005)(478600001)(31696002)(36860700001)(36906005)(316002)(82310400003)(336012)(110136005)(36756003)(8936002)(186003)(26005)(50156003)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 08:28:21.1769 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f37a989b-e94f-43e0-f588-08d9190dbb04 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com] X-MS-Exchange-CrossTenant-AuthSource: SN1NAM02FT0022.eop-nam02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB7002 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/14/21 7:13 PM, Sean Anderson wrote: > > > On 5/14/21 4:50 AM, Michal Simek wrote: >> >> >> On 5/13/21 10:43 PM, Rob Herring wrote: >>> On Thu, May 13, 2021 at 10:28 AM Sean Anderson > wrote: >>>> >>>> >>>> >>>> On 5/13/21 10:33 AM, Sean Anderson wrote: >>>>   > >>>>   > >>>>   > On 5/12/21 10:16 PM, Rob Herring wrote: >>>>   >  > On Tue, May 11, 2021 at 03:12:37PM -0400, Sean Anderson wrote: >>>>   >  >> This adds a binding for the Xilinx LogiCORE IP AXI Timer. > This device is >>>>   >  >> a "soft" block, so it has many parameters which would not be >>>>   >  >> configurable in most hardware. This binding is usually > automatically >>>>   >  >> generated by Xilinx's tools, so the names and values of some > properties >>>>   >  >> must be kept as they are. Replacement properties have been > provided for >>>>   >  >> new device trees. >>>>   >  > >>>>   >  > Because you have some tool generating properties is not a > reason we have >>>>   >  > to accept them upstream. >>>>   > >>>>   > These properties are already in > arch/microblaze/boot/dts/system.dts and >>>>   > in the devicetree supplied to Linux by qemu. Removing these > properties >>>>   > will break existing setups, which I would like to avoid. >>> >>> Already in use in upstream dts files is different than just >>> 'automatically generated' by vendor tools. >>> >>>>   > >>>>   >  > 'deprecated' is for what *we* have deprecated. >>>>   > >>>>   > Ok. I will remove that then. >>>>   > >>>>   >  > >>>>   >  > In this case, I don't really see the point in defining new > properties >>>>   >  > just to have bool. >>>>   > >>>>   > I don't either, but it was requested, by Michal... >>>> >>>> Err, your comment on the original bindings was >>>> >>>>   > Can't all these be boolean? >>> >>> With no other context, yes that's what I would ask. Now you've given >>> me some context, between using the existing ones and 2 sets of >>> properties to maintain, I choose the former. >>> >>>> And Michal commented >>>> >>>>   > I think in this case you should described what it is used by > current >>>>   > driver in Microblaze and these options are required. The rest > are by >>>>   > design optional. >>>>   > If you want to change them to different value then current binding >>>>   > should be deprecated and have any transition time with code > alignment. >>>> >>>> So that is what I tried to accomplish with this revision. I also tried >>>> allowing something like >>>> >>>>          xlnx,one-timer-only = <0>; /* two timers */ >>>>          xlnx,one-timer-only = <1>; /* one timer  */ >>>>          xlnx,one-timer-only; /* one timer */ >>>>          /* property absent means two timers */ >>>> >>>> but I was unable to figure out how to express this with json-schema. I >>>> don't think it's the best design either... >>> >>> json-schema would certainly let you, but generally we don't want >>> properties to have more than 1 type. >> >> One thing is what it is in system.dts file which was committed in 2009 >> and there are just small alignments there. But none is really using it. >> Maybe I should just delete it. >> And this version was generated by Xilinx ancient tools at that time. All >> parameters there are fully describing HW and they are not changing. Only >> new one can be added. >> >>  From the current microblaze code you can see which properties are really >> used. >> >> reg >> interrupts >> xlnx,one-timer-only >> clocks >> clock-frequency > > There is also an implicit dependency on xlnx,count-width. Several times > the existing driver assumes the counter width is 32, but this should > instead be discovered from the devicetree. For me it is important what it is used now. Which is not xlnx,count-width. That's why if you want to add it you can as optional property. > >> It means from my point of view these should be listed in the binding. >> clock-frequency is optional by code when clock is defined. >> >> All other properties listed in system.dts are from my perspective >> optional and that's how it should be. > > Here is the situation as I understand it > > * This device has existed for around 15 years (since 2006) > * Because it is a soft device, there are several configurable parameters > * Although all of these parameters must be known for a complete >   implementation of this device, some are unnecessary if onlu reduced >   functionality is needed. > * A de facto devicetree binding for this device has existed for at least >   12 years (since 2009), but likely for as long as the device itself has >   existed. This binding has not changed substantially during this time. note: IP itself is even much older. > * This binding is present in devicetrees from the Linux kernel, from >   qemu, in other existing systems, and in devicetrees generated by >   Xilinx's toolset. Only from Linux. Qemu is trying to reuse the same properties but it can also add own one. They are trying to be aligned as much as possible but there are a lot of cases where Qemu requires much more information. (I am not saying in this timer case but in general). > * Because the existing driver for this device does not implement all >   functionality for this device, not all properties in the devicetree >   binding are used. In fact, there is (as noted above) one property >   which should be in use but is not because the current driver >   (implicitly) does not support some hardware configurations. > * To support additional functionality, it is necessary to >   use hardware parameters which were not previously necessary. > > Based on the above, we can classify the properties of this binding into > several categories. > > * Those which are currently read by the driver. >   * compatible >   * reg >   * clocks >   * clock-frequency >   * interrupts >   * xlnx,one-timer-only > > * Those which reflect hardware parameters which are currently explicitly >   or implicitly relied upon by the driver. >   * reg >   * clocks >   * clock-frequency >   * interrupts >   * xlnx,counter-width >   * xlnx,one-timer-only > > * Those which are currently present in device trees. >   * compatible >   * reg >   * interrupts >   * clocks >   * clock-frequency >   * xlnx,count-width >   * xlnx,one-timer-only >   * xlnx,trig0-assert >   * xlnx,trig1-assert >   * xlnx,gen0-assert >   * xlnx,gen1-assert > > When choosing what properties to use, we must consider what the impact > of our changes will be on not just the kernel but also on existing users > of this binding: I don't think that this is valid. Rob is asking for adding #pwm-cells which is purely Linux binding. We also don't know what properties are used by others projects not just Linux or Qemu. Also required properties in Linux doesn't need to be required in U-Boot for example even we are trying to aligned all of them. Another case are others RTOSes, etc. > * To use properties currently present in device trees, we just need to >   modify the kernel driver. > * To add additional properties (such as e.g. '#pwm-cells'), we must >   modify the kernel driver. In addition, users who would like to use >   these new properties must add them to their device trees. This may be >   done in a mechanical way using e.g. overlays. > * To deprecate existing properties and introduce new properties to >   expose the same underlying hardware parameters, we must modify the >   kernel driver. However, this has a large impact on existing users. >   They must modify their tools to generate this information in a >   different format. When this information is generated by upstream tools >   this may require updating a core part of their build system. For many >   projects, this may happen very infrequently because of the risk that >   such an upgrade will break things. Even if you suggest that Xilinx can >   easily modify its tools to generate any sort of output, the time for >   this upgrade to be deployed/adopted may be significantly longer. >From Xilinx perspective it would be ideal to use only properties which fully describe HW in the form how they are generated today. They are stable for a lot of years and as I said only new one are added. But this alignment wasn't accepted long time ago and we have been asked to start to align these properties with similar HW done by others. And truth is that in a lot of cases there is clear 1:1 mapping and generic properties can be simply use. This mapping ends in Xilinx device tree generator. Back to your point. Required properties are required by Linux driver only. This driver is around for quite a long time where certain policies haven't been setup/used/enforced (Microblaze is 2nd architecture which started to use device tree). We should create DT binding doc at that time but in 2009 it wasn't standard practice. In 2007 Grant was adding support for Xilinx PPC platform also without any DT binding document too. That's why we need to review current unwritten DT binding based on code requirements and look at it how to fix it (if needed) and then add PWM support on the top of it. If something needs to be deprecated, let's deprecate it and have transition time for a year or so to adapt to it. Rob knows much better than I how this should be handled. Based on your list: * compatible * reg * clocks * clock-frequency * interrupts * xlnx,one-timer-only all of these are required property in new DT binding. xlnx,counter-width is optional if you want to use. #pwm-cells is optional for enabling PWM support (I would expect that when this property is present this timer don't need be used as clocksource/clockevent by Microblaze) etc And for properties which are generated out of Xilinx tools I would allow in DT binding to add others optional properties that DT won't error out if they are seen. Thanks, Michal From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D9A9C433B4 for ; Mon, 17 May 2021 08:35:18 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9FE8B610C9 for ; Mon, 17 May 2021 08:35:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9FE8B610C9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=xilinx.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:Subject: From:References:CC:To:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=9+SmknKouhvNSh2TPsA7oJJst2oxHy9VTnp1bmE1xvo=; b=fwViF7oc2l3vLeKaRbY4ZMyFx ljEUxKzNEemusC4U/v0dFonfqFxp6y/+DcpULeOwVgS1hu2cP8PQC3ogMYfiitHckdTURFA0sf6Lj 04iqmjiuwSxCVBGK5NBiqxqlUAb0/EoYiXpa2F+PhLF/PmkVfq6TliVOokkR4wIXzsJORAL6MT7Wn 2ryj4G5n/CueMSYbN4ycFy0tn1RtaN9HpqbRpMm6SD2E7Kszy8nc8m4RZaI0cxpmx+9QBULTplWKy jQeO6aKktwxKu3knrLiFx5kdEQ/Z18XS2mRaWQiWVU0Ll7+3Q2PUGO2cH9EyJuhjMgkbBzl2iZY5P MbUdFPbdA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1liYfr-00EFyN-3H; Mon, 17 May 2021 08:32:27 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1liYc0-00EEz2-Kj for linux-arm-kernel@desiato.infradead.org; Mon, 17 May 2021 08:28:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:Subject:From:References :CC:To:Sender:Reply-To:Content-ID:Content-Description; bh=Ol5KXD9kAi3ap4FD1Le6gXcSWhVw5izXiiITxvM85iU=; b=N0cuIje2SiN+ZdvxyfYcsZr4Wp Ja+e9b0Z4rbnkPel6Da2MKn5oDOEPQIyxxEzP/wnIM6VoNEnuUR2Ai6Ph5QzHncKLiGw/uDHRujwI cyWDIkbuHsZsXeJMTmnDK32raqS7ekzzdsQxZC8g5w4wZhwWJ2JIzI1sK/UpchesYkAhuFMS8MxEQ B7HBXrKK4CiGOnSVsF1ojkmJunDsiPgOEsGBP8Pd/pPymqDJiywUX3wt1KbaIusnbnZ3ftzGJWzW9 9upx3O9pnW1h8w8wHConYZRj1hozmsr+AIQy9knj48S2EWOjBqnO/p54QAzMZ2reklF+xgLydgVF1 piutihLg==; Received: from mail-sn1anam02on2063.outbound.protection.outlook.com ([40.107.96.63] helo=NAM02-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1liYbx-00Db5D-2X for linux-arm-kernel@lists.infradead.org; Mon, 17 May 2021 08:28:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JKK77IrbB17c3HcA99epwERStcDKOnDRwbTHxDGiXVIB+msBzBxXDt/S2aM3JeqgH3gFJ2+rzwBES6qELV35zIfJ6yZXghXo9IVAqH8pDCNmlRf/pRkAnmGwC0kLazE7iVGDS7PT5XwCs4PIM+rH/U/Cdy9lxgzGsK+/u69XBdE9DqqnSEuH0zZGnqGHsGBPzpkePTaGUzy5Fg6RcXBAV2K5IEypGrAajT0a9H5BI/JYIc68RYl0DNgLDYuaOw/tLK5/I5jC5vEaZi+ELMBeChVvbphYqEDtBL6IMj9vW8UAo4bfnoMQf2rD+9pnTJhZtw2B5Cef4pJRuCI86OoWhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ol5KXD9kAi3ap4FD1Le6gXcSWhVw5izXiiITxvM85iU=; b=WsuXLdwRk7UvI0drSMq6DJc0Iwf2kXFe1ZUHsOZGyxqIAiM6xFp9qyED/Q/tefTeBjg2smJKqX3awca5ejw0yyLJRTld1rpMpHBmLlh/8tO+Ss/xSvzXpzx+F3omEI37jAFXC8+Iuw7prFcVrP+P42OV4kdohq+0BDIN8/XXDIq0nXq7tmaDXKaVuHJcef7i+WdoeBj9ISCOXucPArmhWVwLhFEwU9fyCQhO/QqFcLOLHSvvHAh1mM+V1zp5dK6UDrWqxJR5VL3bMqD2tl8tNBphxbbH4yJvaATPfrMesMeY5PpXXbRpQS/3XgCtgUJ5/fnUi3yhFbbMSBCQHqH8SQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.199.62.198) smtp.rcpttodomain=lists.infradead.org smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ol5KXD9kAi3ap4FD1Le6gXcSWhVw5izXiiITxvM85iU=; b=U52Ub6QMXGtklSu2rhCa3IuSUIXzk13xoK7O9TJKZglHAC8euvU9c2Ms5b02BEyB2s3nrH+PprelV8Q+hPQGmRrGZybb3ca2XhzYxS7T1bw4hfAUuzDrpIRua6f5EOVhAVzIT9GeOAupUki4d5s4HXy2vbecj5WjlofX5jsZNH8= Received: from SN6PR01CA0022.prod.exchangelabs.com (2603:10b6:805:b6::35) by DM6PR02MB7002.namprd02.prod.outlook.com (2603:10b6:5:250::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 08:28:21 +0000 Received: from SN1NAM02FT0022.eop-nam02.prod.protection.outlook.com (2603:10b6:805:b6:cafe::1e) by SN6PR01CA0022.outlook.office365.com (2603:10b6:805:b6::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Mon, 17 May 2021 08:28:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198) smtp.mailfrom=xilinx.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=pass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.62.198 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com; Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by SN1NAM02FT0022.mail.protection.outlook.com (10.97.5.0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4129.27 via Frontend Transport; Mon, 17 May 2021 08:28:21 +0000 Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Mon, 17 May 2021 01:28:18 -0700 Received: from smtp.xilinx.com (172.19.127.95) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id 15.1.2176.2 via Frontend Transport; Mon, 17 May 2021 01:28:18 -0700 Received: from [172.30.17.109] (port=52570) by smtp.xilinx.com with esmtp (Exim 4.90) (envelope-from ) id 1liYbq-0003KZ-8J; Mon, 17 May 2021 01:28:18 -0700 To: Sean Anderson , Michal Simek , Rob Herring CC: Linux PWM List , , Alvaro Gamez , "linux-kernel@vger.kernel.org" , linux-arm-kernel References: <20210511191239.774570-1-sean.anderson@seco.com> <20210513021631.GA878860@robh.at.kernel.org> <70176596-2250-8ae1-912a-9f9c30694e7d@seco.com> <9cf3a580-e4d3-07fc-956f-dc5c84802d93@xilinx.com> <87b31b06-9b81-5743-e3a8-50c255c0a83c@seco.com> From: Michal Simek Subject: Re: [PATCH v3 1/2] dt-bindings: pwm: Add Xilinx AXI Timer Message-ID: <141399b7-db9c-45e1-f743-9e3bc5e6f9fd@xilinx.com> Date: Mon, 17 May 2021 10:28:15 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <87b31b06-9b81-5743-e3a8-50c255c0a83c@seco.com> Content-Language: en-US X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f37a989b-e94f-43e0-f588-08d9190dbb04 X-MS-TrafficTypeDiagnostic: DM6PR02MB7002: X-Microsoft-Antispam-PRVS: X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MpXlCJmv5nV/zz8mB/ReXNMONBr96oNBllMSrVdwgfuN/4cdw+qIol6lNL5g9xsx2sOuR9OIQf310oHGpj1TXzmLEsC+BZkDXYqdhMK9n697djOGgopo3+B6b6Y0j5hypQEvAK62TNekBPIv554C4iTGisYlpsWR/fSmMBJUZqfPIjo1s0MSa0AxXry4THPVvvtUGghHnV8ws7uMMUnX5YljIGXQgrRyBIHdCWw2qJK8vHNMs0Yl7kHhF/Xx+kPtAG6WTxZCe+iCToZhhm+p3w4M6lrijUsrPk7M8lcVtK6kRi38CIOa1Eg2f2pI5ffOj9uDYP7j+4EdhOn935oyPQ84EbFWga12Y2JUKvIyoMSTJNaBfk1dKRDltziaSEUC3Mnn3xtdQGngNjMSdkGdsxc6ldI3P4GK2yPmgydRqda9zcbHyY+Z4joK/SisVCYuS3mD3KOMwDGMafVaJCoitaRiJvJjkLO1fZkVXRe9rBKUQ6cS5L7w4hBpAMYPElZgB4zHKWEJLQYftYU5wrGflaagNJVAVTP1Im9oLN/G6/IOZQ34z04R6R6iGMTqwfC5rWKd7/r8I1ED5adxCdFgJZzFR/fWiDofgR+3blHiFQiu7ftYHmzcx79jhBGpsw5Z/37/+ijR0T2e0oKglM3mjBk0vYRcfEM0P+5HgRG6BW9PBBYAsil3MUP4J30ZvMJbMIHwppUBJNjUCOKGje9FSw== X-Forefront-Antispam-Report: CIP:149.199.62.198; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:xsj-pvapexch02.xlnx.xilinx.com; PTR:unknown-62-198.xilinx.com; CAT:NONE; SFS:(4636009)(396003)(346002)(39850400004)(136003)(376002)(46966006)(36840700001)(53546011)(5660300002)(83380400001)(70206006)(2616005)(426003)(70586007)(82740400003)(7636003)(4326008)(356005)(31686004)(54906003)(2906002)(8676002)(6666004)(44832011)(9786002)(47076005)(478600001)(31696002)(36860700001)(36906005)(316002)(82310400003)(336012)(110136005)(36756003)(8936002)(186003)(26005)(50156003)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 08:28:21.1769 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f37a989b-e94f-43e0-f588-08d9190dbb04 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.62.198]; Helo=[xsj-pvapexch02.xlnx.xilinx.com] X-MS-Exchange-CrossTenant-AuthSource: SN1NAM02FT0022.eop-nam02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB7002 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210517_012825_205469_2CBA53FB X-CRM114-Status: GOOD ( 60.12 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiA1LzE0LzIxIDc6MTMgUE0sIFNlYW4gQW5kZXJzb24gd3JvdGU6Cj4gCj4gCj4gT24gNS8x NC8yMSA0OjUwIEFNLCBNaWNoYWwgU2ltZWsgd3JvdGU6Cj4+Cj4+Cj4+IE9uIDUvMTMvMjEgMTA6 NDMgUE0sIFJvYiBIZXJyaW5nIHdyb3RlOgo+Pj4gT24gVGh1LCBNYXkgMTMsIDIwMjEgYXQgMTA6 MjggQU0gU2VhbiBBbmRlcnNvbgo+IDxzZWFuLmFuZGVyc29uQHNlY28uY29tPiB3cm90ZToKPj4+ Pgo+Pj4+Cj4+Pj4KPj4+PiBPbiA1LzEzLzIxIDEwOjMzIEFNLCBTZWFuIEFuZGVyc29uIHdyb3Rl Ogo+Pj4+wqDCoCA+Cj4+Pj7CoMKgID4KPj4+PsKgwqAgPiBPbiA1LzEyLzIxIDEwOjE2IFBNLCBS b2IgSGVycmluZyB3cm90ZToKPj4+PsKgwqAgPsKgID4gT24gVHVlLCBNYXkgMTEsIDIwMjEgYXQg MDM6MTI6MzdQTSAtMDQwMCwgU2VhbiBBbmRlcnNvbiB3cm90ZToKPj4+PsKgwqAgPsKgID4+IFRo aXMgYWRkcyBhIGJpbmRpbmcgZm9yIHRoZSBYaWxpbnggTG9naUNPUkUgSVAgQVhJIFRpbWVyLgo+ IFRoaXMgZGV2aWNlIGlzCj4+Pj7CoMKgID7CoCA+PiBhICJzb2Z0IiBibG9jaywgc28gaXQgaGFz IG1hbnkgcGFyYW1ldGVycyB3aGljaCB3b3VsZCBub3QgYmUKPj4+PsKgwqAgPsKgID4+IGNvbmZp Z3VyYWJsZSBpbiBtb3N0IGhhcmR3YXJlLiBUaGlzIGJpbmRpbmcgaXMgdXN1YWxseQo+IGF1dG9t YXRpY2FsbHkKPj4+PsKgwqAgPsKgID4+IGdlbmVyYXRlZCBieSBYaWxpbngncyB0b29scywgc28g dGhlIG5hbWVzIGFuZCB2YWx1ZXMgb2Ygc29tZQo+IHByb3BlcnRpZXMKPj4+PsKgwqAgPsKgID4+ IG11c3QgYmUga2VwdCBhcyB0aGV5IGFyZS4gUmVwbGFjZW1lbnQgcHJvcGVydGllcyBoYXZlIGJl ZW4KPiBwcm92aWRlZCBmb3IKPj4+PsKgwqAgPsKgID4+IG5ldyBkZXZpY2UgdHJlZXMuCj4+Pj7C oMKgID7CoCA+Cj4+Pj7CoMKgID7CoCA+IEJlY2F1c2UgeW91IGhhdmUgc29tZSB0b29sIGdlbmVy YXRpbmcgcHJvcGVydGllcyBpcyBub3QgYQo+IHJlYXNvbiB3ZSBoYXZlCj4+Pj7CoMKgID7CoCA+ IHRvIGFjY2VwdCB0aGVtIHVwc3RyZWFtLgo+Pj4+wqDCoCA+Cj4+Pj7CoMKgID4gVGhlc2UgcHJv cGVydGllcyBhcmUgYWxyZWFkeSBpbgo+IGFyY2gvbWljcm9ibGF6ZS9ib290L2R0cy9zeXN0ZW0u ZHRzIGFuZAo+Pj4+wqDCoCA+IGluIHRoZSBkZXZpY2V0cmVlIHN1cHBsaWVkIHRvIExpbnV4IGJ5 IHFlbXUuIFJlbW92aW5nIHRoZXNlCj4gcHJvcGVydGllcwo+Pj4+wqDCoCA+IHdpbGwgYnJlYWsg ZXhpc3Rpbmcgc2V0dXBzLCB3aGljaCBJIHdvdWxkIGxpa2UgdG8gYXZvaWQuCj4+Pgo+Pj4gQWxy ZWFkeSBpbiB1c2UgaW4gdXBzdHJlYW0gZHRzIGZpbGVzIGlzIGRpZmZlcmVudCB0aGFuIGp1c3QK Pj4+ICdhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCcgYnkgdmVuZG9yIHRvb2xzLgo+Pj4KPj4+PsKg wqAgPgo+Pj4+wqDCoCA+wqAgPiAnZGVwcmVjYXRlZCcgaXMgZm9yIHdoYXQgKndlKiBoYXZlIGRl cHJlY2F0ZWQuCj4+Pj7CoMKgID4KPj4+PsKgwqAgPiBPay4gSSB3aWxsIHJlbW92ZSB0aGF0IHRo ZW4uCj4+Pj7CoMKgID4KPj4+PsKgwqAgPsKgID4KPj4+PsKgwqAgPsKgID4gSW4gdGhpcyBjYXNl LCBJIGRvbid0IHJlYWxseSBzZWUgdGhlIHBvaW50IGluIGRlZmluaW5nIG5ldwo+IHByb3BlcnRp ZXMKPj4+PsKgwqAgPsKgID4ganVzdCB0byBoYXZlIGJvb2wuCj4+Pj7CoMKgID4KPj4+PsKgwqAg PiBJIGRvbid0IGVpdGhlciwgYnV0IGl0IHdhcyByZXF1ZXN0ZWQsIGJ5IE1pY2hhbC4uLgo+Pj4+ Cj4+Pj4gRXJyLCB5b3VyIGNvbW1lbnQgb24gdGhlIG9yaWdpbmFsIGJpbmRpbmdzIHdhcwo+Pj4+ Cj4+Pj7CoMKgID4gQ2FuJ3QgYWxsIHRoZXNlIGJlIGJvb2xlYW4/Cj4+Pgo+Pj4gV2l0aCBubyBv dGhlciBjb250ZXh0LCB5ZXMgdGhhdCdzIHdoYXQgSSB3b3VsZCBhc2suIE5vdyB5b3UndmUgZ2l2 ZW4KPj4+IG1lIHNvbWUgY29udGV4dCwgYmV0d2VlbiB1c2luZyB0aGUgZXhpc3Rpbmcgb25lcyBh bmQgMiBzZXRzIG9mCj4+PiBwcm9wZXJ0aWVzIHRvIG1haW50YWluLCBJIGNob29zZSB0aGUgZm9y bWVyLgo+Pj4KPj4+PiBBbmQgTWljaGFsIGNvbW1lbnRlZAo+Pj4+Cj4+Pj7CoMKgID4gSSB0aGlu ayBpbiB0aGlzIGNhc2UgeW91IHNob3VsZCBkZXNjcmliZWQgd2hhdCBpdCBpcyB1c2VkIGJ5Cj4g Y3VycmVudAo+Pj4+wqDCoCA+IGRyaXZlciBpbiBNaWNyb2JsYXplIGFuZCB0aGVzZSBvcHRpb25z IGFyZSByZXF1aXJlZC4gVGhlIHJlc3QKPiBhcmUgYnkKPj4+PsKgwqAgPiBkZXNpZ24gb3B0aW9u YWwuCj4+Pj7CoMKgID4gSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZW0gdG8gZGlmZmVyZW50IHZh bHVlIHRoZW4gY3VycmVudCBiaW5kaW5nCj4+Pj7CoMKgID4gc2hvdWxkIGJlIGRlcHJlY2F0ZWQg YW5kIGhhdmUgYW55IHRyYW5zaXRpb24gdGltZSB3aXRoIGNvZGUKPiBhbGlnbm1lbnQuCj4+Pj4K Pj4+PiBTbyB0aGF0IGlzIHdoYXQgSSB0cmllZCB0byBhY2NvbXBsaXNoIHdpdGggdGhpcyByZXZp c2lvbi4gSSBhbHNvIHRyaWVkCj4+Pj4gYWxsb3dpbmcgc29tZXRoaW5nIGxpa2UKPj4+Pgo+Pj4+ wqDCoMKgwqDCoMKgwqDCoMKgIHhsbngsb25lLXRpbWVyLW9ubHkgPSA8MD47IC8qIHR3byB0aW1l cnMgKi8KPj4+PsKgwqDCoMKgwqDCoMKgwqDCoCB4bG54LG9uZS10aW1lci1vbmx5ID0gPDE+OyAv KiBvbmUgdGltZXLCoCAqLwo+Pj4+wqDCoMKgwqDCoMKgwqDCoMKgIHhsbngsb25lLXRpbWVyLW9u bHk7IC8qIG9uZSB0aW1lciAqLwo+Pj4+wqDCoMKgwqDCoMKgwqDCoMKgIC8qIHByb3BlcnR5IGFi c2VudCBtZWFucyB0d28gdGltZXJzICovCj4+Pj4KPj4+PiBidXQgSSB3YXMgdW5hYmxlIHRvIGZp Z3VyZSBvdXQgaG93IHRvIGV4cHJlc3MgdGhpcyB3aXRoIGpzb24tc2NoZW1hLiBJCj4+Pj4gZG9u J3QgdGhpbmsgaXQncyB0aGUgYmVzdCBkZXNpZ24gZWl0aGVyLi4uCj4+Pgo+Pj4ganNvbi1zY2hl bWEgd291bGQgY2VydGFpbmx5IGxldCB5b3UsIGJ1dCBnZW5lcmFsbHkgd2UgZG9uJ3Qgd2FudAo+ Pj4gcHJvcGVydGllcyB0byBoYXZlIG1vcmUgdGhhbiAxIHR5cGUuCj4+Cj4+IE9uZSB0aGluZyBp cyB3aGF0IGl0IGlzIGluIHN5c3RlbS5kdHMgZmlsZSB3aGljaCB3YXMgY29tbWl0dGVkIGluIDIw MDkKPj4gYW5kIHRoZXJlIGFyZSBqdXN0IHNtYWxsIGFsaWdubWVudHMgdGhlcmUuIEJ1dCBub25l IGlzIHJlYWxseSB1c2luZyBpdC4KPj4gTWF5YmUgSSBzaG91bGQganVzdCBkZWxldGUgaXQuCj4+ IEFuZCB0aGlzIHZlcnNpb24gd2FzIGdlbmVyYXRlZCBieSBYaWxpbnggYW5jaWVudCB0b29scyBh dCB0aGF0IHRpbWUuIEFsbAo+PiBwYXJhbWV0ZXJzIHRoZXJlIGFyZSBmdWxseSBkZXNjcmliaW5n IEhXIGFuZCB0aGV5IGFyZSBub3QgY2hhbmdpbmcuIE9ubHkKPj4gbmV3IG9uZSBjYW4gYmUgYWRk ZWQuCj4+Cj4+wqAgRnJvbSB0aGUgY3VycmVudCBtaWNyb2JsYXplIGNvZGUgeW91IGNhbiBzZWUg d2hpY2ggcHJvcGVydGllcyBhcmUgcmVhbGx5Cj4+IHVzZWQuCj4+Cj4+IHJlZwo+PiBpbnRlcnJ1 cHRzCj4+IHhsbngsb25lLXRpbWVyLW9ubHkKPj4gY2xvY2tzCj4+IGNsb2NrLWZyZXF1ZW5jeQo+ IAo+IFRoZXJlIGlzIGFsc28gYW4gaW1wbGljaXQgZGVwZW5kZW5jeSBvbiB4bG54LGNvdW50LXdp ZHRoLiBTZXZlcmFsIHRpbWVzCj4gdGhlIGV4aXN0aW5nIGRyaXZlciBhc3N1bWVzIHRoZSBjb3Vu dGVyIHdpZHRoIGlzIDMyLCBidXQgdGhpcyBzaG91bGQKPiBpbnN0ZWFkIGJlIGRpc2NvdmVyZWQg ZnJvbSB0aGUgZGV2aWNldHJlZS4KCkZvciBtZSBpdCBpcyBpbXBvcnRhbnQgd2hhdCBpdCBpcyB1 c2VkIG5vdy4gV2hpY2ggaXMgbm90CnhsbngsY291bnQtd2lkdGguIFRoYXQncyB3aHkgaWYgeW91 IHdhbnQgdG8gYWRkIGl0IHlvdSBjYW4gYXMgb3B0aW9uYWwKcHJvcGVydHkuCgo+IAo+PiBJdCBt ZWFucyBmcm9tIG15IHBvaW50IG9mIHZpZXcgdGhlc2Ugc2hvdWxkIGJlIGxpc3RlZCBpbiB0aGUg YmluZGluZy4KPj4gY2xvY2stZnJlcXVlbmN5IGlzIG9wdGlvbmFsIGJ5IGNvZGUgd2hlbiBjbG9j ayBpcyBkZWZpbmVkLgo+Pgo+PiBBbGwgb3RoZXIgcHJvcGVydGllcyBsaXN0ZWQgaW4gc3lzdGVt LmR0cyBhcmUgZnJvbSBteSBwZXJzcGVjdGl2ZQo+PiBvcHRpb25hbCBhbmQgdGhhdCdzIGhvdyBp dCBzaG91bGQgYmUuCj4gCj4gSGVyZSBpcyB0aGUgc2l0dWF0aW9uIGFzIEkgdW5kZXJzdGFuZCBp dAo+IAo+ICogVGhpcyBkZXZpY2UgaGFzIGV4aXN0ZWQgZm9yIGFyb3VuZCAxNSB5ZWFycyAoc2lu Y2UgMjAwNikKPiAqIEJlY2F1c2UgaXQgaXMgYSBzb2Z0IGRldmljZSwgdGhlcmUgYXJlIHNldmVy YWwgY29uZmlndXJhYmxlIHBhcmFtZXRlcnMKPiAqIEFsdGhvdWdoIGFsbCBvZiB0aGVzZSBwYXJh bWV0ZXJzIG11c3QgYmUga25vd24gZm9yIGEgY29tcGxldGUKPiDCoCBpbXBsZW1lbnRhdGlvbiBv ZiB0aGlzIGRldmljZSwgc29tZSBhcmUgdW5uZWNlc3NhcnkgaWYgb25sdSByZWR1Y2VkCj4gwqAg ZnVuY3Rpb25hbGl0eSBpcyBuZWVkZWQuCj4gKiBBIGRlIGZhY3RvIGRldmljZXRyZWUgYmluZGlu ZyBmb3IgdGhpcyBkZXZpY2UgaGFzIGV4aXN0ZWQgZm9yIGF0IGxlYXN0Cj4gwqAgMTIgeWVhcnMg KHNpbmNlIDIwMDkpLCBidXQgbGlrZWx5IGZvciBhcyBsb25nIGFzIHRoZSBkZXZpY2UgaXRzZWxm IGhhcwo+IMKgIGV4aXN0ZWQuIFRoaXMgYmluZGluZyBoYXMgbm90IGNoYW5nZWQgc3Vic3RhbnRp YWxseSBkdXJpbmcgdGhpcyB0aW1lLgoKbm90ZTogSVAgaXRzZWxmIGlzIGV2ZW4gbXVjaCBvbGRl ci4KCj4gKiBUaGlzIGJpbmRpbmcgaXMgcHJlc2VudCBpbiBkZXZpY2V0cmVlcyBmcm9tIHRoZSBM aW51eCBrZXJuZWwsIGZyb20KPiDCoCBxZW11LCBpbiBvdGhlciBleGlzdGluZyBzeXN0ZW1zLCBh bmQgaW4gZGV2aWNldHJlZXMgZ2VuZXJhdGVkIGJ5Cj4gwqAgWGlsaW54J3MgdG9vbHNldC4KCk9u bHkgZnJvbSBMaW51eC4gUWVtdSBpcyB0cnlpbmcgdG8gcmV1c2UgdGhlIHNhbWUgcHJvcGVydGll cyBidXQgaXQgY2FuCmFsc28gYWRkIG93biBvbmUuIFRoZXkgYXJlIHRyeWluZyB0byBiZSBhbGln bmVkIGFzIG11Y2ggYXMgcG9zc2libGUgYnV0CnRoZXJlIGFyZSBhIGxvdCBvZiBjYXNlcyB3aGVy ZSBRZW11IHJlcXVpcmVzIG11Y2ggbW9yZSBpbmZvcm1hdGlvbi4gKEkKYW0gbm90IHNheWluZyBp biB0aGlzIHRpbWVyIGNhc2UgYnV0IGluIGdlbmVyYWwpLgoKCj4gKiBCZWNhdXNlIHRoZSBleGlz dGluZyBkcml2ZXIgZm9yIHRoaXMgZGV2aWNlIGRvZXMgbm90IGltcGxlbWVudCBhbGwKPiDCoCBm dW5jdGlvbmFsaXR5IGZvciB0aGlzIGRldmljZSwgbm90IGFsbCBwcm9wZXJ0aWVzIGluIHRoZSBk ZXZpY2V0cmVlCj4gwqAgYmluZGluZyBhcmUgdXNlZC4gSW4gZmFjdCwgdGhlcmUgaXMgKGFzIG5v dGVkIGFib3ZlKSBvbmUgcHJvcGVydHkKPiDCoCB3aGljaCBzaG91bGQgYmUgaW4gdXNlIGJ1dCBp cyBub3QgYmVjYXVzZSB0aGUgY3VycmVudCBkcml2ZXIKPiDCoCAoaW1wbGljaXRseSkgZG9lcyBu b3Qgc3VwcG9ydCBzb21lIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLgo+ICogVG8gc3VwcG9ydCBh ZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHksIGl0IGlzIG5lY2Vzc2FyeSB0bwo+IMKgIHVzZSBoYXJk d2FyZSBwYXJhbWV0ZXJzIHdoaWNoIHdlcmUgbm90IHByZXZpb3VzbHkgbmVjZXNzYXJ5Lgo+IAo+ IEJhc2VkIG9uIHRoZSBhYm92ZSwgd2UgY2FuIGNsYXNzaWZ5IHRoZSBwcm9wZXJ0aWVzIG9mIHRo aXMgYmluZGluZyBpbnRvCj4gc2V2ZXJhbCBjYXRlZ29yaWVzLgo+IAo+ICogVGhvc2Ugd2hpY2gg YXJlIGN1cnJlbnRseSByZWFkIGJ5IHRoZSBkcml2ZXIuCj4gwqAgKiBjb21wYXRpYmxlCj4gwqAg KiByZWcKPiDCoCAqIGNsb2Nrcwo+IMKgICogY2xvY2stZnJlcXVlbmN5Cj4gwqAgKiBpbnRlcnJ1 cHRzCj4gwqAgKiB4bG54LG9uZS10aW1lci1vbmx5Cj4gCj4gKiBUaG9zZSB3aGljaCByZWZsZWN0 IGhhcmR3YXJlIHBhcmFtZXRlcnMgd2hpY2ggYXJlIGN1cnJlbnRseSBleHBsaWNpdGx5Cj4gwqAg b3IgaW1wbGljaXRseSByZWxpZWQgdXBvbiBieSB0aGUgZHJpdmVyLgo+IMKgICogcmVnCj4gwqAg KiBjbG9ja3MKPiDCoCAqIGNsb2NrLWZyZXF1ZW5jeQo+IMKgICogaW50ZXJydXB0cwo+IMKgICog eGxueCxjb3VudGVyLXdpZHRoCj4gwqAgKiB4bG54LG9uZS10aW1lci1vbmx5Cj4gCj4gKiBUaG9z ZSB3aGljaCBhcmUgY3VycmVudGx5IHByZXNlbnQgaW4gZGV2aWNlIHRyZWVzLgo+IMKgICogY29t cGF0aWJsZQo+IMKgICogcmVnCj4gwqAgKiBpbnRlcnJ1cHRzCj4gwqAgKiBjbG9ja3MKPiDCoCAq IGNsb2NrLWZyZXF1ZW5jeQo+IMKgICogeGxueCxjb3VudC13aWR0aAo+IMKgICogeGxueCxvbmUt dGltZXItb25seQo+IMKgICogeGxueCx0cmlnMC1hc3NlcnQKPiDCoCAqIHhsbngsdHJpZzEtYXNz ZXJ0Cj4gwqAgKiB4bG54LGdlbjAtYXNzZXJ0Cj4gwqAgKiB4bG54LGdlbjEtYXNzZXJ0Cj4gCj4g V2hlbiBjaG9vc2luZyB3aGF0IHByb3BlcnRpZXMgdG8gdXNlLCB3ZSBtdXN0IGNvbnNpZGVyIHdo YXQgdGhlIGltcGFjdAo+IG9mIG91ciBjaGFuZ2VzIHdpbGwgYmUgb24gbm90IGp1c3QgdGhlIGtl cm5lbCBidXQgYWxzbyBvbiBleGlzdGluZyB1c2Vycwo+IG9mIHRoaXMgYmluZGluZzoKCkkgZG9u J3QgdGhpbmsgdGhhdCB0aGlzIGlzIHZhbGlkLiBSb2IgaXMgYXNraW5nIGZvciBhZGRpbmcgI3B3 bS1jZWxscwp3aGljaCBpcyBwdXJlbHkgTGludXggYmluZGluZy4gV2UgYWxzbyBkb24ndCBrbm93 IHdoYXQgcHJvcGVydGllcyBhcmUKdXNlZCBieSBvdGhlcnMgcHJvamVjdHMgbm90IGp1c3QgTGlu dXggb3IgUWVtdS4gQWxzbyByZXF1aXJlZCBwcm9wZXJ0aWVzCmluIExpbnV4IGRvZXNuJ3QgbmVl ZCB0byBiZSByZXF1aXJlZCBpbiBVLUJvb3QgZm9yIGV4YW1wbGUgZXZlbiB3ZSBhcmUKdHJ5aW5n IHRvIGFsaWduZWQgYWxsIG9mIHRoZW0uIEFub3RoZXIgY2FzZSBhcmUgb3RoZXJzIFJUT1Nlcywg ZXRjLgoKCj4gKiBUbyB1c2UgcHJvcGVydGllcyBjdXJyZW50bHkgcHJlc2VudCBpbiBkZXZpY2Ug dHJlZXMsIHdlIGp1c3QgbmVlZCB0bwo+IMKgIG1vZGlmeSB0aGUga2VybmVsIGRyaXZlci4KPiAq IFRvIGFkZCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgKHN1Y2ggYXMgZS5nLiAnI3B3bS1jZWxscycp LCB3ZSBtdXN0Cj4gwqAgbW9kaWZ5IHRoZSBrZXJuZWwgZHJpdmVyLiBJbiBhZGRpdGlvbiwgdXNl cnMgd2hvIHdvdWxkIGxpa2UgdG8gdXNlCj4gwqAgdGhlc2UgbmV3IHByb3BlcnRpZXMgbXVzdCBh ZGQgdGhlbSB0byB0aGVpciBkZXZpY2UgdHJlZXMuIFRoaXMgbWF5IGJlCj4gwqAgZG9uZSBpbiBh IG1lY2hhbmljYWwgd2F5IHVzaW5nIGUuZy4gb3ZlcmxheXMuCj4gKiBUbyBkZXByZWNhdGUgZXhp c3RpbmcgcHJvcGVydGllcyBhbmQgaW50cm9kdWNlIG5ldyBwcm9wZXJ0aWVzIHRvCj4gwqAgZXhw b3NlIHRoZSBzYW1lIHVuZGVybHlpbmcgaGFyZHdhcmUgcGFyYW1ldGVycywgd2UgbXVzdCBtb2Rp ZnkgdGhlCj4gwqAga2VybmVsIGRyaXZlci4gSG93ZXZlciwgdGhpcyBoYXMgYSBsYXJnZSBpbXBh Y3Qgb24gZXhpc3RpbmcgdXNlcnMuCj4gwqAgVGhleSBtdXN0IG1vZGlmeSB0aGVpciB0b29scyB0 byBnZW5lcmF0ZSB0aGlzIGluZm9ybWF0aW9uIGluIGEKPiDCoCBkaWZmZXJlbnQgZm9ybWF0LiBX aGVuIHRoaXMgaW5mb3JtYXRpb24gaXMgZ2VuZXJhdGVkIGJ5IHVwc3RyZWFtIHRvb2xzCj4gwqAg dGhpcyBtYXkgcmVxdWlyZSB1cGRhdGluZyBhIGNvcmUgcGFydCBvZiB0aGVpciBidWlsZCBzeXN0 ZW0uIEZvciBtYW55Cj4gwqAgcHJvamVjdHMsIHRoaXMgbWF5IGhhcHBlbiB2ZXJ5IGluZnJlcXVl bnRseSBiZWNhdXNlIG9mIHRoZSByaXNrIHRoYXQKPiDCoCBzdWNoIGFuIHVwZ3JhZGUgd2lsbCBi cmVhayB0aGluZ3MuIEV2ZW4gaWYgeW91IHN1Z2dlc3QgdGhhdCBYaWxpbnggY2FuCj4gwqAgZWFz aWx5IG1vZGlmeSBpdHMgdG9vbHMgdG8gZ2VuZXJhdGUgYW55IHNvcnQgb2Ygb3V0cHV0LCB0aGUg dGltZSBmb3IKPiDCoCB0aGlzIHVwZ3JhZGUgdG8gYmUgZGVwbG95ZWQvYWRvcHRlZCBtYXkgYmUg c2lnbmlmaWNhbnRseSBsb25nZXIuCgpGcm9tIFhpbGlueCBwZXJzcGVjdGl2ZSBpdCB3b3VsZCBi ZSBpZGVhbCB0byB1c2Ugb25seSBwcm9wZXJ0aWVzIHdoaWNoCmZ1bGx5IGRlc2NyaWJlIEhXIGlu IHRoZSBmb3JtIGhvdyB0aGV5IGFyZSBnZW5lcmF0ZWQgdG9kYXkuIFRoZXkgYXJlCnN0YWJsZSBm b3IgYSBsb3Qgb2YgeWVhcnMgYW5kIGFzIEkgc2FpZCBvbmx5IG5ldyBvbmUgYXJlIGFkZGVkLgpC dXQgdGhpcyBhbGlnbm1lbnQgd2Fzbid0IGFjY2VwdGVkIGxvbmcgdGltZSBhZ28gYW5kIHdlIGhh dmUgYmVlbiBhc2tlZAp0byBzdGFydCB0byBhbGlnbiB0aGVzZSBwcm9wZXJ0aWVzIHdpdGggc2lt aWxhciBIVyBkb25lIGJ5IG90aGVycy4KQW5kIHRydXRoIGlzIHRoYXQgaW4gYSBsb3Qgb2YgY2Fz ZXMgdGhlcmUgaXMgY2xlYXIgMToxIG1hcHBpbmcgYW5kCmdlbmVyaWMgcHJvcGVydGllcyBjYW4g YmUgc2ltcGx5IHVzZS4gVGhpcyBtYXBwaW5nIGVuZHMgaW4gWGlsaW54IGRldmljZQp0cmVlIGdl bmVyYXRvci4KQmFjayB0byB5b3VyIHBvaW50LiBSZXF1aXJlZCBwcm9wZXJ0aWVzIGFyZSByZXF1 aXJlZCBieSBMaW51eCBkcml2ZXIKb25seS4gVGhpcyBkcml2ZXIgaXMgYXJvdW5kIGZvciBxdWl0 ZSBhIGxvbmcgdGltZSB3aGVyZSBjZXJ0YWluIHBvbGljaWVzCmhhdmVuJ3QgYmVlbiBzZXR1cC91 c2VkL2VuZm9yY2VkIChNaWNyb2JsYXplIGlzIDJuZCBhcmNoaXRlY3R1cmUgd2hpY2gKc3RhcnRl ZCB0byB1c2UgZGV2aWNlIHRyZWUpLgpXZSBzaG91bGQgY3JlYXRlIERUIGJpbmRpbmcgZG9jIGF0 IHRoYXQgdGltZSBidXQgaW4gMjAwOSBpdCB3YXNuJ3QKc3RhbmRhcmQgcHJhY3RpY2UuIEluIDIw MDcgR3JhbnQgd2FzIGFkZGluZyBzdXBwb3J0IGZvciBYaWxpbnggUFBDCnBsYXRmb3JtIGFsc28g d2l0aG91dCBhbnkgRFQgYmluZGluZyBkb2N1bWVudCB0b28uCgpUaGF0J3Mgd2h5IHdlIG5lZWQg dG8gcmV2aWV3IGN1cnJlbnQgdW53cml0dGVuIERUIGJpbmRpbmcgYmFzZWQgb24gY29kZQpyZXF1 aXJlbWVudHMgYW5kIGxvb2sgYXQgaXQgaG93IHRvIGZpeCBpdCAoaWYgbmVlZGVkKSBhbmQgdGhl biBhZGQgUFdNCnN1cHBvcnQgb24gdGhlIHRvcCBvZiBpdC4KSWYgc29tZXRoaW5nIG5lZWRzIHRv IGJlIGRlcHJlY2F0ZWQsIGxldCdzIGRlcHJlY2F0ZSBpdCBhbmQgaGF2ZQp0cmFuc2l0aW9uIHRp bWUgZm9yIGEgeWVhciBvciBzbyB0byBhZGFwdCB0byBpdC4KClJvYiBrbm93cyBtdWNoIGJldHRl ciB0aGFuIEkgaG93IHRoaXMgc2hvdWxkIGJlIGhhbmRsZWQuCgpCYXNlZCBvbiB5b3VyIGxpc3Q6 CiAgKiBjb21wYXRpYmxlCiAgKiByZWcKICAqIGNsb2NrcwogICogY2xvY2stZnJlcXVlbmN5CiAg KiBpbnRlcnJ1cHRzCiAgKiB4bG54LG9uZS10aW1lci1vbmx5CgphbGwgb2YgdGhlc2UgYXJlIHJl cXVpcmVkIHByb3BlcnR5IGluIG5ldyBEVCBiaW5kaW5nLgoKeGxueCxjb3VudGVyLXdpZHRoIGlz IG9wdGlvbmFsIGlmIHlvdSB3YW50IHRvIHVzZS4KI3B3bS1jZWxscyBpcyBvcHRpb25hbCBmb3Ig ZW5hYmxpbmcgUFdNIHN1cHBvcnQgKEkgd291bGQgZXhwZWN0IHRoYXQKd2hlbiB0aGlzIHByb3Bl cnR5IGlzIHByZXNlbnQgdGhpcyB0aW1lciBkb24ndCBuZWVkIGJlIHVzZWQgYXMKY2xvY2tzb3Vy Y2UvY2xvY2tldmVudCBieSBNaWNyb2JsYXplKQpldGMKCkFuZCBmb3IgcHJvcGVydGllcyB3aGlj aCBhcmUgZ2VuZXJhdGVkIG91dCBvZiBYaWxpbnggdG9vbHMgSSB3b3VsZCBhbGxvdwppbiBEVCBi aW5kaW5nIHRvIGFkZCBvdGhlcnMgb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IERUIHdvbid0IGVy cm9yIG91dAppZiB0aGV5IGFyZSBzZWVuLgoKVGhhbmtzLApNaWNoYWwKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK