From patchwork Thu May 20 17:13:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Kettenis X-Patchwork-Id: 444907 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=-23.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING, 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 862ABC433B4 for ; Thu, 20 May 2021 17:13:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 694866101E for ; Thu, 20 May 2021 17:13:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233273AbhETROu (ORCPT ); Thu, 20 May 2021 13:14:50 -0400 Received: from lb3-smtp-cloud9.xs4all.net ([194.109.24.30]:59705 "EHLO lb3-smtp-cloud9.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235125AbhETROu (ORCPT ); Thu, 20 May 2021 13:14:50 -0400 Received: from copland.sibelius.xs4all.nl ([83.163.83.176]) by smtp-cloud9.xs4all.net with ESMTP id jmEWllugRVN4kjmEglB7cu; Thu, 20 May 2021 19:13:26 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xs4all.nl; s=s2; t=1621530806; bh=dZYL73bE1sVxLAH5jVtwDZkLnk4atcpM5ukFIe57fp4=; h=From:To:Subject:Date:Message-Id:MIME-Version:From:Subject; b=Q/fOYQos9F+ts1pq9p94jWkdhbo1hBFjgR1IKYkTRFjNcy8XkqSi4QIdc9/OthRSa 8xV/pGNs5fepAArHV6iv+2ffC4nyblCL7w/0gTHb94d9x1otvG5VSISmugAs839fK/ wkZ3zVf48gxJ5LqxHUqdlmV2n19POxwMctMnyn7KpZ9mCZoZ6+iNfB2C9AnvFim0fw WYcDEGjCLAA+IDZCOjHl497b+FibSVhdurIUXE4+fhhSIarBoj8Jzq9cZOWYRiTFIE xLa62bpsqbzbrx+g2Tu0I8ttTrRZstRapxsEpAVZLFHkuEbmOuJ46yXgt33zYToWXJ x4pZxMsKs0yoQ== From: Mark Kettenis To: devicetree@vger.kernel.org Cc: Mark Kettenis , Hector Martin , Linus Walleij , Rob Herring , linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 1/2] dt-bindings: pinctrl: Add DT bindings for apple, pinctrl Date: Thu, 20 May 2021 19:13:06 +0200 Message-Id: <20210520171310.772-2-mark.kettenis@xs4all.nl> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210520171310.772-1-mark.kettenis@xs4all.nl> References: <20210520171310.772-1-mark.kettenis@xs4all.nl> MIME-Version: 1.0 X-CMAE-Envelope: MS4xfL3ekawXDDW3d/hI4clRYkTxKfeAaF3GjpPUN9rQVXC+U+KFjja8Wtu6yb8dGDKirHL3L0qgToaSmDaU9bXQXqcTGHd0Y1eN/QXk4JMquZi+ykDxMBm2 PU6g0hUCTKJZ4DlbRsh18o5YOiw05uyAzJFmcDToapfyVCp8kl7Hsrt+BXq5f60ir5Ks4R2huuDZi2xiNTysA9aLwInoMZKuiICafvu/bcY1osfZiQymw6dC vWuAFMIHDMaG3M+PyiyCmjaFuw2HWyT7qJwZ9JtffnBYi7uiTtHHsbrsVKgb1t1Ak8YQmIXz5vuNIKjNY28C3Tt6eP8zLy80MlE/wzajKwORQFmRf4VWnw+b apLed56mf+HOgU9Yaw56bDkprWuKiG4s6i233QWgNX8pM8RT57UujFXT/a+rKrICEoh2TgNZ9wGtONC81hRN+tnoL5InlGEW/0HfXUCtE1hHgekyhHfkYG8k Hf3vRzt8rhHZQZfw Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Mark Kettenis The Apple GPIO controller is a simple combined pin and GPIO conroller present on Apple ARM SoC platforms, including various iPhone and iPad devices and the "Apple Silicon" Macs. Signed-off-by: Mark Kettenis --- .../bindings/pinctrl/apple,pinctrl.yaml | 106 ++++++++++++++++++ MAINTAINERS | 2 + include/dt-bindings/pinctrl/apple.h | 13 +++ 3 files changed, 121 insertions(+) create mode 100644 Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml create mode 100644 include/dt-bindings/pinctrl/apple.h diff --git a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml new file mode 100644 index 000000000000..d50571affd1f --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml @@ -0,0 +1,106 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pinctrl/apple,pinctrl.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple GPIO controller + +maintainers: + - Mark Kettenis + +description: | + The Apple GPIO controller is a simple combined pin and GPIO + controller present on Apple ARM SoC platforms, including various + iPhone and iPad devices and the "Apple Silicon" Macs. + +properties: + compatible: + items: + - const: apple,t8103-pinctrl + - const: apple,pinctrl + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + gpio-controller: true + + '#gpio-cells': + const: 2 + + gpio-ranges: + maxItems: 1 + + interrupts: + description: One interrupt for each of the (up to 7) interrupt + groups supported by the controller sorted by interrupt group + number in ascending order. + minItems: 1 + maxItems: 7 + + interrupt-controller: true + +patternProperties: + '-pins$': + type: object + $ref: pinmux-node.yaml# + + properties: + pinmux: + description: + Values are constructed from pin number and alternate function + configuration number using the APPLE_PINMUX() helper macro + defined in include/dt-bindings/pinctrl/apple.h. + + required: + - pinmux + + additionalProperties: false + +required: + - compatible + - reg + - gpio-controller + - '#gpio-cells' + - gpio-ranges + +additionalProperties: false + +examples: + - | + #include + #include + + soc { + #address-cells = <2>; + #size-cells = <2>; + + pinctrl: pinctrl@23c100000 { + compatible = "apple,t8103-pinctrl", "apple,pinctrl"; + reg = <0x2 0x3c100000 0x0 0x100000>; + clocks = <&gpio_clk>; + + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl 0 0 212>; + + interrupt-controller; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + ; + + pcie_pins: pcie-pins { + pinmux = , + , + ; + }; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index ad0e9be66885..7327c9b778f1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1654,9 +1654,11 @@ C: irc://chat.freenode.net/asahi-dev T: git https://github.com/AsahiLinux/linux.git F: Documentation/devicetree/bindings/arm/apple.yaml F: Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml +F: Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml F: arch/arm64/boot/dts/apple/ F: drivers/irqchip/irq-apple-aic.c F: include/dt-bindings/interrupt-controller/apple-aic.h +F: include/dt-bindings/pinctrl/apple.h ARM/ARTPEC MACHINE SUPPORT M: Jesper Nilsson diff --git a/include/dt-bindings/pinctrl/apple.h b/include/dt-bindings/pinctrl/apple.h new file mode 100644 index 000000000000..ea0a6f466592 --- /dev/null +++ b/include/dt-bindings/pinctrl/apple.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0+ OR MIT */ +/* + * This header provides constants for Apple pinctrl bindings. + */ + +#ifndef _DT_BINDINGS_PINCTRL_APPLE_H +#define _DT_BINDINGS_PINCTRL_APPLE_H + +#define APPLE_PINMUX(pin, func) ((pin) | ((func) << 16)) +#define APPLE_PIN(pinmux) ((pinmux) & 0xffff) +#define APPLE_FUNC(pinmux) ((pinmux) >> 16) + +#endif /* _DT_BINDINGS_PINCTRL_APPLE_H */ From patchwork Thu May 20 17:13:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Kettenis X-Patchwork-Id: 443576 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=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, 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 31407C433ED for ; Thu, 20 May 2021 17:13:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 139EB6101E for ; Thu, 20 May 2021 17:13:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235466AbhETRO5 (ORCPT ); Thu, 20 May 2021 13:14:57 -0400 Received: from lb1-smtp-cloud9.xs4all.net ([194.109.24.22]:42395 "EHLO lb1-smtp-cloud9.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235395AbhETRO4 (ORCPT ); Thu, 20 May 2021 13:14:56 -0400 Received: from copland.sibelius.xs4all.nl ([83.163.83.176]) by smtp-cloud9.xs4all.net with ESMTP id jmEWllugRVN4kjmEnlB7e8; Thu, 20 May 2021 19:13:33 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xs4all.nl; s=s2; t=1621530813; bh=bsnO8l7SUux3m+SAtpyvVWCiju520gKsdmdg7rdmmrE=; h=From:To:Subject:Date:Message-Id:MIME-Version:From:Subject; b=KxS05xaly9ZvujaygNM0NoxTadoOmsnWpdNVPTKvhOKK1lhlb+griG+eNEj5/ou6T A+gewrnZ6T/zZ8dfDGiCgYlICAyZuQxe7UEfCxUUdIap2YChhKumNEbG4SqvYr2gTE zKf+1L32mKKPcXbczVzg2IhUTEJngdLmgQhcV40bb8+E1w9yGfjVgt2iMVPjh8wMIT 0MaS/jLbmMANj0FXeHnexmi2W4jhi9uDWSGYJerslQUvYMacjNK6vpfaa4U06R6tVu 0glhqWsJDnvkR9mXL0vUVhC9Pg9gO2S7ImD1kEPEp/RbmH4HuJCXhmDWIsbNERfiM4 bKW1NC1mSYXUw== From: Mark Kettenis To: devicetree@vger.kernel.org Cc: Mark Kettenis , Hector Martin , Linus Walleij , Rob Herring , linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 2/2] arm64: apple: Add pinctrl nodes Date: Thu, 20 May 2021 19:13:07 +0200 Message-Id: <20210520171310.772-3-mark.kettenis@xs4all.nl> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210520171310.772-1-mark.kettenis@xs4all.nl> References: <20210520171310.772-1-mark.kettenis@xs4all.nl> MIME-Version: 1.0 X-CMAE-Envelope: MS4xfNue/EHJcQ/3kj0ETzEOtiBUroVlXyBrziKGnpC8nRodkb00C8I36JbQZDWTmOsY6b7bJHCrcJFrOnEqNS/6vch8FbCAPC3K5M3pjsDGEv6tuaZla31w /QfYCqbCuQhXoH6TFWtSvxctE+j/KD3SpwQtIYkYW7wJQZiQbNI72SdycMX9cLsMp9ZiT9FB+4JUPbuiphuVyl33W4gJU3hiefPuHcpbofHQRjRJVoRdrutZ O54j/D2SZR0gqJuuTjKRSW7P5eI264/mJD/UVxkEpOHAHCPF2LyKBMK8AGetVKtzQABlRvNjQPWMPnI6W+Z8iSh46Qo92mWLdKAjOJ4CF/mOPFfASeRkMzVf gVv1AcVp3jbZoCwBG74+lM8D1MQSVVRRIeSeWdWEleIS9lKZCaOS4RifU6POdwqpo+xz1bB0SIO46lGX6sDzrlUz6SNPc8YeCCz5hdKA7BGB/ZZnVxgHxI74 TCi/9fi2TYReSpDI Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Mark Kettenis Add pinctrl nodes corresponding to the gpio,t8101 nodes in the Apple device tree for the Mac mini (M1, 2020). Clock references are left out at the moment and will be added once the appropriate bindings have been settled upon. Signed-off-by: Mark Kettenis Reviewed-by: Linus Walleij --- arch/arm64/boot/dts/apple/t8103.dtsi | 83 ++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/apple/t8103.dtsi index a1e22a2ea2e5..503a76fc30e6 100644 --- a/arch/arm64/boot/dts/apple/t8103.dtsi +++ b/arch/arm64/boot/dts/apple/t8103.dtsi @@ -9,6 +9,7 @@ #include #include +#include / { compatible = "apple,t8103", "apple,arm-platform"; @@ -131,5 +132,87 @@ aic: interrupt-controller@23b100000 { interrupt-controller; reg = <0x2 0x3b100000 0x0 0x8000>; }; + + pinctrl_ap: pinctrl@23c100000 { + compatible = "apple,t8103-pinctrl", "apple,pinctrl"; + reg = <0x2 0x3c100000 0x0 0x100000>; + + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl_ap 0 0 212>; + + interrupt-controller; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + ; + + pcie_pins: pcie-pins { + pinmux = , + , + ; + }; + }; + + pinctrl_aop: pinctrl@24a820000 { + compatible = "apple,t8103-pinctrl", "apple,pinctrl"; + reg = <0x2 0x4a820000 0x0 0x4000>; + + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl_aop 0 0 42>; + + interrupt-controller; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + ; + }; + + pinctrl_nub: pinctrl@23d1f0000 { + compatible = "apple,t8103-pinctrl", "apple,pinctrl"; + reg = <0x2 0x3d1f0000 0x0 0x4000>; + + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl_nub 0 0 23>; + + interrupt-controller; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + ; + }; + + pinctrl_smc: pinctrl@23e820000 { + compatible = "apple,t8103-pinctrl", "apple,pinctrl"; + reg = <0x2 0x3e820000 0x0 0x4000>; + + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl_smc 0 0 16>; + + interrupt-controller; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + ; + }; }; };