From nobody Mon Feb 9 06:59:14 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C60AC195809; Mon, 23 Sep 2024 10:00:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1727085617; cv=none; b=OV9FVW6iiOu2d5gCLNc0APrIM41Cw/sYlHXutj0NhhitoaGcQj2KWLPfwMm7hutA+9ijfHLDPzXzDTP8pv7RyLI1QQMrk0JglE7DZG7/u+TwxOnA8tAJgYJvhjYadZZ8D4o3RBQhFPtor9Gmifxtu4/I4XjbxWpXIRXFdZ+yW+E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1727085617; c=relaxed/simple; bh=7ECwv49t0WFiAx3RhC+fh1v+7w6XzbPg4STX+u9qe/0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VZ6LLX9ZI0+6nDfFHoaQ17cXYxla00Ic3VzDFQ0vNvVDYe2bHWFV6x/pqgp5jVOOmUTw+BOU8MBGxafeBs3jsVJo3EcEzTPEAtnqearOOdQIF853JjEQcR/ozkhPubAXvcuDlk6G1EUc0KYqcGLfrxgw5VPZ0Wp0knaqjMwcR/w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=HAIVGcXg; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="HAIVGcXg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1727085614; bh=7ECwv49t0WFiAx3RhC+fh1v+7w6XzbPg4STX+u9qe/0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HAIVGcXgONpShgBWkyfL+ym8Jj4ookW2rEdYeDNvI+hsmFDEuKbmTVhk3gZsR6VwX oH/dC78n3lvf/ujs52/q8fZtEW1QxndWkKDEipAyUqgf13JdfBUFyDDqsxTF8gOlcx gSJj0a5oIGFTz9ATPhpVSyHaMU/HFAhxRecFGwwWFlP2bhrbBnifjHhXAK4RCwhAdo ejvAEfKZ/iyj4mYOPmoUMaqFPMGznqPkNSQjWO02LrbqcZZNL3yrQ/vJis6rjbjEZK 978tgdjkz4D6e5d8FPNz0aF1TuCp6vMIpIDDdFSYsIS1bfChzpk4xDie1ODWRvWhkq Cr1IpRs3Hmcrw== Received: from IcarusMOD.eternityproject.eu (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by bali.collaboradmins.com (Postfix) with ESMTPSA id 55AB217E10AE; Mon, 23 Sep 2024 12:00:13 +0200 (CEST) From: AngeloGioacchino Del Regno To: lee@kernel.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, eddie.huang@mediatek.com, sean.wang@mediatek.com, alexandre.belloni@bootlin.com, sen.chu@mediatek.com, macpaul.lin@mediatek.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-rtc@vger.kernel.org, kernel@collabora.com Subject: [PATCH v1 1/3] dt-bindings: mfd: mediatek: mt6397: Add start-year property to RTC Date: Mon, 23 Sep 2024 12:00:08 +0200 Message-ID: <20240923100010.97470-2-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240923100010.97470-1-angelogioacchino.delregno@collabora.com> References: <20240923100010.97470-1-angelogioacchino.delregno@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Enable evaluating the start-year property to allow shifting the RTC's HW range. Signed-off-by: AngeloGioacchino Del Regno Acked-by: Conor Dooley --- Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml b/D= ocumentation/devicetree/bindings/mfd/mediatek,mt6397.yaml index 953358bc997a..a83cc35f51f1 100644 --- a/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml +++ b/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml @@ -71,6 +71,8 @@ properties: - mediatek,mt6366-rtc - const: mediatek,mt6358-rtc =20 + start-year: true + required: - compatible =20 --=20 2.46.0 From nobody Mon Feb 9 06:59:14 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DFDC195FD1; Mon, 23 Sep 2024 10:00:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1727085618; cv=none; b=S+RjYaVOFpX7noCx0MZBYdxQ7wWVhshwHlhJXpGy32MX0i/ZJgWzOZ/9zEBoOn8ozh76xVsLQG7CXJQFV6vzUdBV0tHamCTHoEhu9EaimjcZeuzsbsqU9tI3hhZjVa13HXMTAZt8eF7gvVAcwfHSpX3Wv7dOYrHG6LV/wGIBPt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1727085618; c=relaxed/simple; bh=YrvCOBRllTDZcvuPynXFN1lDKpyxG284BO/X9CnemNY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DklorwTyVb8Zre10fPGj9qJUrYC8KJSIy200ikSARcJp/vZEo5SEMbffQ73WUw5m4AhX3wTXpnseM5yUDhQCgd+IbgfzgUBKmmH+51hdVP2VbmRudH7tEHmwxUZzQ3cOND2zIQA+IEfTuXFPSXoD3JzhcV3BNYMU1xl+NvckX9s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=h8Jax48P; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="h8Jax48P" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1727085614; bh=YrvCOBRllTDZcvuPynXFN1lDKpyxG284BO/X9CnemNY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h8Jax48P/c+QVuNQ6JkqF+x+nTEam9eaf+PQGnzo4bF0PAqJ+6UhtwoOaeJtaijvd z5Gsq1lzk2b+jBztRd9rDFQP96QEUVNMjJ5iODjPnRTm+lVV9YrdcxJJ6uvg6ESYWk 9XritmaOw2DS1cIuPEyPV05crKdkYhtNQWCvv/DyCTDUmyKoj3SCaOXjgd5kOoOKf4 LlUbRDDj2kMAPlmM6Ys9DwH1S08kIDBhhKq4HZp+t4ly7rYXCGQxdM33d9c0Tz3qjw HUYtQ9IRruDe2usZXAO21mMRxoB9KjOJ3ZXlV4vxNm2PqJYOweMToni3Gvg6LSY7TC l4GjVjxIJ0g7A== Received: from IcarusMOD.eternityproject.eu (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by bali.collaboradmins.com (Postfix) with ESMTPSA id 28C1817E10D3; Mon, 23 Sep 2024 12:00:14 +0200 (CEST) From: AngeloGioacchino Del Regno To: lee@kernel.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, eddie.huang@mediatek.com, sean.wang@mediatek.com, alexandre.belloni@bootlin.com, sen.chu@mediatek.com, macpaul.lin@mediatek.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-rtc@vger.kernel.org, kernel@collabora.com Subject: [PATCH v1 2/3] rtc: mt6359: Add RTC hardware range and add support for start-year Date: Mon, 23 Sep 2024 12:00:09 +0200 Message-ID: <20240923100010.97470-3-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240923100010.97470-1-angelogioacchino.delregno@collabora.com> References: <20240923100010.97470-1-angelogioacchino.delregno@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add the RTC hardware range parameters to enable the possibility of using the `start-year` devicetree property which, if present, will set the start_secs parameter by overriding the defaults that this driver is setting; To keep compatibility with (hence have the same date/time reading as) the old behavior, set: - range_min to 1900-01-01 00:00:00 - range_max to 2027-12-31 23:59:59 (HW year max range is 0-127) - start_secs defaulting to 1968-01-02 00:00:00 Please note that the oddness of starting from January 2nd is not a hardware quirk and it's done only to get the same date/time reading as an RTC which time was set before this commit. Also remove the RTC_MIN_YEAR_OFFSET addition and subtraction in callbacks set_time() and read_time() respectively, as now this is already done by the API. Signed-off-by: AngeloGioacchino Del Regno Reviewed-by: Macpaul Lin Reviewed-by: ZhanZhan Ge --- drivers/rtc/rtc-mt6397.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c index 1617063669cc..4785af123a7f 100644 --- a/drivers/rtc/rtc-mt6397.c +++ b/drivers/rtc/rtc-mt6397.c @@ -96,12 +96,6 @@ static int mtk_rtc_read_time(struct device *dev, struct = rtc_time *tm) goto exit; } while (sec < tm->tm_sec); =20 - /* HW register use 7 bits to store year data, minus - * RTC_MIN_YEAR_OFFSET before write year data to register, and plus - * RTC_MIN_YEAR_OFFSET back after read year from register - */ - tm->tm_year +=3D RTC_MIN_YEAR_OFFSET; - /* HW register start mon from one, but tm_mon start from zero. */ tm->tm_mon--; time =3D rtc_tm_to_time64(tm); @@ -122,7 +116,6 @@ static int mtk_rtc_set_time(struct device *dev, struct = rtc_time *tm) int ret; u16 data[RTC_OFFSET_COUNT]; =20 - tm->tm_year -=3D RTC_MIN_YEAR_OFFSET; tm->tm_mon++; =20 data[RTC_OFFSET_SEC] =3D tm->tm_sec; @@ -178,7 +171,6 @@ static int mtk_rtc_read_alarm(struct device *dev, struc= t rtc_wkalrm *alm) tm->tm_mon =3D data[RTC_OFFSET_MTH] & RTC_AL_MTH_MASK; tm->tm_year =3D data[RTC_OFFSET_YEAR] & RTC_AL_YEA_MASK; =20 - tm->tm_year +=3D RTC_MIN_YEAR_OFFSET; tm->tm_mon--; =20 return 0; @@ -194,7 +186,6 @@ static int mtk_rtc_set_alarm(struct device *dev, struct= rtc_wkalrm *alm) int ret; u16 data[RTC_OFFSET_COUNT]; =20 - tm->tm_year -=3D RTC_MIN_YEAR_OFFSET; tm->tm_mon++; =20 mutex_lock(&rtc->lock); @@ -302,6 +293,10 @@ static int mtk_rtc_probe(struct platform_device *pdev) device_init_wakeup(&pdev->dev, 1); =20 rtc->rtc_dev->ops =3D &mtk_rtc_ops; + rtc->rtc_dev->range_min =3D RTC_TIMESTAMP_BEGIN_1900; + rtc->rtc_dev->range_max =3D mktime64(2027, 12, 31, 23, 59, 59); + rtc->rtc_dev->start_secs =3D mktime64(1968, 1, 2, 0, 0, 0); + rtc->rtc_dev->set_start_time =3D true; =20 return devm_rtc_register_device(rtc->rtc_dev); } --=20 2.46.0 From nobody Mon Feb 9 06:59:14 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70947194C6E; Mon, 23 Sep 2024 10:00:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1727085619; cv=none; b=NxQjxnLYdnSJG77SUbovXHdHMKbejo49Xdj+HRaikInvAFjzQWGZMHUQE/lKjQd6ZWVVyXJk3cddVumjb3JzKkJIj2ZZ+0US2VZ2m68DYo/9Uoli7VmaaDzGZ7Hlf1btOwupLZ7zmC2nSNWcO3coyxya/+2U1X7se+NBpAd5190= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1727085619; c=relaxed/simple; bh=EVa8pFZK1Gg2RTP6+a6/2urfhYG5YFYSX1JAt7R4Yi8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UnG0kvz5weXz6h0QnEFbhq7WLD8gq3g0rJJd2cDwh6FqGB+GhS6izBfDsQ/hmop7xxHEHDLVuy4kSQXmFriiXTGIqOYbES3pdYyThfjZnHHBamkLBpbFGEmten33KEkAQT5xOsguc3yLNSdfKo/PbplughwUcpzsjuOX/N1UVyQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=ih89HEvr; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="ih89HEvr" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1727085615; bh=EVa8pFZK1Gg2RTP6+a6/2urfhYG5YFYSX1JAt7R4Yi8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ih89HEvrjCdr+PhyTQoUw7wGQee/jfqo1S+wA+rutY1NkTRHoyBWrb7JUIxxbi6Pr og/QOh/P2Csh+mCIR2i6FJTlxhJ9Gap+3995bEtSzqkVNJg4hwF3NpfgvKWGh3aycB z/NTjbbx1nhKQg8a7G4MrdvnBetbeEfyhStNTE4CBQzOed66K+mpXdIix8KL69QFg5 Nh0Hr8IO1rhxfX6QFgYgodk1BXwz3tE7IBpfF3NX8fYzNhzPsqoN/HBU0V8S+fCNWo Kcj4U0Pj3CnuXleHU0ufRDowANlc9b+/gaeo0HnsIrAyN8vJ5V1VhyxjVud/oJufuL MxJBc+gzzplww== Received: from IcarusMOD.eternityproject.eu (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by bali.collaboradmins.com (Postfix) with ESMTPSA id E93C217E10FC; Mon, 23 Sep 2024 12:00:14 +0200 (CEST) From: AngeloGioacchino Del Regno To: lee@kernel.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, eddie.huang@mediatek.com, sean.wang@mediatek.com, alexandre.belloni@bootlin.com, sen.chu@mediatek.com, macpaul.lin@mediatek.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-rtc@vger.kernel.org, kernel@collabora.com Subject: [PATCH v1 3/3] rtc: mt6359: Use RTC_TC_DOW hardware register for wday Date: Mon, 23 Sep 2024 12:00:10 +0200 Message-ID: <20240923100010.97470-4-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240923100010.97470-1-angelogioacchino.delregno@collabora.com> References: <20240923100010.97470-1-angelogioacchino.delregno@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Instead of calculating the number of full days since Sunday with (days + 4) % 7, read (and write) that to the RTC Day-of-week Time Counter register (RTC_TC_DOW). Some transformation (addition and subtraction for set/get) is still done, as this register's range is [1..7], while the tm_wday in struct tm's range is [0..6]. Please note that this was added only to set_time() and read_time() callbacks because set_alarm() and read_alarm() are setting a bit in RTC_AL_MASK to ignore DOW for RTC HW alarms for unknown reasons. Signed-off-by: AngeloGioacchino Del Regno --- drivers/rtc/rtc-mt6397.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c index 4785af123a7f..152699219a2b 100644 --- a/drivers/rtc/rtc-mt6397.c +++ b/drivers/rtc/rtc-mt6397.c @@ -75,6 +75,7 @@ static int __mtk_rtc_read_time(struct mt6397_rtc *rtc, tm->tm_min =3D data[RTC_OFFSET_MIN]; tm->tm_hour =3D data[RTC_OFFSET_HOUR]; tm->tm_mday =3D data[RTC_OFFSET_DOM]; + tm->tm_wday =3D data[RTC_OFFSET_DOW]; tm->tm_mon =3D data[RTC_OFFSET_MTH] & RTC_TC_MTH_MASK; tm->tm_year =3D data[RTC_OFFSET_YEAR]; =20 @@ -86,9 +87,8 @@ static int __mtk_rtc_read_time(struct mt6397_rtc *rtc, =20 static int mtk_rtc_read_time(struct device *dev, struct rtc_time *tm) { - time64_t time; struct mt6397_rtc *rtc =3D dev_get_drvdata(dev); - int days, sec, ret; + int sec, ret; =20 do { ret =3D __mtk_rtc_read_time(rtc, tm, &sec); @@ -96,15 +96,9 @@ static int mtk_rtc_read_time(struct device *dev, struct = rtc_time *tm) goto exit; } while (sec < tm->tm_sec); =20 - /* HW register start mon from one, but tm_mon start from zero. */ + /* HW register start mon/wday from one, but tm_mon/tm_wday start from zer= o. */ tm->tm_mon--; - time =3D rtc_tm_to_time64(tm); - - /* rtc_tm_to_time64 covert Gregorian date to seconds since - * 01-01-1970 00:00:00, and this date is Thursday. - */ - days =3D div_s64(time, 86400); - tm->tm_wday =3D (days + 4) % 7; + tm->tm_wday--; =20 exit: return ret; @@ -117,11 +111,13 @@ static int mtk_rtc_set_time(struct device *dev, struc= t rtc_time *tm) u16 data[RTC_OFFSET_COUNT]; =20 tm->tm_mon++; + tm->tm_wday++; =20 data[RTC_OFFSET_SEC] =3D tm->tm_sec; data[RTC_OFFSET_MIN] =3D tm->tm_min; data[RTC_OFFSET_HOUR] =3D tm->tm_hour; data[RTC_OFFSET_DOM] =3D tm->tm_mday; + data[RTC_OFFSET_DOW] =3D tm->tm_wday; data[RTC_OFFSET_MTH] =3D tm->tm_mon; data[RTC_OFFSET_YEAR] =3D tm->tm_year; =20 --=20 2.46.0