From patchwork Sat Mar 23 16:43:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marek_Beh=C3=BAn?= X-Patchwork-Id: 13600700 X-Patchwork-Delegate: arnd@arndb.de Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7682AC54E58 for ; Sat, 23 Mar 2024 16:44:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) id 5B9A4C433C7; Sat, 23 Mar 2024 16:44:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0549CC433B1; Sat, 23 Mar 2024 16:44:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711212248; bh=W76kJSCvy7y4KTL7rzLN2h2F2967tAyVM/LSlB/3CGk=; h=From:List-Id:To:Cc:Subject:Date:In-Reply-To:References:From; b=G5xH391WZeBvBB17A5ubfbNSYlEQ/FTdYVECW/XDEZAlSsxoG8TFfIMduCz73AE/D eiWG/+fCUAB2C8MIFrCibPb0iO5EGvma8m2U7xvn/SGHjQU/RgNcFYWDgyGtW24Dl4 jyHVFZs5AZvkg1lA4NXbXbJXlUgoel2SOJrqPar7NiqX9bRxDNsSVy+drP1HHZMFHH 9zBZUEEVudEN9/mSfduG72KH2AjX0qOy2tyT47Ri1yHnu3ILVttON3eR0OdTGS5og1 cU0W8shYhCsEUqZlsPf22EVZmM+ZvFk9gYPuy0luZXc7bYFla6Sb1WlZ3XQEIr+Sec iOC0My66ryTyQ== From: =?utf-8?q?Marek_Beh=C3=BAn?= List-Id: To: Arnd Bergmann , Gregory CLEMENT , soc@kernel.org, arm@kernel.org Cc: =?utf-8?q?Marek_Beh=C3=BAn?= , Krzysztof Kozlowski Subject: [PATCH v5 01/11] dt-bindings: arm: add cznic,turris-omnia-mcu binding Date: Sat, 23 Mar 2024 17:43:49 +0100 Message-ID: <20240323164359.21642-2-kabel@kernel.org> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240323164359.21642-1-kabel@kernel.org> References: <20240323164359.21642-1-kabel@kernel.org> MIME-Version: 1.0 Add binding for cznic,turris-omnia-mcu, the device-tree node representing the system-controller features provided by the MCU on the Turris Omnia router. Signed-off-by: Marek BehĂșn Reviewed-by: Krzysztof Kozlowski --- Changes from v4: - #gpio-cells changed from 2 (pin number, flags) to 3 (bank, pin number, flags). This is because two years ago we added device-tree fixing code into U-Boot [1] which adds reset-gpios to PCIe controller nodes if these GPIOs are controllable via MCU, and the code adds the gpio specifiers to have 3 cells. Implementing this driver with twocell specifier breaks PCIe functionality for users which have upgraded U-Boot - added documentation for #interrupt-cells and #gpio-cells [1] https://source.denx.de/u-boot/u-boot/-/commit/1da53ae26afc --- .../bindings/arm/cznic,turris-omnia-mcu.yaml | 86 +++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 87 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/cznic,turris-omnia-mcu.yaml diff --git a/Documentation/devicetree/bindings/arm/cznic,turris-omnia-mcu.yaml b/Documentation/devicetree/bindings/arm/cznic,turris-omnia-mcu.yaml new file mode 100644 index 000000000000..dd9ee21ee24d --- /dev/null +++ b/Documentation/devicetree/bindings/arm/cznic,turris-omnia-mcu.yaml @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/cznic,turris-omnia-mcu.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: CZ.NIC's Turris Omnia MCU + +maintainers: + - Marek BehĂșn + +description: + The MCU on Turris Omnia acts as a system controller providing additional + GPIOs, interrupts, watchdog, system power off and wakeup configuration. + +properties: + compatible: + const: cznic,turris-omnia-mcu + + reg: + description: MCU I2C slave address + maxItems: 1 + + interrupts: + maxItems: 1 + + interrupt-controller: true + + '#interrupt-cells': + const: 2 + description: | + The first cell specifies the interrupt number (0 to 63), the second cell + specifies interrupt type (which can be one of IRQ_TYPE_EDGE_RISING, + IRQ_TYPE_EDGE_FALLING or IRQ_TYPE_EDGE_BOTH). + The interrupt numbers correspond sequentially to GPIO numbers, taking the + GPIO banks into account: + IRQ number GPIO bank GPIO pin within bank + 0 - 15 0 0 - 15 + 16 - 47 1 0 - 31 + 48 - 63 2 0 - 15 + There are several exceptions: + IRQ number meaning + 11 LED panel brightness changed by button press + 13 TRNG entropy ready + 14 ECDSA message signature computation done + + gpio-controller: true + + '#gpio-cells': + const: 3 + description: + The first cell is bank number (0, 1 or 2), the second cell is pin number + within the bank (0 to 15 for banks 0 and 2, 0 to 31 for bank 1), and the + third cell specifies consumer flags. + +required: + - compatible + - reg + - interrupts + - interrupt-controller + - gpio-controller + +additionalProperties: false + +examples: + - | + #include + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + system-controller@2a { + compatible = "cznic,turris-omnia-mcu"; + reg = <0x2a>; + + interrupt-parent = <&gpio1>; + interrupts = <11 IRQ_TYPE_NONE>; + + gpio-controller; + #gpio-cells = <3>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index aa3b947fb080..89edfc2b875b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2141,6 +2141,7 @@ W: https://www.turris.cz/ F: Documentation/ABI/testing/debugfs-moxtet F: Documentation/ABI/testing/sysfs-bus-moxtet-devices F: Documentation/ABI/testing/sysfs-firmware-turris-mox-rwtm +F: Documentation/devicetree/bindings/arm/cznic,turris-omnia-mcu.yaml F: Documentation/devicetree/bindings/bus/moxtet.txt F: Documentation/devicetree/bindings/firmware/cznic,turris-mox-rwtm.txt F: Documentation/devicetree/bindings/gpio/gpio-moxtet.txt