Received: by 2002:a19:771d:0:0:0:0:0 with SMTP id s29csp1277925lfc; Wed, 1 Jun 2022 13:59:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyB3KJThAKZ7Mt7r5kNsI7AS7EqwD+TBBuwg7K/bnlVwQxKqUcjPGizz3l5uAzW4nnwfg++ X-Received: by 2002:a63:475d:0:b0:3fc:b414:f2aa with SMTP id w29-20020a63475d000000b003fcb414f2aamr1078777pgk.17.1654117188764; Wed, 01 Jun 2022 13:59:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654117188; cv=none; d=google.com; s=arc-20160816; b=UKC+FGeqsgfXnd76bNNARcnn/hI1aVLS4kdLdqak4xtSptNJbcmP2f0PCFfsfFT1i6 AZRadsUHWbQtzEv1TjSvn8PvvARQzwG4DLe/Lvm5Ka6SIFHn2miZvpZvcTSfKEWI3gZi 6bxxAivScYutEYOU+vPutMzZX9KK1EZJljMvpwp4rC+BB2amF/t1gCL/XU67/IJ4py44 2GdBu1nxHFJr3JGPpPz+YNrsluXJqRfizvevWVP1hE4/xg3htbVEcQkYzS40N/rzbLpO xgpefUIftpapN6/9AL+qyrGP7J2YmAslOzhGW4HTlRM9kSCQ0OunzfKJbqL7vtaPzToU P5+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:feedback-id :dkim-signature:dkim-signature; bh=s8b8COO5YbGa8xG5/i9yEEf+vE3uG78vIzviBYnAo1M=; b=f/RiC7g9zne9LKowINtqLzFmSxCjN9iKK660mt+6E0YJkHq/lygFkkletr1vqNyboK UFMvvwbeluiJHrOtyJYLc8BGYFuDLGamEZQ70zvzImVzvxHcbwMO4gIp/Mlia6GeFWaG Q/+x1lU8YLNV65xeDD9sAoyc6Va0pqHsnfVIl8PaetTkV07PvpJK62CMLmvtUUqYbnaN mRAlyX1W9jKtzIW8o7ygE/2a06SZly+IfKnRhMXK/8I3t/jX6MAWeLbNkjrRVD87gwSZ B7BfEpA/W4akeGR557L3knCavS+8iNG1QgMk3q/YwVPLtRd9uJ7i1exI8jYqe9k4eR31 im+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (expired) header.i=@stwcx.xyz header.s=fm2 header.b=N52hijfp; dkim=neutral (expired) header.i=@messagingengine.com header.s=fm1 header.b=y0LexLUk; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id n8-20020a63f808000000b003f5f0e7a705si3756425pgh.190.2022.06.01.13.59.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jun 2022 13:59:48 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=neutral (expired) header.i=@stwcx.xyz header.s=fm2 header.b=N52hijfp; dkim=neutral (expired) header.i=@messagingengine.com header.s=fm1 header.b=y0LexLUk; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 788522CB4F3; Wed, 1 Jun 2022 13:02:38 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344802AbiEaNr2 (ORCPT + 99 others); Tue, 31 May 2022 09:47:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233818AbiEaNr0 (ORCPT ); Tue, 31 May 2022 09:47:26 -0400 Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8D9C12126F; Tue, 31 May 2022 06:47:24 -0700 (PDT) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id DEBE03200035; Tue, 31 May 2022 09:47:20 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Tue, 31 May 2022 09:47:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stwcx.xyz; h=cc :cc:content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm2; t=1654004840; x=1654091240; bh=s8b8COO5Yb Ga8xG5/i9yEEf+vE3uG78vIzviBYnAo1M=; b=N52hijfpV1UMRrhHBEsjZlBlof doLJ+cEEVuVC54JKFV3kw7tnE9v3C8cO1Wt+0t7wRVY1tYWZpyfKd8Caxr5vd6ec JpFTyqF8PYyiHrFnfJvcHYDB/Arzr9AFkaYy7gQsyrRi/0JT0GgCnlWydd9IagYJ qrwoFtG4Rm43CY2v6G39mNz/KfRzpFnhSKDPu9GSp2Cu54I8M/+3Pi14pUmePLi2 wqN1CQuVTcplyDzrlS+tHZSS+oLdcpeOf6ABVntZE4MIA3WaQsJ75bJ58qlJT6Gw nHLBBoPweRyZA1ZCMiTq/jQJKl5v3vIGAQfAKW6U1wfCaNzGW/BAp3v8QEKw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1654004840; x=1654091240; bh=s8b8COO5YbGa8xG5/i9yEEf+vE3u G78vIzviBYnAo1M=; b=y0LexLUkBrU37DxqXCaEEErb5ht+9N5MV5M4VfIMEV1b I+fn/jYy1h8qDjqRVfLUtTwm0pdnggWsfDmoww8Z5iU8+a+zPxlWdoNF/qTr6Y4w kYTr9b9GRJPJJfUuGeZ2FXDYhVPDsjtk9EY/Sa2YW+rjxcxON/PCMWkzcfTBK0zv NEyh4SKPZ3HWFlXmOu27SQdsIq/8HbZj8s3WkrcFf4O5K9PrjhczF9uSRtNlNfeQ u9A09CvdAO23kFYDtwDpZ0JxhfUn/f5GHGXa2O7+UT2JivzRGYakabBIo6XdMZPZ WBm1R0x2d2dAyQhnAy0KMueo7qoqdj9/ElTDgQJK6g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrkeekgdeijecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenfg hrlhcuvffnffculddvfedmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt vdenucfhrhhomheprfgrthhrihgtkhcuhghilhhlihgrmhhsuceophgrthhrihgtkhessh htfigtgidrgiihiieqnecuggftrfgrthhtvghrnhepheefjeehfedtjeeivdefkeffheel udekudelleffkefgtdeludelvddtgedtheeknecuvehluhhsthgvrhfuihiivgepudenuc frrghrrghmpehmrghilhhfrhhomhepphgrthhrihgtkhesshhtfigtgidrgiihii X-ME-Proxy: Feedback-ID: i68a1478a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 31 May 2022 09:47:19 -0400 (EDT) Date: Tue, 31 May 2022 08:47:18 -0500 From: Patrick Williams To: Potin Lai Cc: Brendan Higgins , Benjamin Herrenschmidt , Joel Stanley , Andrew Jeffery , Porin Lai , linux-i2c@vger.kernel.org, openbmc@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/1] aspeed: i2c: add manual clock setup feature Message-ID: References: <20220530114056.8722-1-potin.lai.pt@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="K2Ju2BjYugMc6h9r" Content-Disposition: inline In-Reply-To: <20220530114056.8722-1-potin.lai.pt@gmail.com> X-Spam-Status: No, score=1.8 required=5.0 tests=BAYES_00,BULK_RE_SUSP_NTLD, DKIM_INVALID,DKIM_SIGNED,FROM_SUSPICIOUS_NTLD, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,PDS_OTHER_BAD_TLD, RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Spam-Level: * --K2Ju2BjYugMc6h9r Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, May 30, 2022 at 07:40:56PM +0800, Potin Lai wrote: > From: Porin Lai >=20 > Add properties for manual tuning i2c clock timing register. >=20 > * aspeed,i2c-manual-clk: Enable aspeed i2c clock manual setup > * aspeed,i2c-base-clk-div: Base Clock divisor (tBaseClk) > * aspeed,i2c-clk-high-cycle: Cycles of clock-high pulse (tClkHigh) > * aspeed,i2c-clk-low-cycle: Cycles of clock-low pulse (tClkLow) Do we need to add these to Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml ? >=20 > Signed-off-by: Potin Lai > --- > drivers/i2c/busses/i2c-aspeed.c | 55 ++++++++++++++++++++++++++++++++- > 1 file changed, 54 insertions(+), 1 deletion(-) >=20 > diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-asp= eed.c > index 67e8b97c0c95..1f4b5c4b5bf4 100644 > --- a/drivers/i2c/busses/i2c-aspeed.c > +++ b/drivers/i2c/busses/i2c-aspeed.c > @@ -898,6 +898,56 @@ static int aspeed_i2c_init_clk(struct aspeed_i2c_bus= *bus) > return 0; > } > =20 > +/* precondition: bus.lock has been acquired. */ > +static int aspeed_i2c_manual_clk_setup(struct aspeed_i2c_bus *bus) > +{ > + u32 divisor, clk_high, clk_low, clk_reg_val; > + > + if (device_property_read_u32(bus->dev, "aspeed,i2c-base-clk-div", > + &divisor) !=3D 0) { > + dev_err(bus->dev, "Could not read aspeed,i2c-base-clk-div\n"); > + return -EINVAL; > + } else if (divisor > ASPEED_I2CD_TIME_BASE_DIVISOR_MASK) { > + dev_err(bus->dev, "Invalid aspeed,i2c-base-clk-div: %u\n", > + divisor); > + return -EINVAL; > + } > + > + if (device_property_read_u32(bus->dev, "aspeed,i2c-clk-high-cycle", > + &clk_high) !=3D 0) { > + dev_err(bus->dev, "Could not read aspeed,i2c-clk-high-cycle\n"); > + return -EINVAL; > + } else if (clk_high > ASPEED_I2CD_TIME_SCL_REG_MAX) { > + dev_err(bus->dev, "Invalid aspeed,i2c-clk-high-cycle: %u\n", > + clk_high); > + return -EINVAL; > + } > + > + if (device_property_read_u32(bus->dev, "aspeed,i2c-clk-low-cycle", > + &clk_low) !=3D 0) { > + dev_err(bus->dev, "Could not read aspeed,i2c-clk-low-cycle\n"); > + return -EINVAL; > + } else if (clk_low > ASPEED_I2CD_TIME_SCL_REG_MAX) { > + dev_err(bus->dev, "Invalid aspeed,i2c-clk-low-cycle: %u\n", > + clk_low); > + return -EINVAL; > + } > + > + clk_reg_val =3D readl(bus->base + ASPEED_I2C_AC_TIMING_REG1); > + clk_reg_val &=3D (ASPEED_I2CD_TIME_TBUF_MASK | > + ASPEED_I2CD_TIME_THDSTA_MASK | > + ASPEED_I2CD_TIME_TACST_MASK); > + clk_reg_val |=3D (divisor & ASPEED_I2CD_TIME_BASE_DIVISOR_MASK) > + | ((clk_high << ASPEED_I2CD_TIME_SCL_HIGH_SHIFT) > + & ASPEED_I2CD_TIME_SCL_HIGH_MASK) > + | ((clk_low << ASPEED_I2CD_TIME_SCL_LOW_SHIFT) > + & ASPEED_I2CD_TIME_SCL_LOW_MASK); > + writel(clk_reg_val, bus->base + ASPEED_I2C_AC_TIMING_REG1); > + writel(ASPEED_NO_TIMEOUT_CTRL, bus->base + ASPEED_I2C_AC_TIMING_REG2); > + > + return 0; > +} > + > /* precondition: bus.lock has been acquired. */ > static int aspeed_i2c_init(struct aspeed_i2c_bus *bus, > struct platform_device *pdev) > @@ -908,7 +958,10 @@ static int aspeed_i2c_init(struct aspeed_i2c_bus *bu= s, > /* Disable everything. */ > writel(0, bus->base + ASPEED_I2C_FUN_CTRL_REG); > =20 > - ret =3D aspeed_i2c_init_clk(bus); > + if (of_property_read_bool(pdev->dev.of_node, "aspeed,i2c-manual-clk")) > + ret =3D aspeed_i2c_manual_clk_setup(bus); > + else > + ret =3D aspeed_i2c_init_clk(bus); > if (ret < 0) > return ret; > =20 > --=20 > 2.17.1 >=20 --=20 Patrick Williams --K2Ju2BjYugMc6h9r Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEBGD9ii4LE9cNbqJBqwNHzC0AwRkFAmKWHGYACgkQqwNHzC0A wRmniw//ReljGNV+Q4CIui/96gQHz615me2pPG7mqsYlvAJHQDt4GDYYEcJzl0l4 KqYKK03DW5c7UGsk2MddvPOdHGLFt9Qxb8aqh+cTelPjzrezByNBYtuQC6zs+3Si VLYNjz1cXsrRPuVnsKhgEgCMpALC+6Js3luUMDBpW1FpZ83FIwQFlLk7oit9oHN2 eZSQiQYlnsUx9ZV5BrI8VALrhNtbyfyC4sAMIeuIEtjCbgOv6LUIQl1PCFZOWM9O fsaLJhuaulKfHHYPrumt6VlFgXT4M7Bn+KvOoHGK36HmByKZVjy7K9mFmhsxrUXq 6TeQzn0vixKO4myXxO/SbkVdRxquKCnFXicNT1BFt/P2M6HJ4GxjVaTbAptWNRHy QXSmI8py77yctldXfk2mPGGfhQ+KkuiNCtHJVCARMY93CQA0nYhLLrDNRhWx9wjp GGvCk/VZhmfr1TVeH15Lqxh1h+xVE3NItVumVYnu0xSccOwIRf5NOtDJc9MLXB1H Q5F4bSJNd5wgb3V/ULVqaxpys62jo7p+Ks0TSULVE8hJ7FfC8YMqJP7z8oPvmLoU u97WB7urZpQGjjTKZlPzFpPlSp1VjM3GV154FexUGKNMnASZZU8sdC5brXAotMsa BtSeHG788WBtHi6PWqSuSaqy9tyqUCSm/Je90yJ5PvX4ULfhAh0= =Z5+f -----END PGP SIGNATURE----- --K2Ju2BjYugMc6h9r--