From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 5CFF1424673 for ; Mon, 6 Jul 2026 09:32:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783330362; cv=none; b=KGW8ll/SNkfz97gRRWBj9Pcj3yG/QnSiLTcELQ/76Xh6Z9UtUYTOAYSKpsbjC1WtA74eCBaWasnSjHAsMw7i1eFho/piozAQkItKsMaM4+nFMMe35txWFsdMcj6JhhXFgpmRgVqWvCOXMIS5XuUH/8rt53v+0T5Axqr2N17mG9M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783330362; c=relaxed/simple; bh=0uBL/FtS3qxYddEpWPm85zwv8RTdX1Kl9yqgj170ams=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jbju4MGoAXL8f4tUH+so5C6i9310NxCm4e8d5vm6ghDwNKS//wNToDwkSLrsPMCdMg3HCL7JZhFZP2hfopFsEfiLiOrw6F/ACpA2UJrTsflIDeTCIVvlFDRgJluyrt2tV/GyJozLQByi/RNd5AqCb+OgLxi7nhmaDMLTSm9+Fvo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b=LeTFOjDB; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b="LeTFOjDB" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-493c2c0b9a8so25241915e9.1 for ; Mon, 06 Jul 2026 02:32:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre.com; s=google; t=1783330355; x=1783935155; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=1QZ/tzJaIkMNpKGsZtD20B+8zLkYYTOKlJtJuY0qjaA=; b=LeTFOjDB4D9BKoQ+hkxRm/Trl/261Id2FhWjHs/4kzsXhjeee6vlFV0/+jpO0k7GXb jT9Ikd0kE19VsdQngctwAh90Wk4MQbIgdovqFIKBnZQ71GWdmSv9muL5M3aW1JltGZ+5 CMR/cEk7MWUKZpTUFYYaHqF1S6YQ7WQVfGZhK8Q1Zmq69snHhpC1Ohd5fxFRbbiqAzmA 5e7aIQ5GcKqW8LtMrZ8OzUQt0RhfZGOXw7ldVM8yBTuqaWP14/XUqOnwId5+/v3L5L6W 11CqSlk8TCyUuWJpZFhJwhDwDSPPfb6g7cVXpfIvi11s9R6jxfdJHxsp+IndOTOcaTw6 JM/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783330355; x=1783935155; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=1QZ/tzJaIkMNpKGsZtD20B+8zLkYYTOKlJtJuY0qjaA=; b=nMdTHnBQo6TIz3SPNbO6/nr3VyJ+nCZsjDN/TmDno8zRZB9rlW5+YP8rHfZUPDUhM3 ofvBz3TOYEZ+n2+ITIeGDyhfmyFg7v5PwJv9hhQI6ohT+kU0uVOvGstAuvsFwodl0JhT xmc+JWNTcIBJUvavLrN5VISPgB379/CRCSRMoYYJzeMXklvcS37nOv5hJ30lFKFHaxCi P7XMkxgs+x0Y6pDQMfcgHhGLvcs8TEnGQhkFQz/afWIkCpD/n+/McwUleHFj0p8NiBYP /DV9b2a9lEK8fz92L+/nSxF5zrSD+IyWFNO7xUOAR/Tk2XuFrwl/RFWFoLdaD9loROx4 +cUQ== X-Forwarded-Encrypted: i=1; AHgh+RqDPDG0peSl6BrRRZeFWZij4Tcds9VjkmltLWUC3+Wvk+BactulyZ1zmiDEaHjFacqZfZFQX/kqrZEgodo=@vger.kernel.org X-Gm-Message-State: AOJu0Yx3GCd22xMZbv5knDAa8epnI88IYXxnlIsbpF/98wDTItBXQNr5 LexYn98pM5832H939uJnoRacu1aW4if/wRCUraqJgS0+qyU5LnmYywl7GpGwsHJYL9k= X-Gm-Gg: AfdE7cnVMz5g1m1VIjpd8L7RZmSd4xWRC32YVMifJ+61wkNweDGmPxp6qCbtmilRscC 6M37D55kHvmWqUugMH3PZopShz02SNvK7YIOS0OLzhQM9ziK/rRPuUHBBQLkwtfaE6ZtLvKTme/ s9ooa+5cgV0oVSwwaNyynfRNx+ys1hQuFlusPZQeFxM6Nm+uee5C5tzlDRhb4pRBU7+WxVoQHGx vk/6Ldz/iOiA1VqvZVCqcF52vr3Z11c+jZRAJ3Sf1K4BQOGwO1GehRrWCtX2g6ga7Ihv+kuhDJx 4GUPb+w1uXKR6SMprMxq6u7pQcHgIzYv6ZLuNFY3xID1+qpxQLCry72sRlg3m0qTcnXt0t7acNH mmqFJZtS9KQgfGXcIiKzXOultF8V8sk2T/txUYO+qlGzMEKqvKpqPYJhA4GfjfJQJ9DUw3ZbVVn JQlY22VsfR2lM= X-Received: by 2002:a05:600c:811a:b0:493:bc92:ba9a with SMTP id 5b1f17b1804b1-493d11d7e5bmr93766755e9.13.1783330354669; Mon, 06 Jul 2026 02:32:34 -0700 (PDT) Received: from localhost ([2a01:e0a:3c5:5fb1:1495:8c97:96f4:dff8]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-493be4a343csm317962395e9.0.2026.07.06.02.32.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jul 2026 02:32:34 -0700 (PDT) From: Jerome Brunet Date: Mon, 06 Jul 2026 11:32:12 +0200 Subject: [PATCH v4 4/9] clk: sunxi-ng: sun6i-rtc: clean up DT usage Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260706-a733-rtc-v4-4-f330728db3d3@baylibre.com> References: <20260706-a733-rtc-v4-0-f330728db3d3@baylibre.com> In-Reply-To: <20260706-a733-rtc-v4-0-f330728db3d3@baylibre.com> To: Junhui Liu , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Michael Turquette , Stephen Boyd , Maxime Ripard Cc: linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Jerome Brunet X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2679; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=0uBL/FtS3qxYddEpWPm85zwv8RTdX1Kl9yqgj170ams=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBqS3YjAlK/wAezwRG/Br2o9jTucmyJPFDAgWQJK NGnH+1LXpCJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCakt2IwAKCRDm/A8cN/La heKGEACVs19xz8UT8PIIUFWAjitE9+NBDWhZaJDxvNcUM0SxaCYy96bafmU0d+a2rqtLufr//KC Z6WuhTQ7tHSglmlAJYJGPYFWh6rGPUtCTUvd6+nEaLUUGiCfk0VnOtJDTlgka/thanIyvG7C8Ib CnWqoMTk4qimPYytuWrTsIffWAuOUIrOsz3DfO3rvDqFU+n+PfI9lXD3+kAY4OLnh2iVuDKk3g+ wOoaaCddMgxevDmh28+DckALZ5DPj8b4mmDtYdJBfeq+8wB8rH0oTYXMh2YvS6Il5dFLoEkTesb X4HEJd8dKaMDVGMIi6Sn+USIZuuIWRpydFCalXQxQhSz8AmNYW/nCF+Kv2J6olyH/yehTqdaqFZ RBfacTRrrZVF4K8KO7E1a2eCcFAlV/AXQqFKWqIw1Kljn6x0vMJm64IKq37s0/pMu/tFHpL1Mul /hdDazToGy9fdBo48oMitjchP2j3noiOnFZqGn2ZZuqc89RBwRcaiOaEiqxUfDo/74XQe7Z7xls cR1ohmd0I1POV7Gp+SKuS8PGZcKzfAISw3A1AnGb7pkYQCf8PsrpXM9ofPeLziH85FqvKJo++9c TDK8n6R4fNRVe3j3kH5AZRPFsgn4ijCQKyayBO9Ak2WcrTkCbVATnAi74NLyP+BzTG5fVygyNJe Ke9epCWPHbybvhA== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 With sun6i-rtc compatible devices, the "ext-osc32k" clock input is optional for the devices that support this input (r329 and onward). Probably preparing for older SoC support, the driver does something funny when parsing DT. It check if "ext-osc32k" is present in the clock-names and if it is not, it uses the first clock as "ext-osc32k". This clock will actually be the rtc bus clock so what the driver does is wrong. At the moment, the driver does not support the older SoCs that would have an external 32k clock provided on index #0 so just remove this quirk. Reviewed-by: Chen-Yu Tsai Signed-off-by: Jerome Brunet --- drivers/clk/sunxi-ng/ccu-sun6i-rtc.c | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c b/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c index f6bfeba009e8..0f528bfaed00 100644 --- a/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c +++ b/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c @@ -191,10 +191,8 @@ static struct ccu_common iosc_32k_clk = { CLK_GET_RATE_NOCACHE), }; -static const struct clk_hw *ext_osc32k[] = { NULL }; /* updated during probe */ - -static SUNXI_CCU_GATE_HWS(ext_osc32k_gate_clk, "ext-osc32k-gate", - ext_osc32k, 0x0, BIT(4), 0); +static SUNXI_CCU_GATE_FW(ext_osc32k_gate_clk, "ext-osc32k-gate", + "ext-osc32k", 0x0, BIT(4), 0); static const struct clk_hw *osc32k_parents[] = { &iosc_32k_clk.hw, @@ -352,7 +350,6 @@ MODULE_DEVICE_TABLE(of, sun6i_rtc_ccu_match); int sun6i_rtc_ccu_probe(struct device *dev, void __iomem *reg) { const struct sun6i_rtc_match_data *data; - struct clk *ext_osc32k_clk = NULL; const struct of_device_id *match; /* This driver is only used for newer variants of the hardware. */ @@ -363,21 +360,7 @@ int sun6i_rtc_ccu_probe(struct device *dev, void __iomem *reg) data = match->data; have_iosc_calibration = data->have_iosc_calibration; - if (data->have_ext_osc32k) { - const char *fw_name; - - /* ext-osc32k was the only input clock in the old binding. */ - fw_name = of_property_present(dev->of_node, "clock-names") - ? "ext-osc32k" : NULL; - ext_osc32k_clk = devm_clk_get_optional(dev, fw_name); - if (IS_ERR(ext_osc32k_clk)) - return PTR_ERR(ext_osc32k_clk); - } - - if (ext_osc32k_clk) { - /* Link ext-osc32k-gate to its parent. */ - *ext_osc32k = __clk_get_hw(ext_osc32k_clk); - } else { + if (!data->have_ext_osc32k) { /* ext-osc32k-gate is an orphan, so do not register it. */ sun6i_rtc_ccu_hw_clks.hws[CLK_EXT_OSC32K_GATE] = NULL; osc32k_init_data.num_parents = 1; -- 2.47.3