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=-10.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=unavailable 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 4BC04C433DB for ; Wed, 17 Mar 2021 14:38:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 00E3364F26 for ; Wed, 17 Mar 2021 14:38:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231965AbhCQOiR (ORCPT ); Wed, 17 Mar 2021 10:38:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231465AbhCQOiH (ORCPT ); Wed, 17 Mar 2021 10:38:07 -0400 Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDC70C06174A; Wed, 17 Mar 2021 07:38:06 -0700 (PDT) Received: by mail-wm1-x334.google.com with SMTP id 12so1600326wmf.5; Wed, 17 Mar 2021 07:38:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=2s5YbuhuWTd3ttLYVEHI3IRKeL8Zb/h8ik0U5PGagpM=; b=BtmQ8+nn2p4UpZo1NuZ9J5LoYrh0cUtNOWlV0ecqfesjM6Z1fRAyPzDLcoDdZy7H22 WghRx0g3K2YvJk8f7Oy/m+fu9FrHc9P26XlCtCEyykFx2fViu+HaxBRJ/Ep9TL5dIxfG NNLfxFZzzNnGd2sVtldNOmFK5HlC7K+W184sxETQklxkdkiwj1zrS/62mM1jsNa+UnI8 FFC1rh/6EyccAVUntNymj29YNJKKiDVwKoONofyNNSgLB8Xdh6z+y2SJ2ENYMsO3/R7P MdMGXc5cKj6zVGB2MYyRD0VyC5R8OHdLwlJejDQpCng7DfAFg19J0tlAcZ8O4WxfaCDg Wl6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=2s5YbuhuWTd3ttLYVEHI3IRKeL8Zb/h8ik0U5PGagpM=; b=ALNALMqInxjPPPnQqh1ACf7Mi2oNlHkBCZWafR1rIXZINRz45B+6n6r4Jq/SfALWw2 88nt85/Hh0M6bFGj3oyR2bMjHSYeaODLfgua0Xn7BFM9nwXCiuUtIA1IptRCXyFuTEMB UilKuCcmnj6nUz7ew4YrSnG4Jdz4HRkj2g8hG4Q6cRMO79j6kflfSvVDhMNYQt+JxrXD caIavGEFhfrtWXGdeBMbVVsCnALKMaDzCmO8oup90WvXb2W/3qoQG4bYBBVFtYXUn7bB 3nhmFFht7A4+p6F7gpbl0Lia/Ot+pyFSLdEB6qn/m24loTpM2gcdDaM7wRL+vXoT8jPh bAZQ== X-Gm-Message-State: AOAM532//AjDOBKLzi0ct4Jd60Ek0XQfO0j5EZ9xa6Ks/ndCpkrGHoN4 Wag7xWLcugaONr412P2RX48= X-Google-Smtp-Source: ABdhPJyZ2ub5Tvxww9TKqSmYfzFSl5/KmZ+goALIY+lUfCr+y62XoN3Zmwm94kvsNFJUTB5KKifgsw== X-Received: by 2002:a1c:2587:: with SMTP id l129mr3955173wml.135.1615991885587; Wed, 17 Mar 2021 07:38:05 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id a75sm2518948wme.10.2021.03.17.07.38.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Mar 2021 07:38:05 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Lee Jones , Michael Walle , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Jonas Gorski , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v8 00/22] pinctrl: add BCM63XX pincontrol support Date: Wed, 17 Mar 2021 15:37:41 +0100 Message-Id: <20210317143803.26127-1-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Álvaro Fernández Rojas lun, 15 mar 12:42 (hace 2 días) para Linus, Bartosz, Rob, Florian, bcm-kernel-feedback-list, Lee, Michael, mí, Jonas, Necip, Andy, linux-gpio, devicetree, linux-arm-kernel, linux-kernel First of all, I've based this on the patches sent by Jonas Gorski back in 2016: https://www.spinics.net/lists/linux-gpio/msg15983.html http://patchwork.ozlabs.org/project/linux-gpio/patch/1471604025-21575-2-git-send-email-jonas.gorski@gmail.com/ I've tried to address all coments from Linus Walleij, but I know that this may still need some other modifications This patchset adds appropriate binding documentation and drivers for pin controller cores found in the BCM63XX MIPS SoCs currently supported. While the GPIO part is always the same, the pinmux part varies quite a lot between different SoCs. Sometimes they have defined groups which can be muxed into different functions, sometimes each function has a different group. Sometimes you can mux individual pins. Often it is a combination of single pins and groups. Some core versions require the GPIO direction to be set according to the function, most do not. Sometimes the mux register(s) contain bits for unrelated other functions. v8: introduce changes suggested by Rob Herring. v7: introduce changes suggested by Rob Herring. v6: introduce changes suggested by Rob Herring and Andy Shevchenko. v5: introduce changes suggested by Andy Shevchenko. v4: fix gpiochip_irqchip_add_domain(), remove IRQ Kconfig selections and add missing of_node_put(). v3: introduce new files for shared code and add more changes suggested by Linus Walleij. Also add a new patch needed for properly parsing gpio-ranges. v2: introduce changes suggested by Linus Walleij and remove interrupts - In order to use GPIO_REGMAP, the need to get gpio_chip from gpio_regmap and use it for pinctrl_add_gpio_range() and gpio_chip.direction_input() and gpio_chip.direction_output(). Álvaro Fernández Rojas (22): gpio: guard gpiochip_irqchip_add_domain() with GPIOLIB_IRQCHIP gpio: regmap: set gpio_chip of_node dt-bindings: improve BCM6345 GPIO binding documentation pinctrl: bcm: add bcm63xx base code dt-bindings: add BCM6328 pincontroller binding documentation dt-bindings: add BCM6328 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6328 dt-bindings: add BCM6358 pincontroller binding documentation dt-bindings: add BCM6358 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6358 dt-bindings: add BCM6362 pincontroller binding documentation dt-bindings: add BCM6362 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6362 dt-bindings: add BCM6368 pincontroller binding documentation dt-bindings: add BCM6368 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6368 dt-bindings: add BCM63268 pincontroller binding documentation dt-bindings: add BCM63268 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM63268 dt-bindings: add BCM6318 pincontroller binding documentation dt-bindings: add BCM6318 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6318 .../bindings/gpio/brcm,bcm6345-gpio.txt | 46 -- .../bindings/gpio/brcm,bcm6345-gpio.yaml | 78 +++ .../mfd/brcm,bcm6318-gpio-sysctl.yaml | 177 +++++ .../mfd/brcm,bcm63268-gpio-sysctl.yaml | 194 ++++++ .../mfd/brcm,bcm6328-gpio-sysctl.yaml | 162 +++++ .../mfd/brcm,bcm6358-gpio-sysctl.yaml | 130 ++++ .../mfd/brcm,bcm6362-gpio-sysctl.yaml | 236 +++++++ .../mfd/brcm,bcm6368-gpio-sysctl.yaml | 246 +++++++ .../pinctrl/brcm,bcm6318-pinctrl.yaml | 145 ++++ .../pinctrl/brcm,bcm63268-pinctrl.yaml | 166 +++++ .../pinctrl/brcm,bcm6328-pinctrl.yaml | 127 ++++ .../pinctrl/brcm,bcm6358-pinctrl.yaml | 93 +++ .../pinctrl/brcm,bcm6362-pinctrl.yaml | 206 ++++++ .../pinctrl/brcm,bcm6368-pinctrl.yaml | 219 ++++++ drivers/gpio/gpio-regmap.c | 2 + drivers/pinctrl/bcm/Kconfig | 55 ++ drivers/pinctrl/bcm/Makefile | 7 + drivers/pinctrl/bcm/pinctrl-bcm6318.c | 498 ++++++++++++++ drivers/pinctrl/bcm/pinctrl-bcm63268.c | 643 ++++++++++++++++++ drivers/pinctrl/bcm/pinctrl-bcm6328.c | 404 +++++++++++ drivers/pinctrl/bcm/pinctrl-bcm6358.c | 369 ++++++++++ drivers/pinctrl/bcm/pinctrl-bcm6362.c | 617 +++++++++++++++++ drivers/pinctrl/bcm/pinctrl-bcm6368.c | 523 ++++++++++++++ drivers/pinctrl/bcm/pinctrl-bcm63xx.c | 109 +++ drivers/pinctrl/bcm/pinctrl-bcm63xx.h | 43 ++ include/linux/gpio/driver.h | 9 + include/linux/gpio/regmap.h | 4 + 27 files changed, 5462 insertions(+), 46 deletions(-) delete mode 100644 Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.txt create mode 100644 Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6318-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm63268-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6328-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6358-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6362-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6368-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6318-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6358-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6362-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6368-pinctrl.yaml create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6318.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm63268.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6328.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6358.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6362.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6368.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm63xx.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm63xx.h -- 2.20.1 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=-8.7 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham 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 D860EC433E0 for ; Wed, 17 Mar 2021 14:40:21 +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 1B6D364F50 for ; Wed, 17 Mar 2021 14:40:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1B6D364F50 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=MzPBVqSOBSH2+4EnUbuvdtnz4Li0r7k1UGdvfEM9vrg=; b=dwEe8kHInK4IlP aTzXJlhAdoPrONZFQfOTrmWXYDRD3LD6wOfQ6zPvgCytexUfOkMhQb9yEXWa85fstm1DRbHlFgGOv kzL8Xwobw/zZcA+uE64PLOD2yvDx45q1tj5+LiG5/fmXfH4vsHZHg3r5R1T2+5IDJeFfuOF1uETqX M8mMImuaK6Us5oYMkf5X6pvl9IviGQZv6Lr9rM5kLJOjig1NV16Ovod/rn7/AHYdtSHyevMcOU+x6 MSqmuq0Iehe09AirJWMNiNevpSdzWZxJdTadlcNS/ks8ZsKbcKU3BFRLndzmbX/RN6YEnrZrzOi31 qabcIfeo+3CHD3Nw+eyQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lMXJZ-003Hha-A4; Wed, 17 Mar 2021 14:38:25 +0000 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lMXJG-003HaU-8F for linux-arm-kernel@lists.infradead.org; Wed, 17 Mar 2021 14:38:09 +0000 Received: by mail-wm1-x333.google.com with SMTP id g8so1602863wmd.4 for ; Wed, 17 Mar 2021 07:38:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=2s5YbuhuWTd3ttLYVEHI3IRKeL8Zb/h8ik0U5PGagpM=; b=BtmQ8+nn2p4UpZo1NuZ9J5LoYrh0cUtNOWlV0ecqfesjM6Z1fRAyPzDLcoDdZy7H22 WghRx0g3K2YvJk8f7Oy/m+fu9FrHc9P26XlCtCEyykFx2fViu+HaxBRJ/Ep9TL5dIxfG NNLfxFZzzNnGd2sVtldNOmFK5HlC7K+W184sxETQklxkdkiwj1zrS/62mM1jsNa+UnI8 FFC1rh/6EyccAVUntNymj29YNJKKiDVwKoONofyNNSgLB8Xdh6z+y2SJ2ENYMsO3/R7P MdMGXc5cKj6zVGB2MYyRD0VyC5R8OHdLwlJejDQpCng7DfAFg19J0tlAcZ8O4WxfaCDg Wl6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=2s5YbuhuWTd3ttLYVEHI3IRKeL8Zb/h8ik0U5PGagpM=; b=JcxjsUYpw2pENT/ogJa6kP/p+7Icn9MatLWzVhyEsDAjMXgtX9oLafqxE2zQtyEcEn l5iqjLqiyI+/1JgNhiXIhbtXLkht/MhUR1deQRzxw3tA9hso0vo62u2YqdE3VwCee8m7 LbERSYNYKpzIjQoKAedm0WZPKq+d9JAO6uwjDrstQlIm1zRUk6t+GQ/ZJZ17nXG8bycN 1DuOm8MrdUjMg4pf3jc/kBkLJKgDThDQqw0UUIha4eXSkAJNIh2bUOLX7G6sERCHgYW4 8P5v4ZT5OhahPEcQVql12+pwiCZJgjN4sDnW8jl09fPFiA0ubi8Ej2DEWA/wxL7ZYkel W94A== X-Gm-Message-State: AOAM531fabEmXnDm4MpgnpNeYizEZGQtQXBEdFr5+wzVyG4j1PDGdeVo ieIoIu/Cg+B+wYldxm2PjRs= X-Google-Smtp-Source: ABdhPJyZ2ub5Tvxww9TKqSmYfzFSl5/KmZ+goALIY+lUfCr+y62XoN3Zmwm94kvsNFJUTB5KKifgsw== X-Received: by 2002:a1c:2587:: with SMTP id l129mr3955173wml.135.1615991885587; Wed, 17 Mar 2021 07:38:05 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id a75sm2518948wme.10.2021.03.17.07.38.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Mar 2021 07:38:05 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Lee Jones , Michael Walle , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Jonas Gorski , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v8 00/22] pinctrl: add BCM63XX pincontrol support Date: Wed, 17 Mar 2021 15:37:41 +0100 Message-Id: <20210317143803.26127-1-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210317_143806_394045_5D271887 X-CRM114-Status: GOOD ( 17.60 ) 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 CsOBbHZhcm8gRmVybsOhbmRleiBSb2phcyA8bm9sdGFyaUBnbWFpbC5jb20+Cmx1biwgMTUgbWFy IDEyOjQyIChoYWNlIDIgZMOtYXMpCnBhcmEgTGludXMsIEJhcnRvc3osIFJvYiwgRmxvcmlhbiwg YmNtLWtlcm5lbC1mZWVkYmFjay1saXN0LCBMZWUsIE1pY2hhZWwsIG3DrSwgSm9uYXMsIE5lY2lw LCBBbmR5LCBsaW51eC1ncGlvLCBkZXZpY2V0cmVlLCBsaW51eC1hcm0ta2VybmVsLCBsaW51eC1r ZXJuZWwKCkZpcnN0IG9mIGFsbCwgSSd2ZSBiYXNlZCB0aGlzIG9uIHRoZSBwYXRjaGVzIHNlbnQg YnkgSm9uYXMgR29yc2tpIGJhY2sgaW4KMjAxNjoKaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlz dHMvbGludXgtZ3Bpby9tc2cxNTk4My5odG1sCmh0dHA6Ly9wYXRjaHdvcmsub3psYWJzLm9yZy9w cm9qZWN0L2xpbnV4LWdwaW8vcGF0Y2gvMTQ3MTYwNDAyNS0yMTU3NS0yLWdpdC1zZW5kLWVtYWls LWpvbmFzLmdvcnNraUBnbWFpbC5jb20vCgpJJ3ZlIHRyaWVkIHRvIGFkZHJlc3MgYWxsIGNvbWVu dHMgZnJvbSBMaW51cyBXYWxsZWlqLCBidXQgSSBrbm93IHRoYXQKdGhpcyBtYXkgc3RpbGwgbmVl ZCBzb21lIG90aGVyIG1vZGlmaWNhdGlvbnMKClRoaXMgcGF0Y2hzZXQgYWRkcyBhcHByb3ByaWF0 ZSBiaW5kaW5nIGRvY3VtZW50YXRpb24gYW5kIGRyaXZlcnMgZm9yCnBpbiBjb250cm9sbGVyIGNv cmVzIGZvdW5kIGluIHRoZSBCQ002M1hYIE1JUFMgU29DcyBjdXJyZW50bHkgc3VwcG9ydGVkLgoK V2hpbGUgdGhlIEdQSU8gcGFydCBpcyBhbHdheXMgdGhlIHNhbWUsIHRoZSBwaW5tdXggcGFydCB2 YXJpZXMgcXVpdGUgYQpsb3QgYmV0d2VlbiBkaWZmZXJlbnQgU29Dcy4gU29tZXRpbWVzIHRoZXkg aGF2ZSBkZWZpbmVkIGdyb3VwcyB3aGljaApjYW4gYmUgbXV4ZWQgaW50byBkaWZmZXJlbnQgZnVu Y3Rpb25zLCBzb21ldGltZXMgZWFjaCBmdW5jdGlvbiBoYXMgYQpkaWZmZXJlbnQgZ3JvdXAuIFNv bWV0aW1lcyB5b3UgY2FuIG11eCBpbmRpdmlkdWFsIHBpbnMuIE9mdGVuIGl0IGlzIGEKY29tYmlu YXRpb24gb2Ygc2luZ2xlIHBpbnMgYW5kIGdyb3Vwcy4KClNvbWUgY29yZSB2ZXJzaW9ucyByZXF1 aXJlIHRoZSBHUElPIGRpcmVjdGlvbiB0byBiZSBzZXQgYWNjb3JkaW5nIHRvIHRoZQpmdW5jdGlv biwgbW9zdCBkbyBub3QuIFNvbWV0aW1lcyB0aGUgbXV4IHJlZ2lzdGVyKHMpIGNvbnRhaW4gYml0 cyBmb3IKdW5yZWxhdGVkIG90aGVyIGZ1bmN0aW9ucy4KCnY4OiBpbnRyb2R1Y2UgY2hhbmdlcyBz dWdnZXN0ZWQgYnkgUm9iIEhlcnJpbmcuCnY3OiBpbnRyb2R1Y2UgY2hhbmdlcyBzdWdnZXN0ZWQg YnkgUm9iIEhlcnJpbmcuCnY2OiBpbnRyb2R1Y2UgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgUm9iIEhl cnJpbmcgYW5kIEFuZHkgU2hldmNoZW5rby4KdjU6IGludHJvZHVjZSBjaGFuZ2VzIHN1Z2dlc3Rl ZCBieSBBbmR5IFNoZXZjaGVua28uCnY0OiBmaXggZ3Bpb2NoaXBfaXJxY2hpcF9hZGRfZG9tYWlu KCksIHJlbW92ZSBJUlEgS2NvbmZpZyBzZWxlY3Rpb25zIGFuZCBhZGQKIG1pc3Npbmcgb2Zfbm9k ZV9wdXQoKS4KdjM6IGludHJvZHVjZSBuZXcgZmlsZXMgZm9yIHNoYXJlZCBjb2RlIGFuZCBhZGQg bW9yZSBjaGFuZ2VzIHN1Z2dlc3RlZCBieQogTGludXMgV2FsbGVpai4gQWxzbyBhZGQgYSBuZXcg cGF0Y2ggbmVlZGVkIGZvciBwcm9wZXJseSBwYXJzaW5nIGdwaW8tcmFuZ2VzLgp2MjogaW50cm9k dWNlIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IExpbnVzIFdhbGxlaWogYW5kIHJlbW92ZSBpbnRlcnJ1 cHRzCiAtIEluIG9yZGVyIHRvIHVzZSBHUElPX1JFR01BUCwgdGhlIG5lZWQgdG8gZ2V0IGdwaW9f Y2hpcCBmcm9tIGdwaW9fcmVnbWFwCiBhbmQgdXNlIGl0IGZvciBwaW5jdHJsX2FkZF9ncGlvX3Jh bmdlKCkgYW5kIGdwaW9fY2hpcC5kaXJlY3Rpb25faW5wdXQoKQogYW5kIGdwaW9fY2hpcC5kaXJl Y3Rpb25fb3V0cHV0KCkuCgrDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgKDIyKToKICBncGlvOiBn dWFyZCBncGlvY2hpcF9pcnFjaGlwX2FkZF9kb21haW4oKSB3aXRoIEdQSU9MSUJfSVJRQ0hJUAog IGdwaW86IHJlZ21hcDogc2V0IGdwaW9fY2hpcCBvZl9ub2RlCiAgZHQtYmluZGluZ3M6IGltcHJv dmUgQkNNNjM0NSBHUElPIGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIHBpbmN0cmw6IGJjbTogYWRk IGJjbTYzeHggYmFzZSBjb2RlCiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzI4IHBpbmNvbnRyb2xs ZXIgYmluZGluZyBkb2N1bWVudGF0aW9uCiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzI4IEdQSU8g c3lzY3RsIGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIHBpbmN0cmw6IGFkZCBhIHBpbmNvbnRyb2wg ZHJpdmVyIGZvciBCQ002MzI4CiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzU4IHBpbmNvbnRyb2xs ZXIgYmluZGluZyBkb2N1bWVudGF0aW9uCiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzU4IEdQSU8g c3lzY3RsIGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIHBpbmN0cmw6IGFkZCBhIHBpbmNvbnRyb2wg ZHJpdmVyIGZvciBCQ002MzU4CiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzYyIHBpbmNvbnRyb2xs ZXIgYmluZGluZyBkb2N1bWVudGF0aW9uCiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzYyIEdQSU8g c3lzY3RsIGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIHBpbmN0cmw6IGFkZCBhIHBpbmNvbnRyb2wg ZHJpdmVyIGZvciBCQ002MzYyCiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzY4IHBpbmNvbnRyb2xs ZXIgYmluZGluZyBkb2N1bWVudGF0aW9uCiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzY4IEdQSU8g c3lzY3RsIGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIHBpbmN0cmw6IGFkZCBhIHBpbmNvbnRyb2wg ZHJpdmVyIGZvciBCQ002MzY4CiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzI2OCBwaW5jb250cm9s bGVyIGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjMyNjggR1BJ TyBzeXNjdGwgYmluZGluZyBkb2N1bWVudGF0aW9uCiAgcGluY3RybDogYWRkIGEgcGluY29udHJv bCBkcml2ZXIgZm9yIEJDTTYzMjY4CiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzE4IHBpbmNvbnRy b2xsZXIgYmluZGluZyBkb2N1bWVudGF0aW9uCiAgZHQtYmluZGluZ3M6IGFkZCBCQ002MzE4IEdQ SU8gc3lzY3RsIGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIHBpbmN0cmw6IGFkZCBhIHBpbmNvbnRy b2wgZHJpdmVyIGZvciBCQ002MzE4CgogLi4uL2JpbmRpbmdzL2dwaW8vYnJjbSxiY202MzQ1LWdw aW8udHh0ICAgICAgIHwgIDQ2IC0tCiAuLi4vYmluZGluZ3MvZ3Bpby9icmNtLGJjbTYzNDUtZ3Bp by55YW1sICAgICAgfCAgNzggKysrCiAuLi4vbWZkL2JyY20sYmNtNjMxOC1ncGlvLXN5c2N0bC55 YW1sICAgICAgICAgfCAxNzcgKysrKysKIC4uLi9tZmQvYnJjbSxiY202MzI2OC1ncGlvLXN5c2N0 bC55YW1sICAgICAgICB8IDE5NCArKysrKysKIC4uLi9tZmQvYnJjbSxiY202MzI4LWdwaW8tc3lz Y3RsLnlhbWwgICAgICAgICB8IDE2MiArKysrKwogLi4uL21mZC9icmNtLGJjbTYzNTgtZ3Bpby1z eXNjdGwueWFtbCAgICAgICAgIHwgMTMwICsrKysKIC4uLi9tZmQvYnJjbSxiY202MzYyLWdwaW8t c3lzY3RsLnlhbWwgICAgICAgICB8IDIzNiArKysrKysrCiAuLi4vbWZkL2JyY20sYmNtNjM2OC1n cGlvLXN5c2N0bC55YW1sICAgICAgICAgfCAyNDYgKysrKysrKwogLi4uL3BpbmN0cmwvYnJjbSxi Y202MzE4LXBpbmN0cmwueWFtbCAgICAgICAgIHwgMTQ1ICsrKysKIC4uLi9waW5jdHJsL2JyY20s YmNtNjMyNjgtcGluY3RybC55YW1sICAgICAgICB8IDE2NiArKysrKwogLi4uL3BpbmN0cmwvYnJj bSxiY202MzI4LXBpbmN0cmwueWFtbCAgICAgICAgIHwgMTI3ICsrKysKIC4uLi9waW5jdHJsL2Jy Y20sYmNtNjM1OC1waW5jdHJsLnlhbWwgICAgICAgICB8ICA5MyArKysKIC4uLi9waW5jdHJsL2Jy Y20sYmNtNjM2Mi1waW5jdHJsLnlhbWwgICAgICAgICB8IDIwNiArKysrKysKIC4uLi9waW5jdHJs L2JyY20sYmNtNjM2OC1waW5jdHJsLnlhbWwgICAgICAgICB8IDIxOSArKysrKysKIGRyaXZlcnMv Z3Bpby9ncGlvLXJlZ21hcC5jICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBkcml2ZXJzL3Bp bmN0cmwvYmNtL0tjb25maWcgICAgICAgICAgICAgICAgICAgfCAgNTUgKysKIGRyaXZlcnMvcGlu Y3RybC9iY20vTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgNyArCiBkcml2ZXJzL3BpbmN0 cmwvYmNtL3BpbmN0cmwtYmNtNjMxOC5jICAgICAgICAgfCA0OTggKysrKysrKysrKysrKysKIGRy aXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzI2OC5jICAgICAgICB8IDY0MyArKysrKysr KysrKysrKysrKysKIGRyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzI4LmMgICAgICAg ICB8IDQwNCArKysrKysrKysrKwogZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzNTgu YyAgICAgICAgIHwgMzY5ICsrKysrKysrKysKIGRyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1i Y202MzYyLmMgICAgICAgICB8IDYxNyArKysrKysrKysrKysrKysrKwogZHJpdmVycy9waW5jdHJs L2JjbS9waW5jdHJsLWJjbTYzNjguYyAgICAgICAgIHwgNTIzICsrKysrKysrKysrKysrCiBkcml2 ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjN4eC5jICAgICAgICAgfCAxMDkgKysrCiBkcml2 ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjN4eC5oICAgICAgICAgfCAgNDMgKysKIGluY2x1 ZGUvbGludXgvZ3Bpby9kcml2ZXIuaCAgICAgICAgICAgICAgICAgICB8ICAgOSArCiBpbmNsdWRl L2xpbnV4L2dwaW8vcmVnbWFwLmggICAgICAgICAgICAgICAgICAgfCAgIDQgKwogMjcgZmlsZXMg Y2hhbmdlZCwgNTQ2MiBpbnNlcnRpb25zKCspLCA0NiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9icmNtLGJjbTYz NDUtZ3Bpby50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvZ3Bpby9icmNtLGJjbTYzNDUtZ3Bpby55YW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9icmNtLGJjbTYzMTgtZ3Bpby1z eXNjdGwueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9tZmQvYnJjbSxiY202MzI2OC1ncGlvLXN5c2N0bC55YW1sCiBjcmVhdGUgbW9kZSAx MDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9icmNtLGJjbTYzMjgt Z3Bpby1zeXNjdGwueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9tZmQvYnJjbSxiY202MzU4LWdwaW8tc3lzY3RsLnlhbWwKIGNyZWF0ZSBt b2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWZkL2JyY20sYmNt NjM2Mi1ncGlvLXN5c2N0bC55YW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9k ZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9icmNtLGJjbTYzNjgtZ3Bpby1zeXNjdGwueWFtbAogY3Jl YXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJs L2JyY20sYmNtNjMxOC1waW5jdHJsLnlhbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9icmNtLGJjbTYzMjY4LXBpbmN0cmwueWFt bAogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9w aW5jdHJsL2JyY20sYmNtNjMyOC1waW5jdHJsLnlhbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9icmNtLGJjbTYzNTgtcGluY3Ry bC55YW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL3BpbmN0cmwvYnJjbSxiY202MzYyLXBpbmN0cmwueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0 IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL2JyY20sYmNtNjM2OC1w aW5jdHJsLnlhbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0 cmwtYmNtNjMxOC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9waW5jdHJsL2JjbS9waW5j dHJsLWJjbTYzMjY4LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3BpbmN0cmwvYmNtL3Bp bmN0cmwtYmNtNjMyOC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9waW5jdHJsL2JjbS9w aW5jdHJsLWJjbTYzNTguYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGluY3RybC9iY20v cGluY3RybC1iY202MzYyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3BpbmN0cmwvYmNt L3BpbmN0cmwtYmNtNjM2OC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9waW5jdHJsL2Jj bS9waW5jdHJsLWJjbTYzeHguYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGluY3RybC9i Y20vcGluY3RybC1iY202M3h4LmgKCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==