Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp950350pxb; Wed, 3 Mar 2021 22:14:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJy2zUteEhHCdCFc8FQn3DbuXKihajZfEMZKBxBLxLPkkg9dm8QnqMI3wWoP0CvNEO0KA3dJ X-Received: by 2002:a17:906:9bc8:: with SMTP id de8mr2492350ejc.470.1614838448245; Wed, 03 Mar 2021 22:14:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614838448; cv=none; d=google.com; s=arc-20160816; b=RZ3EVI1dM7p0XYaJ4BC93IFTVcSWQ4eip+EO+C0ppvFp6N/7hwOLw+bKE5rNC9CaCO 21K2LqLf+Qk0mSy6fVosLOhal1j1d9du7BMk4fyEsUpmLf1uKcOLg5bzKuZ0N1k+Llv2 8YFPhPItEHWOmICyl1dbp5C2oHWKS0p/sz+2GJquX2jzKQMyA2A0uP/DelICb9Tht78L wgoJWTV4b3WqWzo45067ShConjmDpV2ddhvTjBu+ifQDa2QE+MI9U+icE1AZ1rroKBUY 8Hn/YlPc9brk/Aoc504eUAKCCW1yQgP3YgBT+yCrw2dsxYBW3DO8ZobQZNA8nCSSk2BW /D4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=TKcFkhM8Mf5DiRPH37Ng7ifpctLWMXPxIAc63q2YCdc=; b=d/fXJaXQRreyESyEX2hDTFM1f7V0419e8CexzV0jXC3U6KB4fSQkXknoi43ztMzln1 mH32fNe+BBBT0BO22okPVOkY2q2hB/4/ybLE5Xu8HPGHss250kTyccm/PbACx/Cuwzwx ZfybpSwdxVmMEkIzfSFD0wX+2LSmWpZU1HW+75L49Ps66/le+6YppdO1qQcsw0ChiANg u8epl61AHt4CUuH8yCryRof3+CKDJsdLh7+ep96WN3rrMi/kKVHIrVSKSRdRZoCVtI83 BVi71/NT9j0j+UUGXHgs6qRbV5z7+DrX7ZrR10Y4NAnbEvUUZia13A/gyREyxpZjxpGY zh4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=STh1OiHi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z15si16863768ejr.734.2021.03.03.22.13.45; Wed, 03 Mar 2021 22:14:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=STh1OiHi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1442292AbhCBLqo (ORCPT + 99 others); Tue, 2 Mar 2021 06:46:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55894 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347523AbhCBLbg (ORCPT ); Tue, 2 Mar 2021 06:31:36 -0500 Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E1D8C06178C for ; Tue, 2 Mar 2021 03:30:32 -0800 (PST) Received: by mail-pg1-x536.google.com with SMTP id t25so13641588pga.2 for ; Tue, 02 Mar 2021 03:30:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=TKcFkhM8Mf5DiRPH37Ng7ifpctLWMXPxIAc63q2YCdc=; b=STh1OiHiN3RIX3HBgcV9cNh+gyrXDrSjs+yTS/x+kts2F/gPdGop3OxANQsWwz1PTv JTnRE9eMpVVbVq9og+Q5gdkjwX+2PuRATcx+sYWgU5KIYCnXmtL52ehxz79ifFORxLgs eYUjOtMlD8m+37T0fPp+NqB1Qcq07p8BTq5gI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=TKcFkhM8Mf5DiRPH37Ng7ifpctLWMXPxIAc63q2YCdc=; b=YHJsjC18ASedCDoSEFZG3KjSKb6p9RmVqVJdQm2rHrtAXbExGivwQbr3gKqcAFnJ+i snMRl0NJMw0EA+y+h1jd/PpRYviI7bcrfwa2R0Bw5j6BgP7uyOlPGmtmwZ0jAbjIeRB0 Ud2mpEjCKuXYU6oP+ObIRjDQaScbTVcRd36scvQYKOqPr/UzIGA5iPMotOyil9FJIeT9 iTVvjKe765hdofg6VrrmEBk0UabI/cSXnS/I0eZtGdNlhAnNmRbf6aS96CyFhvW0AncD xkopqvjmAdXVSfHzP7O/ktRfSc5xFNmCvv1O9EZi5y6+/a9kOeXg3f/pqqxf7avr6TLD KKAg== X-Gm-Message-State: AOAM531uEiHduyYf5Ob4Gu8FUfXBmKynme/aE9heZ7S+VadYbmprMkrC fN1ip8n6/GpSsU96x8b35ZRZzP/kRophl4sdUqGtig== X-Received: by 2002:a63:515a:: with SMTP id r26mr17916655pgl.257.1614684632012; Tue, 02 Mar 2021 03:30:32 -0800 (PST) MIME-Version: 1.0 References: <1612348525-13364-1-git-send-email-qii.wang@mediatek.com> In-Reply-To: <1612348525-13364-1-git-send-email-qii.wang@mediatek.com> From: Ikjoon Jang Date: Tue, 2 Mar 2021 19:30:21 +0800 Message-ID: Subject: Re: [PATCH] i2c: mediatek: Get device clock-stretch time via dts To: qii.wang@mediatek.com Cc: wsa@the-dreams.de, srv_heupstream , leilk.liu@mediatek.com, open list , "moderated list:ARM/Mediatek SoC support" , linux-i2c@vger.kernel.org, Matthias Brugger , "moderated list:ARM/Mediatek SoC support" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Qii, On Wed, Feb 3, 2021 at 6:43 PM wrote: > > From: Qii Wang > > tSU,STA/tHD,STA/tSU,STOP maybe out of spec due to device > clock-stretching or circuit loss, we could get device > clock-stretch time from dts to adjust these parameters > to meet the spec via EXT_CONF register. > > Signed-off-by: Qii Wang > --- > drivers/i2c/busses/i2c-mt65xx.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/i2c/busses/i2c-mt65xx.c b/drivers/i2c/busses/i2c-mt65xx.c > index 2ffd2f3..47c7255 100644 > --- a/drivers/i2c/busses/i2c-mt65xx.c > +++ b/drivers/i2c/busses/i2c-mt65xx.c > @@ -245,6 +245,7 @@ struct mtk_i2c { > u16 irq_stat; /* interrupt status */ > unsigned int clk_src_div; > unsigned int speed_hz; /* The speed in transfer */ > + unsigned int clock_stretch_ns; > enum mtk_trans_op op; > u16 timing_reg; > u16 high_speed_reg; > @@ -607,7 +608,8 @@ static int mtk_i2c_check_ac_timing(struct mtk_i2c *i2c, > else > clk_ns = sample_ns / 2; > > - su_sta_cnt = DIV_ROUND_UP(spec->min_su_sta_ns, clk_ns); > + su_sta_cnt = DIV_ROUND_UP(spec->min_su_sta_ns + i2c->clock_stretch_ns, > + clk_ns); > if (su_sta_cnt > max_sta_cnt) > return -1; > > @@ -1171,6 +1173,8 @@ static int mtk_i2c_parse_dt(struct device_node *np, struct mtk_i2c *i2c) > if (i2c->clk_src_div == 0) > return -EINVAL; > > + of_property_read_u32(np, "clock-stretch-ns", &i2c->clock_stretch_ns); > + I think this new property "clock-stretch-ns" is for the same purpose of "i2c-scl-falling-time-ns" + "i2c-scl-rising-time-ns" defined in Documentation/devicetree/bindings/i2c/i2c.txt? > i2c->have_pmic = of_property_read_bool(np, "mediatek,have-pmic"); > i2c->use_push_pull = > of_property_read_bool(np, "mediatek,use-push-pull"); > -- > 1.9.1 > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek