From patchwork Thu Dec 5 11:17:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 3690 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 62C433FA09 for ; Thu, 5 Dec 2024 12:19:45 +0100 (CET) Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-5d121a79ad0sf691096a12.2 for ; Thu, 05 Dec 2024 03:19:45 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1733397585; cv=pass; d=google.com; s=arc-20240605; b=RaePse5PYtke+BitnlKGMsfTqzG5mXMWq5pz7UGJ9F1g2HrdKjVgsWtKGv3/HIIIab +ATL8KfcH9OWrbXkUWBA1mlIaCr3XCGrk/MuHfdVtZlP0zKxABO7zirdFZlDseB1Df+Z PmvYCvuYatwWnl8RDPJLtZZCyvFKQq9QK1ZKQD+8g/AkQMm4AQ4jYldiTle9uIvRmK7w OWOEXTOAOLf7brBmQF6USXY3p/iYEpeconu8n+BNRYNYmPmCqJx/QtyRJe0kEJ+rnq71 DccZJU97ZUXs41/RnTcnqjiOT26ZpiLeLvYyRcIa2Yc+n9pm5CZJaSp84YbhbFaeajhw e9JQ== 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:message-id:date:subject:cc:to :from:dkim-signature; bh=OLOHNfT3GEAFQiqeU+3dJdF3fl4BwaOvPfAm+outyBI=; fh=OqnA0IAiG+wSzk65CVgSeJvSjJbP8i2Ze93XDDBe6Ww=; b=bAWO8DaMf/mysmJI50/cxft+j1lanrZJrgOFvMGDjvLlZrZZYaL6gLC4Hp4M2mMNCp 9k8PbqS3tUv00Zzn9tjT5Le3jsCOVck6cBHx+Bdy02OPQxL/7OkE5chF5F47TI9eiV+x zaLrbzZGTaiO0kNNLPsRzI+GoVP8zf9zr3f1D/WCDNcjCRGm5ULU+JU4oi2XQmAXt1Vb /sL1zBngDZ4+ZadHk1XRoqD+Sk90DEY+soElPOUcL/hp4/iKHi2ORdYFkwgEKTndrMe7 uvZSdwxpNAOyi5ZDFDkJF+rC0ziS+l161Z5b9JQx3jq524a3U5a4Wd+osPgKMs3jEeUu NWHA==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=hJQwq7a9; 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=1733397585; x=1734002385; 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:message-id:date:subject:cc:to:from :from:to:cc:subject:date:message-id:reply-to; bh=OLOHNfT3GEAFQiqeU+3dJdF3fl4BwaOvPfAm+outyBI=; b=aVXGsCXy8WCVKZ0iMh2r0Flt0+wwGG41FlaDqcCtIplbwa9iwrSoSdEr23f455/R+D gKEoa5SEn/dOpzK3gN/fdWP9ywtsjbijO+r4DOWT2z2S9GSa/UQQcKrxGpGGxZUEeiDw SeyhzN2fKdvgu/PRsYDr0U2hxq3n3aywzAUQc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733397585; x=1734002385; 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 :message-id:date:subject:cc:to:from:x-beenthere:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=OLOHNfT3GEAFQiqeU+3dJdF3fl4BwaOvPfAm+outyBI=; b=PNJpb9Cz8u5plRArFXhfK9pKyJgZCXo6FwotnE6+Gh6pLcVYHnPQ+Uip9/Edff1P6j IHbMUlJxZWqX6hOomSospaGHq8BAwl087GIhX0WPSd2eu5MuzmLYuTTID3q070i3rxMQ Z4HNwnjXU35xoZoJ4vB8kMXBvIjx3JV1kaC15QbvkEb87aBWZEpLxUsj9dYwo1q3e6dN oe7iZnwxN4BeX5PrWXFMo7zDNTxBGDdmDYXjkOc2pRWHCY6EGELZ8YOwG6LXYrycn8X0 KNwjlHC7ngM3XlkE44Z4s7qrGf3lb61auxayIvo5P4/iWTSbYrB8LGBLkN5/pkUlE3Yh U7iQ== X-Forwarded-Encrypted: i=2; AJvYcCXbOzaRJy45mEa150f77QaBg2ySt9RK7qQTzPX5C6RAgqPqdIYZ6zp3zZUEvYWeNaxVid0rTIkiPDQYSiIf@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YyA8sisEgSrM2avOpbM+jZWmuIsJCgT12StCoPKkh/M9s7TxbHt OSlwRTBuMxO3yXjMzhxk6jwdjOAamTY2d9L0/cLrrYhh7u28wwv6fC8aThF7b2WnSA== X-Google-Smtp-Source: AGHT+IEtxKISyfcAi0+edN5Yi1qP+zqE7geO7zBjpyu65SWcyMWmrh75Zp1AQHJftUyF7lXEBmjsDA== X-Received: by 2002:a05:6402:5171:b0:5d1:2677:b047 with SMTP id 4fb4d7f45d1cf-5d12677b095mr2064242a12.28.1733397584611; Thu, 05 Dec 2024 03:19:44 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:aa7:cb59:0:b0:5d0:9b07:cfd1 with SMTP id 4fb4d7f45d1cf-5d125006ad0ls634754a12.0.-pod-prod-01-eu; Thu, 05 Dec 2024 03:19:43 -0800 (PST) X-Received: by 2002:a17:906:30d4:b0:aa6:2cc6:69b5 with SMTP id a640c23a62f3a-aa62cc66b02mr101480666b.41.1733397582683; Thu, 05 Dec 2024 03:19:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1733397582; cv=none; d=google.com; s=arc-20240605; b=S4mZmA8ZhDkmZc2XdPr1ADrRha6R+s7TVY7yagaCGC0wzJUd1GeL5aFV4zklxfP07t ZXKiUMvn+ca0BF5GgIh8oEIaUWKis2skyV64f6pSVSzjdYeZdRV0/kvjeui/tGVsZ289 Mu7O8+reMzi4gr3brDzHdkmUWVmaioeOJsyGRbac6//lpnICWKVm9iRGmRy2rhwVPwIr FTwzTTnirWHbGeMgilqyYU6GRDg3+/OR2I+Fq1yb2avdzA5g4u9VKlcAW0fMaPWc6bUY nK3J2XFPaRViIkT6AuxUwFt66T1k5BDjC01c3OX8J3mHJd6hID164l2x+/8acY1H5R+l k/bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=gam048ootOPzo1BYL348MdN7mDqE4kD/okgjHVqyGrc=; fh=2TL5gdVAJyX/yhk5/AxHrADrCeVz/BiuKBD/sWsuHYo=; b=OMURneKTNKWrGw84BEvrNfnh6g6NrIXCnPzEIw54zZ6Yh7kdbkS2k+/QhbxOZlaoRU EJOazDA8HHFRNDDy+Gd/WA+5h+CmqsDDdjU2GiV4i/W/aSheaNvUh8d1mk96zEjGrdwH BcU6aI64UFU04LlCAG0yQ8h92710gHsSI1TTxxZBi31ZoSWo1/z6gKArIKKTGQZ9aMqI muAzbGccHYxWenWC2l3o0MlDxAF+dUGjAO/ylOH+rS753qNXfxwRFTOKoPNJLhdOdPDh thyPYBnwfKDcsFyXJbFKWr0qKcwUygVBGOvlNbNpdHw1d26+mDT27AkMOBca3eDRrsUo RG3A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=hJQwq7a9; 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-aa625cc742dsor21014566b.0.2024.12.05.03.19.42 for (Google Transport Security); Thu, 05 Dec 2024 03:19:42 -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: ASbGnctHOBCWPfH1fEbfkbLxSkXNOSr9xO8CegKUtlXuadTh8L1/lWIuywNI1EvKeQa 70iovkOTNErClj13KiqBbcIYQ4UnEYngB51calftotGP2D/jaXK7uJR4v11m04DF1iImohglOGg scVjIi+m3MY+Ys7s2OWWwYSYyf3dHpShm4BZ8Gar2sLJsppL/rVeEBq6zwhI437JrlKeJhyb91T qmSWxGhDGYznCKfojR0vskrRr1uz0QFGBcyijfbuWiEr4z788gFmp/1b0ewWQ36mC4T5N5el+m0 cWXDga6ZsU4BfKR7ev4BQzs2IDoD0JfxaSNJmyvh0lPWWA== X-Received: by 2002:a17:907:948b:b0:aa5:427d:b101 with SMTP id a640c23a62f3a-aa601824277mr1086282766b.36.1733397582274; Thu, 05 Dec 2024 03:19:42 -0800 (PST) Received: from dario-ThinkPad-T14s-Gen-2i.amarulasolutions.com ([2001:b07:6474:ebbf:61a1:9bc8:52c6:3c2d]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aa625eedcd0sm77505266b.87.2024.12.05.03.19.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Dec 2024 03:19:41 -0800 (PST) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Abel Vesa , Conor Dooley , Fabio Estevam , Krzysztof Kozlowski , Michael Turquette , Peng Fan , Pengutronix Kernel Team , Rob Herring , Sascha Hauer , Shawn Guo , Stephen Boyd , devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org Subject: [PATCH v5 00/20] Support spread spectrum clocking for i.MX8N PLLs Date: Thu, 5 Dec 2024 12:17:35 +0100 Message-ID: <20241205111939.1796244-1-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 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=hJQwq7a9; 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 series adds support for spread spectrum clocking for i.MX8MN PLLs (audio, video and DRAM). It has been tested for the video PLL on a board using i.MX8MN. The patches added in version 4, such as the dt-bindings and the driver for anatop, were inspired by the extensive email exchange from version 3: https://lore.kernel.org/imx/20241106090549.3684963-1-dario.binacchi@amarulasolutions.com/ Version 5 adds only a few fixes to some patches, merely addressing compilation errors and warnings raised by checkpatch, but otherwise does not alter the structure of version 4. The series added spectrum spread support for the imx8mn platform only, but in case it was merged, confirming that the directives and suggestions made by the maintainers were correctly understood and implemented, I will extend this support to the imx8mm and imx8mp platforms as well. Changes in v5: - Fix compilation errors. - Separate driver code from dt-bindings Changes in v4: - Add dt-bindings for anatop - Add anatop driver - Drop fsl,ssc-clocks from spread spectrum dt-bindings Changes in v3: - Patches 1/8 has been added in version 3. The dt-bindings have been moved from fsl,imx8m-anatop.yaml to imx8m-clock.yaml. The anatop device (fsl,imx8m-anatop.yaml) is indeed more or less a syscon, so it represents a memory area accessible by ccm (imx8m-clock.yaml) to setup the PLLs. - Patches {3,5}/8 have been added in version 3. - Patches {4,6,8}/8 use ccm device node instead of the anatop one. Changes in v2: - Add "allOf:" and place it after "required:" block, like in the example schema. - Move the properties definition to the top-level. - Drop unit types as requested by the "make dt_binding_check" command. Dario Binacchi (20): dt-bindings: clock: imx8mm: add VIDEO_PLL clocks clk: imx8mm: rename video_pll1 to video_pll dt-bindings: clock: imx8mp: add VIDEO_PLL clocks clk: imx8mp: rename video_pll1 to video_pll dt-bindings: clock: imx8m-anatop: define clocks/clock-names arm64: dts: imx8mm: add anatop clocks arm64: dts: imx8mn: add anatop clocks arm64: dts: imx8mp: add anatop clocks arm64: dts: imx8mq: add anatop clocks dt-bindings: clock: imx8mm: add binding definitions for anatop dt-bindings: clock: imx8mn: add binding definitions for anatop dt-bindings: clock: imx8mp: add binding definitions for anatop clk: imx: add hw API imx8m_anatop_get_clk_hw clk: imx: add support for i.MX8MN anatop clock driver dt-bindings: clock: imx8m-clock: support spread spectrum clocking arm64: dts: imx8mm: add PLLs to clock controller module (ccm) arm64: dts: imx8mn: add PLLs to clock controller module (ccm) arm64: dts: imx8mp: add PLLs to clock controller module (ccm) clk: imx: pll14xx: support spread spectrum clock generation clk: imx8mn: support spread spectrum clock generation .../bindings/clock/fsl,imx8m-anatop.yaml | 53 +++- .../bindings/clock/imx8m-clock.yaml | 77 ++++- arch/arm64/boot/dts/freescale/imx8mm.dtsi | 11 +- arch/arm64/boot/dts/freescale/imx8mn.dtsi | 11 +- arch/arm64/boot/dts/freescale/imx8mp.dtsi | 11 +- arch/arm64/boot/dts/freescale/imx8mq.dtsi | 2 + drivers/clk/imx/Makefile | 2 +- drivers/clk/imx/clk-imx8mm.c | 102 +++---- drivers/clk/imx/clk-imx8mn-anatop.c | 281 ++++++++++++++++++ drivers/clk/imx/clk-imx8mn.c | 188 ++++++------ drivers/clk/imx/clk-imx8mp.c | 118 ++++---- drivers/clk/imx/clk-pll14xx.c | 126 ++++++++ drivers/clk/imx/clk.c | 28 ++ drivers/clk/imx/clk.h | 23 ++ include/dt-bindings/clock/imx8mm-clock.h | 78 ++++- include/dt-bindings/clock/imx8mn-clock.h | 67 +++++ include/dt-bindings/clock/imx8mp-clock.h | 82 ++++- 17 files changed, 1026 insertions(+), 234 deletions(-) create mode 100644 drivers/clk/imx/clk-imx8mn-anatop.c