From patchwork Fri Apr 11 15:44:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 880883 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E12B020FA9C for ; Fri, 11 Apr 2025 15:44:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744386268; cv=none; b=cbv1wbwse2SqOGTEqeESu77vYQJrEaoiLCUUKky98jakz4+SS7k1jcJHhP72bWIo2F1dC0LiOnE4hHpeA8CGvWlzmBswMqEhxrhSDeWIvV/3mZKNdBBHNN8tWSQCsvX8J06pfQL+B9wlZDSGw6wukRn9j94+VB0vkSwoPId5tgg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744386268; c=relaxed/simple; bh=7ZoS0xY5agHPaulRb3cD8XGDbf5Uto+nLhFfKAqokok=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g4J0nDU4l2IXwUCNThLTJGjcBdqg6Bm2SH849rACt1ySL3ojTeLB5LqDBv3Hips/huPrdzEH04Zrmj67cMsOwlYzmr9W8HxoFu68ZOKvksboHg5xak9ln0v0S0tobU9DnfP0g0BJPe4iTwNcSawR+Lpdno39Bn1hLCHBgmAkweQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=A69/LT6O; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="A69/LT6O" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-85da5a3667bso63018239f.1 for ; Fri, 11 Apr 2025 08:44:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744386266; x=1744991066; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lNEtTIi2VK5ry0lwico5I+3DkBAdLoSFhiEvmP3qbmk=; b=A69/LT6OOQYLw6YgRDIh8Ai1DI8+jzG2Hc/PYn/2+PWrr2HKTGOp2dvELDPepwMkAD G0KT/qMjkHc4SINyIzbxdG7KVNGP2at4C+E3tllBE9xpASKBknB02KI9kXbEd9SikXcF 3xvLvIZlsgbn80AQgpf/4OJIWLobGbfoFDQru8DkSPe/Gegn3hlhL8wGicZhEXzpfS+P ZGCWOkzmEIHiZ2oGJpRjCx3jot1UnyKERe13Ls6XUUVWrwpb0hgLkChOq5hsU17eW9H2 imEc9t3nHytqu2oI7j7O+JS3u2moAoh7NFlslq8EUgylGz70ell9EVs+8GCaZDpL99RP uoEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744386266; x=1744991066; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lNEtTIi2VK5ry0lwico5I+3DkBAdLoSFhiEvmP3qbmk=; b=KIXJBoWE4rFEo7/5tUlatBf8J9icvzgmWFYw5Z9YFDEmlRa/tyJGKLZbgDxVEOQXAT BER56DG8oTO2OQsiEMJJn8bmPon/KG7XHVJPcEudRl4reaZoQCYW1DXJisQLwnzMY3Qt HuUBmUYjjCDmwjIhVFE3aPfiHrfchG8M0z6LNad6FIiMb8Fz/Mc/Y/1IcMmoDOvuEBu4 GDzjAwE2WybzWgg4Q3rYjIkigbiRl5iPgDID0pFa6LWjLTVU3vEdkszQPoU7RTpZjrVm qsxzUf1eGGFnLJ/RgL4vujIGJk8v6PP1moR8mjxTPLRqBE1APhYF8yIY8sTn/PlZ60hp UFEg== X-Forwarded-Encrypted: i=1; AJvYcCUfwmSuG13XMsCkxf2xOpHNm5tibn3CyFBEPAdSTFkzmHT1pNZr1eQIJFatzmUInwe2HhTKN56Euo5RzGY=@vger.kernel.org X-Gm-Message-State: AOJu0YwrAci+DhOdquzKAiNaAWuxW73piOrCv4QzmoXIp6ibbRVIeZA/ v7gF92JsAt+eFYyL/OI51zm144O3H0LMJ6r1RGUAWOR+Q1AOtnR9m9R2/Wgwwx4= X-Gm-Gg: ASbGncv4Tpfj0172NJopx4omdgmelY1d5MrJhXHIdgtJsDiRg05F1CDukdsTgNvHMDp Rilyyv/DKcrihgmRqHOCLYCyCAhI2vbt00qT/AObsUrmmO5pVmIiP9znH4BnnIkiNb5+JmUfe8H yd5TNv0GB8o3XudC6jdBQdx597QvyEd+Qjec7Fz6x9/bxXej0ctkOem3ALXOj5wxqxOcsoZ0kS3 dBrdvMN2iVeUSSL8PQZtofWIiUgabdyiqm5fqnbis8QfNMDsSJAj1OXsfeAQUlEtnZ553by8tSQ 6pSkNM1W2ZowTbJQ9QQlvvoiu+2WMxAy2gMAlgfvs4NLbcU2KuMAPXikMDXLVb2jN2jqvxcaT3o 1EPsc7MwmL64UNA== X-Google-Smtp-Source: AGHT+IHmZJkLUp0ElYixFb0pqy12kzxcoZbzdEnj5SOiajP/nfCU4MY0cVdJxZEZG4e9zsnEIRAxIQ== X-Received: by 2002:a05:6602:3789:b0:85e:2eba:20ad with SMTP id ca18e2360f4ac-8617cb4660cmr336071839f.2.1744386265918; Fri, 11 Apr 2025 08:44:25 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f505cf812dsm1276326173.18.2025.04.11.08.44.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Apr 2025 08:44:25 -0700 (PDT) From: Alex Elder To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, gregkh@linuxfoundation.org, jirislaby@kernel.org Cc: dlan@gentoo.org, benjamin.larsson@genexis.eu, bastien.curutchet@bootlin.com, andriy.shevchenko@linux.intel.com, u.kleine-koenig@baylibre.com, lkundrak@v3.sk, devicetree@vger.kernel.org, linux-serial@vger.kernel.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 1/3] dt-bindings: serial: 8250: support an optional second clock Date: Fri, 11 Apr 2025 10:44:16 -0500 Message-ID: <20250411154419.1379529-2-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250411154419.1379529-1-elder@riscstar.com> References: <20250411154419.1379529-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-serial@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The SpacemiT UART driver requires a bus clock to be enabled in addition to the primary function clock. Add the option to specify two clocks for an 8250-compatible UART, named "core" and "bus". If both are needed, require them to be named. Signed-off-by: Alex Elder Reviewed-by: Rob Herring (Arm) --- v3: Added Rob's Reviewed-by tag .../devicetree/bindings/serial/8250.yaml | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/serial/8250.yaml b/Documentation/devicetree/bindings/serial/8250.yaml index dc0d52920575f..33d2016b65090 100644 --- a/Documentation/devicetree/bindings/serial/8250.yaml +++ b/Documentation/devicetree/bindings/serial/8250.yaml @@ -135,7 +135,16 @@ properties: clock-frequency: true clocks: - maxItems: 1 + minItems: 1 + items: + - description: The core function clock + - description: An optional bus clock + + clock-names: + minItems: 1 + items: + - const: core + - const: bus resets: maxItems: 1 @@ -224,6 +233,25 @@ required: - reg - interrupts +if: + properties: + compatible: + contains: + const: spacemit,k1-uart +then: + required: [clock-names] + properties: + clocks: + minItems: 2 + clock-names: + minItems: 2 +else: + properties: + clocks: + maxItems: 1 + clock-names: + maxItems: 1 + unevaluatedProperties: false examples: From patchwork Fri Apr 11 15:44:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 880498 Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EFCD22135DE for ; Fri, 11 Apr 2025 15:44:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744386270; cv=none; b=LmASm8bzUUMpLrmZei2rIP8DcNf9Swf0HMSqnFYQSMGoPvGiUBWfAZbfH68bnEGJsbVwQrc5mnr4zR735UZJmWEKTd++RjWdsd2tXb5MyLdcZPVAxkGPWu7c+k4eJG66oNGZsrlp11vqyqSS9rorFGeGmnGjE8uWIpDW/zgdmSY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744386270; c=relaxed/simple; bh=ucvbVh/yXALhRLORxO86EDtcUDjhXV2k7FhsHq1IhHU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SDDh1dgtAghmEbh5zMRou86PbpGatp1kYHtAcUyt25oM9ir9mB40gcTxkdIU6ska4AjnhNmKJmQXBsnZshn59Gp8B+cG9qR6x0cHB7JJBXdwuesCFuQPRJlW++lN3Kdvy0eiFqypsOCEWSY+c0b+C7zAUF/wwElSaPlWFnXWPck= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=WEAWQd6A; arc=none smtp.client-ip=209.85.166.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="WEAWQd6A" Received: by mail-il1-f175.google.com with SMTP id e9e14a558f8ab-3d589227978so6978825ab.1 for ; Fri, 11 Apr 2025 08:44:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744386267; x=1744991067; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0+No0irtswkb42oZgjOuCr5NaquvvHMgg0F5193JRX8=; b=WEAWQd6AlZmwszqpr2FdMHOqU8RG330klxdCeKbWOQZ57QkTE7ddQSawMK/9di0qCb jrYKhLPt/GL7IkodueJqF7EEf1Ak9KJpVD5Su8U+O+xTx2dJs7HP86tt8SvhdFwQsRTx JjD3/Gjp/wSLWWIy81VlYvqLWYhSU2mrKBLz2Tn+86LmC+jXzHxjwBAoTa9RIjS8fGSj G/Wfzpvfvzo0GfVSPHOgNGHMPMtOwifcrzrh7jAoqwGBe+xGzu4LyvnPll0MIrd3+Dbd V7xHvmPqzW5zy8fhUhcy7Y0DfJkjuk9314SZ3oF2CItb9ZLYpo6WnKl0NuwY7WuEH2Ki sgAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744386267; x=1744991067; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0+No0irtswkb42oZgjOuCr5NaquvvHMgg0F5193JRX8=; b=L66HN9Icbyz7J+4yKKz+PAT6Mx39y95e3fcWGJ10BLBQpK8mIumOuywHhTlLEjXTHR IsMJyq3LSsWbWlxjZmDN3zPAQjIyI+gyECps1NG8CxG1SPK2FZvut0CkL+k0jykPIvt3 iD058i/QFxxyNh9Gmw2sNooNxC5iNZtYJmrxxFIJuk35jVOKGnlingeYQO4yty2yEsLO sXueSVu/HUeJlx3hMN3a6HOIViiWeLzAF12WQcwf/ie9IQko021GjHyF+szgEVmGfdKX HqgGQnf8AuPeXEpkss53V53m9Va1xczh2B+jV9xhlCWy2judSjgnLP6kMVoOOit0idtn XrNw== X-Forwarded-Encrypted: i=1; AJvYcCXUQjB3zVZkYjvDqaY0m9iqX6YzmQGtsTOtZvs6S5MyLtRw19B7YexswopnWtzwHj0Rf2qVPWq/7LWNccQ=@vger.kernel.org X-Gm-Message-State: AOJu0Ywr/3vvg5nxXcByy2X5bYgYrAhmKTxQ0DTwTtOEmuXaqi0ZSolk se73d7ozMwW/YAScj+GyxLeEVBCl9JWu5R3d+LzKSprOLX17J8WVpKPBzKwqHs4= X-Gm-Gg: ASbGncuJ8RlxVUvDQYdquE6tNfktS4bDflLyS7vKcpslO2Nz7qOxUB8ZYbf8rkb58GN Dyq6UXJu+XF8MZqjuglSED4Z3Icw11AU2yZjHPlSRWI/opRmbK731lOt+2kwsGUrGM92RL2mMUw vRGLO6+6JtrYPACrlrsvz1nBPjPesQgP5dQ87Ooty1c9pemNDHy9mDx7KS7+lNmP4H2YZ78vII3 XK7OQIhwmI94sOwWMz+FKjVA3TYv5a0mvHZoDhCTCt//LrES7OeZ2aq5Pg21SZcwF8TJ28tkLKY e3sNlYn10/s2Haq0mdbwhcSJPCIeJESdHP1fQ7mZwuKkOMR6ppBre56VE3V6XU3R6eQRXSDV62v QizdYnm8KZ3N8BA== X-Google-Smtp-Source: AGHT+IFHmGeALO9Wp+63MrFrWPOF/pQKiCJFNH3pXYWduOMBqvBFciOLd/8MEHS0nwfjD94ZFGolaQ== X-Received: by 2002:a92:1304:0:b0:3d3:d08d:d526 with SMTP id e9e14a558f8ab-3d7e4d0c549mr59399825ab.11.1744386267024; Fri, 11 Apr 2025 08:44:27 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f505cf812dsm1276326173.18.2025.04.11.08.44.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Apr 2025 08:44:26 -0700 (PDT) From: Alex Elder To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: dlan@gentoo.org, benjamin.larsson@genexis.eu, bastien.curutchet@bootlin.com, andriy.shevchenko@linux.intel.com, u.kleine-koenig@baylibre.com, lkundrak@v3.sk, devicetree@vger.kernel.org, linux-serial@vger.kernel.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 2/3] serial: 8250_of: add support for an optional bus clock Date: Fri, 11 Apr 2025 10:44:17 -0500 Message-ID: <20250411154419.1379529-3-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250411154419.1379529-1-elder@riscstar.com> References: <20250411154419.1379529-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-serial@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The SpacemiT UART requires a bus clock to be enabled, in addition to it's "normal" core clock. Look up the optional bus clock by name, and if that's found, look up the core clock using the name "core". Supplying a bus clock is optional. If no bus clock is needed, the the first/only clock is used for the core clock. Signed-off-by: Alex Elder Reviewed-by: Andy Shevchenko --- drivers/tty/serial/8250/8250_of.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/8250/8250_of.c b/drivers/tty/serial/8250/8250_of.c index 11c860ea80f60..a90a5462aa72a 100644 --- a/drivers/tty/serial/8250/8250_of.c +++ b/drivers/tty/serial/8250/8250_of.c @@ -123,7 +123,16 @@ static int of_platform_serial_setup(struct platform_device *ofdev, /* Get clk rate through clk driver if present */ if (!port->uartclk) { - info->clk = devm_clk_get_enabled(dev, NULL); + struct clk *bus_clk; + + bus_clk = devm_clk_get_optional_enabled(dev, "bus"); + if (IS_ERR(bus_clk)) { + ret = dev_err_probe(dev, PTR_ERR(bus_clk), "failed to get bus clock\n"); + goto err_pmruntime; + } + + /* If the bus clock is required, core clock must be named */ + info->clk = devm_clk_get_enabled(dev, bus_clk ? "core" : NULL); if (IS_ERR(info->clk)) { ret = dev_err_probe(dev, PTR_ERR(info->clk), "failed to get clock\n"); goto err_pmruntime; From patchwork Fri Apr 11 15:44:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 880882 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BA44214228 for ; Fri, 11 Apr 2025 15:44:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744386270; cv=none; b=F49Mt9Ft0OgocJAtfU26/5CqVREvht44vG63d39xGs7p1Q4Ble54Bx2KYFa26C2/lthGvNhjIoKhBFftZWH0h201Bx6RjhYPKccYhzTgeZMGxjiMlJw0SxhihQjExqTixTa1m2GeI4PQGJPN370INh/Yn+oczyE94tx2/Bp83a4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744386270; c=relaxed/simple; bh=YTCOV5qFH6rsTE5f1V8QRlk7DYXjTy4SSao1Noq3mc8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PewcPR6Gqzholf3kyaNnSM4v3QofT46e3QFt3BMeK9PY0OBJumm8XR9MlvfFJj/vZiBZeCinUC9YMcYZDelfvKX/YHBNrvXgamZBhmUagQBt0OzEO9I5cJuXRWeKd1Zln3eMjjYl/KgEh32WJmnTvJrX55nAz5EikhZQ1V3PN+s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=WLJFZxg1; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="WLJFZxg1" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-8616987c261so67986339f.3 for ; Fri, 11 Apr 2025 08:44:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744386268; x=1744991068; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pIR6+1UCymjCvWnHm+vRVxN4kx6Kunaak/TDrneY48s=; b=WLJFZxg1QCCV0kk3mFo2+q7h+KNKBsioJ2xaTCj2vdLR0j3oZKGIlc2MUudSE58LM7 c1IYKHrD4iwv5/OT9YZzKrwnTZ4W1FgjhXaHcshWlUAzg08NHNE/EoKYW2woOxyIF3D1 CiEV4Bc8OIfla7LUFeHOkd+g83pDscilKcVoKR0j+4PJ90Ko4fx85QxzxA48mSN3GYlc JDYbeJ2G0a1bEzlwPwrI3WRVcet6mkDykoBEMkJgszxem8MQp3uHE61SOT2oS7vPVmQb 9EkMSnANAp7FHvXbm6tDbxMiEZF7DusrAktoeFvjDtyxN0dGwNpnfGIbvUL88C0EHCB5 F4kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744386268; x=1744991068; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pIR6+1UCymjCvWnHm+vRVxN4kx6Kunaak/TDrneY48s=; b=EJ9xZrgLOFQ1v2knWoHtJ5+7LgTNjQZYFM+fwlwadD4uUcb5GuvZaV9O3KTegmVATD BBTA/AuPPQSnuLWroV6nhu0BNJwxUnNEhTyBFBQX3geu+CTtgyMlLVbWvjZnJNW3j4Ou aCtBcezPOAJ4hsrl80FKpeExklcp4JLd9Zsoh89MdzjLYtBfvWwxLboZeOqyKc53i9XR NR26TGyZw8fRWIb3+9VCanZs1v7AT8e6sLij7N/Act/o8zd45VXQjRiLAfNMRKPprfKz vNmlKBU8a7SO3MC6HqBDy3xn+Wv2JPjXIBVYxva9jI2tDWdnsjKZrylRXPHSaO08oRoH rb6w== X-Forwarded-Encrypted: i=1; AJvYcCUjO1Kb5tVM8tPAdzOx2IpE+jP4MJGSjS7tCj7MEL+1++qTM7oBiB7jNvNWAMDHsrSBpNOmDneFgGZYyaI=@vger.kernel.org X-Gm-Message-State: AOJu0YzYtRpGPungE7PBSq+h9hWcGidUSUj/1IRFbc72IZ81Wx5atnrt Sm5utrrHnQ7WYt59EltcOucKUezClOkc2Zkj1wT7XYWTTRJvJIavWbulBt3ovdI= X-Gm-Gg: ASbGncteXU+IZp+y5LPAaMUXYHv6ZfvtjdtYC+9MHd239TPygS/YADPLqQ8/Oy7Vfod QdksPaKFtQtTNu0p8EOgXmkbbm1+HNY30DAk60aXav0fgU+ynZ3szXAhEqFCV1x27EUGNEywYBE vNp3B8bYUqAGp5jqVMtmuSCaDKKAI44cMS5YKVZAQfesVijt+mlmD4J03bVkkv6xzaMEau+kpAh 75LORnNqvi5IZpVuCrEBas8PQ3yyuAsarNbp1ppRxmfz009w012blpxS94XeCJXhU/XeSC4RTmM JUwylDONxsM2EL2sq9iJWAlzAqspI47JFcvdQjBQBFOurZ11fLo863TKKtq3voxNqWk/1rImMzX x2Qy2+1v3o/Tabw== X-Google-Smtp-Source: AGHT+IGFDCID2V9OQ58DdGxUCrdRPix2Sm9SOyZ970XE5klNUQUYc7yCAtoOB8Vh9getD8RZI/2TFA== X-Received: by 2002:a05:6e02:3601:b0:3d4:3d8c:d5b4 with SMTP id e9e14a558f8ab-3d7ec207fdbmr28814495ab.11.1744386268085; Fri, 11 Apr 2025 08:44:28 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f505cf812dsm1276326173.18.2025.04.11.08.44.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Apr 2025 08:44:27 -0700 (PDT) From: Alex Elder To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: dlan@gentoo.org, benjamin.larsson@genexis.eu, bastien.curutchet@bootlin.com, andriy.shevchenko@linux.intel.com, u.kleine-koenig@baylibre.com, lkundrak@v3.sk, devicetree@vger.kernel.org, linux-serial@vger.kernel.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 3/3] serial: 8250_of: manage bus clock in suspend/resume Date: Fri, 11 Apr 2025 10:44:18 -0500 Message-ID: <20250411154419.1379529-4-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250411154419.1379529-1-elder@riscstar.com> References: <20250411154419.1379529-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-serial@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Save the bus clock pointer in the of_serial_info structure, and use that to disable the bus clock on suspend and re-enable it on resume. Signed-off-by: Alex Elder --- v3: New patch, managing the bus clock during suspend and resume drivers/tty/serial/8250/8250_of.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/tty/serial/8250/8250_of.c b/drivers/tty/serial/8250/8250_of.c index a90a5462aa72a..8f2529f699e0a 100644 --- a/drivers/tty/serial/8250/8250_of.c +++ b/drivers/tty/serial/8250/8250_of.c @@ -24,6 +24,7 @@ struct of_serial_info { struct clk *clk; + struct clk *bus_clk; struct reset_control *rst; int type; int line; @@ -123,16 +124,15 @@ static int of_platform_serial_setup(struct platform_device *ofdev, /* Get clk rate through clk driver if present */ if (!port->uartclk) { - struct clk *bus_clk; - - bus_clk = devm_clk_get_optional_enabled(dev, "bus"); - if (IS_ERR(bus_clk)) { - ret = dev_err_probe(dev, PTR_ERR(bus_clk), "failed to get bus clock\n"); + info->bus_clk = devm_clk_get_optional_enabled(dev, "bus"); + if (IS_ERR(info->bus_clk)) { + ret = dev_err_probe(dev, PTR_ERR(info->bus_clk), + "failed to get bus clock\n"); goto err_pmruntime; } /* If the bus clock is required, core clock must be named */ - info->clk = devm_clk_get_enabled(dev, bus_clk ? "core" : NULL); + info->clk = devm_clk_get_enabled(dev, info->bus_clk ? "core" : NULL); if (IS_ERR(info->clk)) { ret = dev_err_probe(dev, PTR_ERR(info->clk), "failed to get clock\n"); goto err_pmruntime; @@ -299,6 +299,7 @@ static int of_serial_suspend(struct device *dev) if (!uart_console(port) || console_suspend_enabled) { pm_runtime_put_sync(dev); clk_disable_unprepare(info->clk); + clk_disable_unprepare(info->bus_clk); } return 0; } @@ -311,6 +312,7 @@ static int of_serial_resume(struct device *dev) if (!uart_console(port) || console_suspend_enabled) { pm_runtime_get_sync(dev); + clk_prepare_enable(info->bus_clk); clk_prepare_enable(info->clk); }