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 C8298C43331 for ; Mon, 15 Mar 2021 11:43:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B477664EBD for ; Mon, 15 Mar 2021 11:43:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230250AbhCOLmu (ORCPT ); Mon, 15 Mar 2021 07:42:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43160 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229775AbhCOLmT (ORCPT ); Mon, 15 Mar 2021 07:42:19 -0400 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51EE4C061574; Mon, 15 Mar 2021 04:42:18 -0700 (PDT) Received: by mail-wm1-x32f.google.com with SMTP id n11-20020a05600c4f8bb029010e5cf86347so2144988wmq.1; Mon, 15 Mar 2021 04:42:18 -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=CZ4o44VN67SngoagcuOsHI3wdJFUzIRPY1Jka8gdm00=; b=OLR/pPqJwWErDKHhxpklSMpwDpjG+8mMVjxCWj1MlDFUR1RdzPCwNe1KEQ3kDM5J/l YZbqzgA5Jq72GIVGEBi5rXOW2y0KeBu9Z1kO/dryyOXKjP+ncGOQWg+uCP+j2v3Aek1i +8gZnvTcMRLc/wSZZY1tS+8E6ZQyWd7XePQZ2xKjnNPu1G02FijdIlaWq1b6SisKw80Y c85YWPHdfmaMkjT9O8i22Yk7oKV53RRmQw0YYWmh7Zq9s/17X5thdOhpZ6aBinJOdgF4 BG3BjTF2vfhY5I+YFkD3cpAS2PbhmccvcfF4GyEexPtQ3/FQibBG5cfbi7vLe6P087eL +U5Q== 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=CZ4o44VN67SngoagcuOsHI3wdJFUzIRPY1Jka8gdm00=; b=sT/FQuqglBsmDR1LQ3Kt5aT9JdDktxfgjc/zsZoelc4UcvU1nJCTTfAwu3mpPNCQDA cw+LjBKJEG/EBGo7M61vmzZLM7nR5lIyhHpRHmP0s5w7MPWKCmyRniPIgUtPQqElUSn9 e9STzkuQHE1UbFnw1TCgYog+zArmFwSoLBFLMWy1DB5q+g6nLzcm8FAORguJOEYwX4kx VQLjNwYt2SNZ/QRAL5OBZn78K0Yqd+OR+n9qVFJI9NZ5uYTsgssH4RcJghr/31dz2q1j aSr3GhBOiU7lzczB1EO9JoHt2HxM3tg7Q4fC9zUCYWKFHy+M7ZUrVPv56Lq4pI7fBnCX FGxw== X-Gm-Message-State: AOAM532tzn4Fp5h+QBzjhbp2P9mzDupyq5kP/sVQOwDtnq8uAOgOclwX eFRdoLxs45zkNNYGRtRdhoY= X-Google-Smtp-Source: ABdhPJyIb2L+D5GFNzesGuoKgblo8rS1r0ZQZGKEu8TCFf7bO2Z3ep9sgLZ5nHyiOOkgPwHi3EolsQ== X-Received: by 2002:a7b:c3c1:: with SMTP id t1mr25326625wmj.47.1615808536906; Mon, 15 Mar 2021 04:42:16 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id v189sm12648187wme.39.2021.03.15.04.42.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 04:42:16 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Lee Jones , Michael Walle , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Jonas Gorski , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 00/22] pinctrl: add BCM63XX pincontrol support Date: Mon, 15 Mar 2021 12:41:52 +0100 Message-Id: <20210315114214.3096-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-kernel@vger.kernel.org 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. 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: add BCM63XX 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,bcm63xx-gpio.yaml | 83 +++ .../mfd/brcm,bcm6318-gpio-sysctl.yaml | 179 +++++ .../mfd/brcm,bcm63268-gpio-sysctl.yaml | 196 ++++++ .../mfd/brcm,bcm6328-gpio-sysctl.yaml | 164 +++++ .../mfd/brcm,bcm6358-gpio-sysctl.yaml | 132 ++++ .../mfd/brcm,bcm6362-gpio-sysctl.yaml | 238 +++++++ .../mfd/brcm,bcm6368-gpio-sysctl.yaml | 248 +++++++ .../pinctrl/brcm,bcm6318-pinctrl.yaml | 148 ++++ .../pinctrl/brcm,bcm63268-pinctrl.yaml | 169 +++++ .../pinctrl/brcm,bcm6328-pinctrl.yaml | 132 ++++ .../pinctrl/brcm,bcm6358-pinctrl.yaml | 98 +++ .../pinctrl/brcm,bcm6362-pinctrl.yaml | 211 ++++++ .../pinctrl/brcm,bcm6368-pinctrl.yaml | 222 ++++++ 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 | 113 +++ drivers/pinctrl/bcm/pinctrl-bcm63xx.h | 43 ++ include/linux/gpio/driver.h | 9 + include/linux/gpio/regmap.h | 4 + 26 files changed, 5507 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpio/brcm,bcm63xx-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 5EBC4C43333 for ; Mon, 15 Mar 2021 11:49:48 +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 CA4B064EBD for ; Mon, 15 Mar 2021 11:49:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CA4B064EBD 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=2tLev2UbfvhsXTEKOJZNuOO6BksKiWXEc11zLKrwVV8=; b=Dn8NP5aAgV0oCp iU3XxCZ4kk+Aa+y4caf/n6UOr43sn4LtxNwYAcWaurVKvsDQr/tzVrVG7AymZHq5u1uwYRF60ef5F 9+B75dDqX91PMa4zs7VLOBCSRETXWy12tJtvDnYfUdc0znM/VKoWqXKcGxXmvEP/cGVOI/A8jjpz8 GjjVCmglzR06DZZi92x6JvSB+DvDRJNht+siF9IXsre//NnddTxML/lDExen/vQwra5PbnRo0cD1X gDRkvmqH7rp2xwKEp/X6+oPOdmbSdusSfHGXHSu8WHD38pPNvbju/ij3xosTVOxHhgPcyUC66Dj65 YtMfH+ebb9kEQzOMZEgg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lLlfE-00FhIt-E2; Mon, 15 Mar 2021 11:45:36 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLlc2-00FgoJ-QA for linux-arm-kernel@lists.infradead.org; Mon, 15 Mar 2021 11:42:23 +0000 Received: by mail-wm1-x334.google.com with SMTP id w203-20020a1c49d40000b029010c706d0642so2151968wma.0 for ; Mon, 15 Mar 2021 04:42:17 -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=CZ4o44VN67SngoagcuOsHI3wdJFUzIRPY1Jka8gdm00=; b=OLR/pPqJwWErDKHhxpklSMpwDpjG+8mMVjxCWj1MlDFUR1RdzPCwNe1KEQ3kDM5J/l YZbqzgA5Jq72GIVGEBi5rXOW2y0KeBu9Z1kO/dryyOXKjP+ncGOQWg+uCP+j2v3Aek1i +8gZnvTcMRLc/wSZZY1tS+8E6ZQyWd7XePQZ2xKjnNPu1G02FijdIlaWq1b6SisKw80Y c85YWPHdfmaMkjT9O8i22Yk7oKV53RRmQw0YYWmh7Zq9s/17X5thdOhpZ6aBinJOdgF4 BG3BjTF2vfhY5I+YFkD3cpAS2PbhmccvcfF4GyEexPtQ3/FQibBG5cfbi7vLe6P087eL +U5Q== 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=CZ4o44VN67SngoagcuOsHI3wdJFUzIRPY1Jka8gdm00=; b=B15lel58HpP/Nr2gvCd9UWM+m3SxjXWR7JjVBX7psgDAFlK5F98Wre9v+OBA9NUZes idiZV0jx0OEDChGgZVjcMZ9WRXVtRWIDN8thJQAylsw02/rRiLzxGEkgnxM6hQnZ3S/J 8bbwkN+gqVt90TE56GvGuAqWad7tU0eaDP7rgLXg4a5g9oBbpb4bbww5yn0yRUVWgP3w eVaH2WZlyZK1k9ZlDggIP6YWT8V3d7bqZ7xX7uf70vk0QdDs02eRbLOrJZMoMdmCEKpb qdqbra+EixLC+7KNXNrUJ9cXUUz61jdGfuRaJd3HmjjLC23KovXIEGPaOT8vrjSFmTlY OibA== X-Gm-Message-State: AOAM530dZT0HyowOKvc/fZM77dA4F99KCWn8BstCpihqEywsTE2GHiSG GXxznGu6PbSnareH0G4rYGQ= X-Google-Smtp-Source: ABdhPJyIb2L+D5GFNzesGuoKgblo8rS1r0ZQZGKEu8TCFf7bO2Z3ep9sgLZ5nHyiOOkgPwHi3EolsQ== X-Received: by 2002:a7b:c3c1:: with SMTP id t1mr25326625wmj.47.1615808536906; Mon, 15 Mar 2021 04:42:16 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id v189sm12648187wme.39.2021.03.15.04.42.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 04:42:16 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Lee Jones , Michael Walle , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Jonas Gorski , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 00/22] pinctrl: add BCM63XX pincontrol support Date: Mon, 15 Mar 2021 12:41:52 +0100 Message-Id: <20210315114214.3096-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-20210315_114220_066790_B4EE8DFA X-CRM114-Status: GOOD ( 17.97 ) 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 Rmlyc3Qgb2YgYWxsLCBJJ3ZlIGJhc2VkIHRoaXMgb24gdGhlIHBhdGNoZXMgc2VudCBieSBKb25h cyBHb3Jza2kgYmFjayBpbgoyMDE2OgpodHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9saW51 eC1ncGlvL21zZzE1OTgzLmh0bWwKaHR0cDovL3BhdGNod29yay5vemxhYnMub3JnL3Byb2plY3Qv bGludXgtZ3Bpby9wYXRjaC8xNDcxNjA0MDI1LTIxNTc1LTItZ2l0LXNlbmQtZW1haWwtam9uYXMu Z29yc2tpQGdtYWlsLmNvbS8KCkkndmUgdHJpZWQgdG8gYWRkcmVzcyBhbGwgY29tZW50cyBmcm9t IExpbnVzIFdhbGxlaWosIGJ1dCBJIGtub3cgdGhhdAp0aGlzIG1heSBzdGlsbCBuZWVkIHNvbWUg b3RoZXIgbW9kaWZpY2F0aW9ucwoKVGhpcyBwYXRjaHNldCBhZGRzIGFwcHJvcHJpYXRlIGJpbmRp bmcgZG9jdW1lbnRhdGlvbiBhbmQgZHJpdmVycyBmb3IKcGluIGNvbnRyb2xsZXIgY29yZXMgZm91 bmQgaW4gdGhlIEJDTTYzWFggTUlQUyBTb0NzIGN1cnJlbnRseSBzdXBwb3J0ZWQuCgpXaGlsZSB0 aGUgR1BJTyBwYXJ0IGlzIGFsd2F5cyB0aGUgc2FtZSwgdGhlIHBpbm11eCBwYXJ0IHZhcmllcyBx dWl0ZSBhCmxvdCBiZXR3ZWVuIGRpZmZlcmVudCBTb0NzLiBTb21ldGltZXMgdGhleSBoYXZlIGRl ZmluZWQgZ3JvdXBzIHdoaWNoCmNhbiBiZSBtdXhlZCBpbnRvIGRpZmZlcmVudCBmdW5jdGlvbnMs IHNvbWV0aW1lcyBlYWNoIGZ1bmN0aW9uIGhhcyBhCmRpZmZlcmVudCBncm91cC4gU29tZXRpbWVz IHlvdSBjYW4gbXV4IGluZGl2aWR1YWwgcGlucy4gT2Z0ZW4gaXQgaXMgYQpjb21iaW5hdGlvbiBv ZiBzaW5nbGUgcGlucyBhbmQgZ3JvdXBzLgoKU29tZSBjb3JlIHZlcnNpb25zIHJlcXVpcmUgdGhl IEdQSU8gZGlyZWN0aW9uIHRvIGJlIHNldCBhY2NvcmRpbmcgdG8gdGhlCmZ1bmN0aW9uLCBtb3N0 IGRvIG5vdC4gU29tZXRpbWVzIHRoZSBtdXggcmVnaXN0ZXIocykgY29udGFpbiBiaXRzIGZvcgp1 bnJlbGF0ZWQgb3RoZXIgZnVuY3Rpb25zLgoKdjc6IGludHJvZHVjZSBjaGFuZ2VzIHN1Z2dlc3Rl ZCBieSBSb2IgSGVycmluZy4KdjY6IGludHJvZHVjZSBjaGFuZ2VzIHN1Z2dlc3RlZCBieSBSb2Ig SGVycmluZyBhbmQgQW5keSBTaGV2Y2hlbmtvLgp2NTogaW50cm9kdWNlIGNoYW5nZXMgc3VnZ2Vz dGVkIGJ5IEFuZHkgU2hldmNoZW5rby4KdjQ6IGZpeCBncGlvY2hpcF9pcnFjaGlwX2FkZF9kb21h aW4oKSwgcmVtb3ZlIElSUSBLY29uZmlnIHNlbGVjdGlvbnMgYW5kIGFkZAogbWlzc2luZyBvZl9u b2RlX3B1dCgpLgp2MzogaW50cm9kdWNlIG5ldyBmaWxlcyBmb3Igc2hhcmVkIGNvZGUgYW5kIGFk ZCBtb3JlIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5CiBMaW51cyBXYWxsZWlqLiBBbHNvIGFkZCBhIG5l dyBwYXRjaCBuZWVkZWQgZm9yIHByb3Blcmx5IHBhcnNpbmcgZ3Bpby1yYW5nZXMuCnYyOiBpbnRy b2R1Y2UgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgTGludXMgV2FsbGVpaiBhbmQgcmVtb3ZlIGludGVy cnVwdHMKIC0gSW4gb3JkZXIgdG8gdXNlIEdQSU9fUkVHTUFQLCB0aGUgbmVlZCB0byBnZXQgZ3Bp b19jaGlwIGZyb20gZ3Bpb19yZWdtYXAKIGFuZCB1c2UgaXQgZm9yIHBpbmN0cmxfYWRkX2dwaW9f cmFuZ2UoKSBhbmQgZ3Bpb19jaGlwLmRpcmVjdGlvbl9pbnB1dCgpCiBhbmQgZ3Bpb19jaGlwLmRp cmVjdGlvbl9vdXRwdXQoKS4KCsOBbHZhcm8gRmVybsOhbmRleiBSb2phcyAoMjIpOgogIGdwaW86 IGd1YXJkIGdwaW9jaGlwX2lycWNoaXBfYWRkX2RvbWFpbigpIHdpdGggR1BJT0xJQl9JUlFDSElQ CiAgZ3BpbzogcmVnbWFwOiBzZXQgZ3Bpb19jaGlwIG9mX25vZGUKICBkdC1iaW5kaW5nczogYWRk IEJDTTYzWFggR1BJTyBiaW5kaW5nIGRvY3VtZW50YXRpb24KICBwaW5jdHJsOiBiY206IGFkZCBi Y202M3h4IGJhc2UgY29kZQogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjMyOCBwaW5jb250cm9sbGVy IGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjMyOCBHUElPIHN5 c2N0bCBiaW5kaW5nIGRvY3VtZW50YXRpb24KICBwaW5jdHJsOiBhZGQgYSBwaW5jb250cm9sIGRy aXZlciBmb3IgQkNNNjMyOAogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjM1OCBwaW5jb250cm9sbGVy IGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjM1OCBHUElPIHN5 c2N0bCBiaW5kaW5nIGRvY3VtZW50YXRpb24KICBwaW5jdHJsOiBhZGQgYSBwaW5jb250cm9sIGRy aXZlciBmb3IgQkNNNjM1OAogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjM2MiBwaW5jb250cm9sbGVy IGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjM2MiBHUElPIHN5 c2N0bCBiaW5kaW5nIGRvY3VtZW50YXRpb24KICBwaW5jdHJsOiBhZGQgYSBwaW5jb250cm9sIGRy aXZlciBmb3IgQkNNNjM2MgogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjM2OCBwaW5jb250cm9sbGVy IGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjM2OCBHUElPIHN5 c2N0bCBiaW5kaW5nIGRvY3VtZW50YXRpb24KICBwaW5jdHJsOiBhZGQgYSBwaW5jb250cm9sIGRy aXZlciBmb3IgQkNNNjM2OAogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjMyNjggcGluY29udHJvbGxl ciBiaW5kaW5nIGRvY3VtZW50YXRpb24KICBkdC1iaW5kaW5nczogYWRkIEJDTTYzMjY4IEdQSU8g c3lzY3RsIGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIHBpbmN0cmw6IGFkZCBhIHBpbmNvbnRyb2wg ZHJpdmVyIGZvciBCQ002MzI2OAogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjMxOCBwaW5jb250cm9s bGVyIGJpbmRpbmcgZG9jdW1lbnRhdGlvbgogIGR0LWJpbmRpbmdzOiBhZGQgQkNNNjMxOCBHUElP IHN5c2N0bCBiaW5kaW5nIGRvY3VtZW50YXRpb24KICBwaW5jdHJsOiBhZGQgYSBwaW5jb250cm9s IGRyaXZlciBmb3IgQkNNNjMxOAoKIC4uLi9iaW5kaW5ncy9ncGlvL2JyY20sYmNtNjN4eC1ncGlv LnlhbWwgICAgICB8ICA4MyArKysKIC4uLi9tZmQvYnJjbSxiY202MzE4LWdwaW8tc3lzY3RsLnlh bWwgICAgICAgICB8IDE3OSArKysrKwogLi4uL21mZC9icmNtLGJjbTYzMjY4LWdwaW8tc3lzY3Rs LnlhbWwgICAgICAgIHwgMTk2ICsrKysrKwogLi4uL21mZC9icmNtLGJjbTYzMjgtZ3Bpby1zeXNj dGwueWFtbCAgICAgICAgIHwgMTY0ICsrKysrCiAuLi4vbWZkL2JyY20sYmNtNjM1OC1ncGlvLXN5 c2N0bC55YW1sICAgICAgICAgfCAxMzIgKysrKwogLi4uL21mZC9icmNtLGJjbTYzNjItZ3Bpby1z eXNjdGwueWFtbCAgICAgICAgIHwgMjM4ICsrKysrKysKIC4uLi9tZmQvYnJjbSxiY202MzY4LWdw aW8tc3lzY3RsLnlhbWwgICAgICAgICB8IDI0OCArKysrKysrCiAuLi4vcGluY3RybC9icmNtLGJj bTYzMTgtcGluY3RybC55YW1sICAgICAgICAgfCAxNDggKysrKwogLi4uL3BpbmN0cmwvYnJjbSxi Y202MzI2OC1waW5jdHJsLnlhbWwgICAgICAgIHwgMTY5ICsrKysrCiAuLi4vcGluY3RybC9icmNt LGJjbTYzMjgtcGluY3RybC55YW1sICAgICAgICAgfCAxMzIgKysrKwogLi4uL3BpbmN0cmwvYnJj bSxiY202MzU4LXBpbmN0cmwueWFtbCAgICAgICAgIHwgIDk4ICsrKwogLi4uL3BpbmN0cmwvYnJj bSxiY202MzYyLXBpbmN0cmwueWFtbCAgICAgICAgIHwgMjExICsrKysrKwogLi4uL3BpbmN0cmwv YnJjbSxiY202MzY4LXBpbmN0cmwueWFtbCAgICAgICAgIHwgMjIyICsrKysrKwogZHJpdmVycy9n cGlvL2dwaW8tcmVnbWFwLmMgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGRyaXZlcnMvcGlu Y3RybC9iY20vS2NvbmZpZyAgICAgICAgICAgICAgICAgICB8ICA1NSArKwogZHJpdmVycy9waW5j dHJsL2JjbS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICA3ICsKIGRyaXZlcnMvcGluY3Ry bC9iY20vcGluY3RybC1iY202MzE4LmMgICAgICAgICB8IDQ5OCArKysrKysrKysrKysrKwogZHJp dmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjY4LmMgICAgICAgIHwgNjQzICsrKysrKysr KysrKysrKysrKwogZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjguYyAgICAgICAg IHwgNDA0ICsrKysrKysrKysrCiBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM1OC5j ICAgICAgICAgfCAzNjkgKysrKysrKysrKwogZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJj bTYzNjIuYyAgICAgICAgIHwgNjE3ICsrKysrKysrKysrKysrKysrCiBkcml2ZXJzL3BpbmN0cmwv YmNtL3BpbmN0cmwtYmNtNjM2OC5jICAgICAgICAgfCA1MjMgKysrKysrKysrKysrKysKIGRyaXZl cnMvcGluY3RybC9iY20vcGluY3RybC1iY202M3h4LmMgICAgICAgICB8IDExMyArKysKIGRyaXZl cnMvcGluY3RybC9iY20vcGluY3RybC1iY202M3h4LmggICAgICAgICB8ICA0MyArKwogaW5jbHVk ZS9saW51eC9ncGlvL2RyaXZlci5oICAgICAgICAgICAgICAgICAgIHwgICA5ICsKIGluY2x1ZGUv bGludXgvZ3Bpby9yZWdtYXAuaCAgICAgICAgICAgICAgICAgICB8ICAgNCArCiAyNiBmaWxlcyBj aGFuZ2VkLCA1NTA3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9icmNtLGJjbTYzeHgtZ3Bpby55YW1sCiBjcmVh dGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9icmNt LGJjbTYzMTgtZ3Bpby1zeXNjdGwueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvYnJjbSxiY202MzI2OC1ncGlvLXN5c2N0bC55YW1s CiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21m ZC9icmNtLGJjbTYzMjgtZ3Bpby1zeXNjdGwueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvYnJjbSxiY202MzU4LWdwaW8tc3lzY3Rs LnlhbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvbWZkL2JyY20sYmNtNjM2Mi1ncGlvLXN5c2N0bC55YW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21mZC9icmNtLGJjbTYzNjgtZ3Bpby1z eXNjdGwueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9waW5jdHJsL2JyY20sYmNtNjMxOC1waW5jdHJsLnlhbWwKIGNyZWF0ZSBtb2RlIDEw MDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9icmNtLGJjbTYz MjY4LXBpbmN0cmwueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9waW5jdHJsL2JyY20sYmNtNjMyOC1waW5jdHJsLnlhbWwKIGNyZWF0ZSBt b2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9icmNt LGJjbTYzNTgtcGluY3RybC55YW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9k ZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvYnJjbSxiY202MzYyLXBpbmN0cmwueWFtbAogY3Jl YXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJs L2JyY20sYmNtNjM2OC1waW5jdHJsLnlhbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Bp bmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMxOC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9w aW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjY4LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMyOC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzNTguYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzYyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM2OC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzeHguYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202M3h4LmgKCi0tIAoyLjIwLjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==