From patchwork Sun Jan 5 18:14:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 3785 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 5618B3F1CD for ; Sun, 5 Jan 2025 19:15:36 +0100 (CET) Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-5d3bf75bbf1sf13089015a12.1 for ; Sun, 05 Jan 2025 10:15:36 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1736100936; cv=pass; d=google.com; s=arc-20240605; b=hM+sW+ZQsnObVNKl4eQymgw5vOCa1LlsUYXaqyH732EXUKxY6kq5i5LWaMM1A7XOhP /FIzgmo5vDGKON6M+qKhkDAgvsojFAJ1ebISGg0yng93yyW/OpgH67Ahib5qITiJNZMs eeq4eEzvlONeRt/AEjLfZI1X2yubINqmwNDq3izT1XtZB7Si+XhyuAZ/G52mXcOHbJN5 wgQdv8bRgMRMf7Ll/ZrdGy3Y0FOVtzBlHW9HtBQ3VmUVjbohE7t1Q5/M6oxAbUSkn3Lq PzBu2GTn1ZpRcLsMxPO0E4vHxZXj9/rViFfAEi0hqo1ZuM8VvqiF07g+pHbAUYcuNGH2 ndQA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=fHEGT13E/zbE08RWrJqf69ZiZT4Dc/rrfidO21m+px8=; fh=YX346Fyvawm6+e7JOgx6mNlWEI/waGCwrfE2nH4Ld+4=; b=QYiMvozzt+u+uVkCIf7GztO/7rdnwV1lhYC2nPmM0IueU9wwvCcJgitIWddwVoPeSq Y29BLg9h0liChEAn6ZR/O+nLhSBsBl7U0NCR0winLIXxlkeTeZavLvNQ9lj3gTduzaDz dQXx77rg7DRlJp8RaRwvaN1BsOnBA4GpcJC9II9oPmZ5ULWuR8OKXuQUzyJNkVdh1lEy lmSA0SarwtkeCi+SHhD5kVAc42OFx5L1+1+ZhFZo5r27Ek0ByXDPCtkKZIoDIfiEJvJU rjphIgXTTSODR2v2xmWBM8KJ17ZAPA3jXiiLh9asJmoniw8ittoPd02zOubMHDAGutO7 uZog==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=oFaco3JK; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1736100936; x=1736705736; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=fHEGT13E/zbE08RWrJqf69ZiZT4Dc/rrfidO21m+px8=; b=BSRYflWL+nbqwr1pT9tZuPCkAQrjnAfjVwGl7D+ssRD3TC5q4Q0kZSVnuhGXV8YMbw /qDHJttmZlHukhxkHAFkvJ4bZcLPsOebSNPubkVHnnEO7OffI9SnJhiN2CEi1Wpfb9Up 3o76OzKimxIVkrzCrpbqezhuqi6HSOHvc+Z38= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736100936; x=1736705736; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fHEGT13E/zbE08RWrJqf69ZiZT4Dc/rrfidO21m+px8=; b=ho53v9Fdn75dz7lLWtMwFP6pi2l00JG2OGF7UoZW2u61sYjt62lXw/0E8fjZeOjBVN 3oWfBfAk0oNbLMTi6D4plCqbNxAYBY4IfPClfvS2kgiaxaFwy35q4AMbFjVzYgVMjTES UtqBFLPiHFgSnoPHkLjsFtmW0fwCw4/hRY066SM3htzVDyo4nIeoZrgXPwd15uKkf3gT pXUqAzupTPvDebkxfdylNRAgV0GQ2pjF64X0HLGiERpyHGPEU+9DjuNqi5twF+7ryAJc cFaUtqX0IRfMUd9HojUydjdn6tg6Za9ZT/8f2m26sAUp0a5bGVz/FOLpcTv7dsTIfjDD 6AVQ== X-Forwarded-Encrypted: i=2; AJvYcCWNXXstNhy4at4MU6SOjXdCB+VxFHAQxU0M/Sd/xrRGNdIUgZudW9Cywg0Kj4kZ4wFzhOo1OELvItyLTuPb@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YwJFIZIlA6D9clKod7eGfq4KfmfPN0x3WYsKInpe4Ci7uBhvj7Z 7HsZWvUwu6i4sS63P3o4qJT5oFgbn8QtppZUtO/f6vEoUCZr6eGvzN4dTlErnl0Byw== X-Google-Smtp-Source: AGHT+IEQ7G9ZBDXi2g7coF0teCg4GehdJY579phEobV0N5KWkzf2r54nNDpKJUDttjHCwq4fST5Jkw== X-Received: by 2002:a50:c88a:0:b0:5d8:8292:5674 with SMTP id 4fb4d7f45d1cf-5d8829256d9mr28900831a12.7.1736100935696; Sun, 05 Jan 2025 10:15:35 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a50:8a87:0:b0:5d0:acf2:b111 with SMTP id 4fb4d7f45d1cf-5d8f649acc4ls1121350a12.1.-pod-prod-00-eu; Sun, 05 Jan 2025 10:15:34 -0800 (PST) X-Received: by 2002:a17:907:3f27:b0:aae:f6bd:7f5 with SMTP id a640c23a62f3a-aaef6bd2071mr3743466866b.16.1736100933774; Sun, 05 Jan 2025 10:15:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1736100933; cv=none; d=google.com; s=arc-20240605; b=RMcI1k6gNh2eQ0dL2NcBLN8H4/FH1afTsNEqBBUuRR1T/FjpmR8f/AabpE7nh+c3yO /kK5fLIFrMDbCC5R+22GOLrD+QB6MW2VYx6Q5IS/WVQEh9GS6iZesG+lSqNtoCCwavFp 7V7gbvgbULnUFWtZpJKxxHZVcwHXvsxt5FytRrQizYMlGMOr6wffOjIRIHlM9QlrEBtZ ePzSANMegxOaEZKijQJxglSEpzRyc+85dh7oSFYp0LynbxDnIOzBSnljHelZ5XKuGecZ roBj5KKH0GNH4PZCNOr+Zrx7BTTzrmr/9w4B80iD7QWCIlBI5C8sBokcZvIR7IsRsVVz /8bA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=+zwadKSgcT3YHRBr470NAxtLB4LzWS9m4NLNCF1dK9k=; fh=eH+0Y7Diz6V5mR4yjTADWqq/BPeQ1lWG3GpSj4kCN9U=; b=Sl429BdDIUIRF0wkKG+BlOebBIv5FYddhVkZWq4MxsY9HVPJFsD33XRFUU8UwfdXxx ZcEUspzh7bzYe2ry2YZ4nY1UUgN0R07UiNhTIs7iPIef5/KqhkV/IUyLBvhnjsvupJ1p d7+Lg++9Y85yZ+rFJIXDsH09H4uaz8TQxXife/Mt9gSq74riOhWJA68zGsEmzuXBxD6j Z9CMkJ0bIeHosmGLkYy3AMvsODCAmniJ1LV5Fon/hNGRUshSHspTdR/bBXvoq/t6cYDW dMtNzW5sGbX62EzwDrNgdpbAIwK7euHBE3ImQE2dqYZVYBpo97FoVG+KsUjUWKCM5IoJ ZWoQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=oFaco3JK; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id a640c23a62f3a-aabf749452esor1562971966b.6.2025.01.05.10.15.33 for (Google Transport Security); Sun, 05 Jan 2025 10:15:33 -0800 (PST) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: ASbGncs3fQOVesq1OZ6NP9iq8Ykd1rHnJkyXsMMl59eD2X9S4Qi2DZB0EC38/R7zlfU LP3YduVv4tiGKhba2RLmTJpB4nnuhEVDGvAbbL5C+q5sXysWVlxMQVLUF8BxS5CR9uAoo5ln3vA L6isP0gA5MFrfGa40VxNb5m+t+m+UiU12yAGXAKghCJQFA8mQUaNfxkuu7iFhzS2J8vrQYLaYsg jVXIg9pO2AyfPEDKHNP3PctycuT2cEk9QMkO0ely5CccIOJywJ394j+o67Ku46+G4GgVvaAPM6w TJB5JlFftZtZBj/CJUAx1z7KUDCau2wDEn/0aSc7E3d0fVcqY0+CukJ7SndCa00tr2BN6yzl9hf 2IPIMD/4g3t/mV0Do8w== X-Received: by 2002:a17:907:86aa:b0:aae:f029:c2ec with SMTP id a640c23a62f3a-aaef029c69fmr3596149966b.12.1736100933172; Sun, 05 Jan 2025 10:15:33 -0800 (PST) Received: from dario-ThinkPad-T14s-Gen-2i.homenet.telecomitalia.it (host-79-41-6-15.retail.telecomitalia.it. [79.41.6.15]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aac0e82f178sm2138185066b.38.2025.01.05.10.15.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Jan 2025 10:15:32 -0800 (PST) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Alexandre Torgue , Conor Dooley , Krzysztof Kozlowski , Maxime Coquelin , Michael Turquette , Rob Herring , Stephen Boyd , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com Subject: [PATCH 1/6] dt-bindings: clock: convert stm32 rcc bindings to json-schema Date: Sun, 5 Jan 2025 19:14:13 +0100 Message-ID: <20250105181525.1370822-2-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250105181525.1370822-1-dario.binacchi@amarulasolutions.com> References: <20250105181525.1370822-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=oFaco3JK; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The patch not only performs the conversion according to the JSON-schema but also adds the missing parts: - st,syscfg phandle - st,stm32h743-rcc compatible that were not documented but are still used by the drivers and must therefore be included to ensure the patch submission tests do not fail. Signed-off-by: Dario Binacchi --- .../bindings/clock/st,stm32-rcc.txt | 138 ----------------- .../bindings/clock/st,stm32-rcc.yaml | 143 ++++++++++++++++++ 2 files changed, 143 insertions(+), 138 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/st,stm32-rcc.txt create mode 100644 Documentation/devicetree/bindings/clock/st,stm32-rcc.yaml diff --git a/Documentation/devicetree/bindings/clock/st,stm32-rcc.txt b/Documentation/devicetree/bindings/clock/st,stm32-rcc.txt deleted file mode 100644 index cfa04b614d8a..000000000000 --- a/Documentation/devicetree/bindings/clock/st,stm32-rcc.txt +++ /dev/null @@ -1,138 +0,0 @@ -STMicroelectronics STM32 Reset and Clock Controller -=================================================== - -The RCC IP is both a reset and a clock controller. - -Please refer to clock-bindings.txt for common clock controller binding usage. -Please also refer to reset.txt for common reset controller binding usage. - -Required properties: -- compatible: Should be: - "st,stm32f42xx-rcc" - "st,stm32f469-rcc" - "st,stm32f746-rcc" - "st,stm32f769-rcc" - -- reg: should be register base and length as documented in the - datasheet -- #reset-cells: 1, see below -- #clock-cells: 2, device nodes should specify the clock in their "clocks" - property, containing a phandle to the clock device node, an index selecting - between gated clocks and other clocks and an index specifying the clock to - use. -- clocks: External oscillator clock phandle - - high speed external clock signal (HSE) - - external I2S clock (I2S_CKIN) - -Example: - - rcc: rcc@40023800 { - #reset-cells = <1>; - #clock-cells = <2> - compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; - reg = <0x40023800 0x400>; - clocks = <&clk_hse>, <&clk_i2s_ckin>; - }; - -Specifying gated clocks -======================= - -The primary index must be set to 0. - -The secondary index is the bit number within the RCC register bank, starting -from the first RCC clock enable register (RCC_AHB1ENR, address offset 0x30). - -It is calculated as: index = register_offset / 4 * 32 + bit_offset. -Where bit_offset is the bit offset within the register (LSB is 0, MSB is 31). - -To simplify the usage and to share bit definition with the reset and clock -drivers of the RCC IP, macros are available to generate the index in -human-readble format. - -For STM32F4 series, the macro are available here: - - include/dt-bindings/mfd/stm32f4-rcc.h - -Example: - - /* Gated clock, AHB1 bit 0 (GPIOA) */ - ... { - clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)> - }; - - /* Gated clock, AHB2 bit 4 (CRYP) */ - ... { - clocks = <&rcc 0 STM32F4_AHB2_CLOCK(CRYP)> - }; - -Specifying other clocks -======================= - -The primary index must be set to 1. - -The secondary index is bound with the following magic numbers: - - 0 SYSTICK - 1 FCLK - 2 CLK_LSI (low-power clock source) - 3 CLK_LSE (generated from a 32.768 kHz low-speed external - crystal or ceramic resonator) - 4 CLK_HSE_RTC (HSE division factor for RTC clock) - 5 CLK_RTC (real-time clock) - 6 PLL_VCO_I2S (vco frequency of I2S pll) - 7 PLL_VCO_SAI (vco frequency of SAI pll) - 8 CLK_LCD (LCD-TFT) - 9 CLK_I2S (I2S clocks) - 10 CLK_SAI1 (audio clocks) - 11 CLK_SAI2 - 12 CLK_I2SQ_PDIV (post divisor of pll i2s q divisor) - 13 CLK_SAIQ_PDIV (post divisor of pll sai q divisor) - - 14 CLK_HSI (Internal ocscillator clock) - 15 CLK_SYSCLK (System Clock) - 16 CLK_HDMI_CEC (HDMI-CEC clock) - 17 CLK_SPDIF (SPDIF-Rx clock) - 18 CLK_USART1 (U(s)arts clocks) - 19 CLK_USART2 - 20 CLK_USART3 - 21 CLK_UART4 - 22 CLK_UART5 - 23 CLK_USART6 - 24 CLK_UART7 - 25 CLK_UART8 - 26 CLK_I2C1 (I2S clocks) - 27 CLK_I2C2 - 28 CLK_I2C3 - 29 CLK_I2C4 - 30 CLK_LPTIMER (LPTimer1 clock) - 31 CLK_PLL_SRC - 32 CLK_DFSDM1 - 33 CLK_ADFSDM1 - 34 CLK_F769_DSI -) - -Example: - - /* Misc clock, FCLK */ - ... { - clocks = <&rcc 1 STM32F4_APB1_CLOCK(TIM2)> - }; - - -Specifying softreset control of devices -======================================= - -Device nodes should specify the reset channel required in their "resets" -property, containing a phandle to the reset device node and an index specifying -which channel to use. -The index is the bit number within the RCC registers bank, starting from RCC -base address. -It is calculated as: index = register_offset / 4 * 32 + bit_offset. -Where bit_offset is the bit offset within the register. -For example, for CRC reset: - crc = AHB1RSTR_offset / 4 * 32 + CRCRST_bit_offset = 0x10 / 4 * 32 + 12 = 140 - -example: - - timer2 { - resets = <&rcc STM32F4_APB1_RESET(TIM2)>; - }; diff --git a/Documentation/devicetree/bindings/clock/st,stm32-rcc.yaml b/Documentation/devicetree/bindings/clock/st,stm32-rcc.yaml new file mode 100644 index 000000000000..ae9e5b26d876 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/st,stm32-rcc.yaml @@ -0,0 +1,143 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/st,stm32-rcc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: STMicroelectronics STM32 Reset Clock Controller + +maintainers: + - Dario Binacchi + +description: | + The RCC IP is both a reset and a clock controller. + + This binding uses common clock and reset bindings + Documentation/devicetree/bindings/clock/clock-bindings.txt + Documentation/devicetree/bindings/reset/reset.txt + + Specifying softreset control of devices + ======================================= + + Device nodes should specify the reset channel required in their "resets" + property, containing a phandle to the reset device node and an index specifying + which channel to use. + The index is the bit number within the RCC registers bank, starting from RCC + base address. + It is calculated as: index = register_offset / 4 * 32 + bit_offset. + Where bit_offset is the bit offset within the register. + + For example, for CRC reset: + crc = AHB1RSTR_offset / 4 * 32 + CRCRST_bit_offset = 0x10 / 4 * 32 + 12 = 140 + + The list of valid indices is available in: + - include/dt-bindings/mfd/stm32f4-rcc.h for STM32F4 series + - include/dt-bindings/mfd/stm32f7-rcc.h for STM32F7 series + - include/dt-bindings/mfd/stm32h7-rcc.h for STM32H7 series + +properties: + compatible: + oneOf: + - items: + - const: st,stm32f42xx-rcc + - const: st,stm32-rcc + - items: + - enum: + - st,stm32f469-rcc + - const: st,stm32f42xx-rcc + - const: st,stm32-rcc + - items: + - const: st,stm32f746-rcc + - const: st,stm32-rcc + - items: + - enum: + - st,stm32f769-rcc + - const: st,stm32f746-rcc + - const: st,stm32-rcc + - items: + - const: st,stm32h743-rcc + - const: st,stm32-rcc + + reg: + maxItems: 1 + + '#reset-cells': + const: 1 + + '#clock-cells': + enum: [1, 2] + + clocks: + minItems: 2 + maxItems: 3 + + st,syscfg: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle to system configuration controller. It can be used to control the + power domain circuitry. + +required: + - compatible + - reg + - '#reset-cells' + - '#clock-cells' + - clocks + - st,syscfg + +allOf: + - if: + properties: + compatible: + contains: + const: st,stm32h743-rcc + then: + properties: + '#clock-cells': + const: 1 + description: | + The clock index for the specified type. + else: + properties: + '#clock-cells': + const: 2 + description: | + - The first cell is the clock type, possible values are 0 for + gated clocks and 1 otherwise. + - The second cell is the clock index for the specified type. + +additionalProperties: false + +examples: + # Reset and Clock Control Module node: + - | + rcc@40023800 { + #reset-cells = <1>; + #clock-cells = <2>; + compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; + reg = <0x40023800 0x400>; + clocks = <&clk_hse>, <&clk_i2s_ckin>; + st,syscfg = <&pwrcfg>; + }; + + - | + rcc@40023800 { + #reset-cells = <1>; + #clock-cells = <2>; + compatible = "st,stm32f746-rcc", "st,stm32-rcc"; + reg = <0x40023800 0x400>; + clocks = <&clk_hse>, <&clk_i2s_ckin>; + st,syscfg = <&pwrcfg>; + }; + + - | + rcc@58024400 { + compatible = "st,stm32h743-rcc", "st,stm32-rcc"; + reg = <0x58024400 0x400>; + #clock-cells = <1>; + #reset-cells = <1>; + clocks = <&clk_hse>, <&clk_lse>, <&clk_i2s>; + st,syscfg = <&pwrcfg>; + }; + +...