Received: by 2002:a05:6a10:87d6:0:0:0:0 with SMTP id g22csp846644pxr; Mon, 11 Apr 2022 08:37:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzz2LnY2KCV06Vwa80Xi4OTJzzLjkk68KmuO3UPNmcLIr407mn6eM0S5Cr4DFDGs50Zd49b X-Received: by 2002:a05:6871:99:b0:d6:ac91:d53c with SMTP id u25-20020a056871009900b000d6ac91d53cmr13599244oaa.10.1649691424590; Mon, 11 Apr 2022 08:37:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649691424; cv=none; d=google.com; s=arc-20160816; b=rQGSjE0tgVJgm54kNtJ+ROTunnamZVmyr+qSd8B34s9y2u3aEphCo8OZQeAT9hHkhs THdDasq932ipSxk//Ovp6Bh7Dyier5EiTdvwCKIwpl+MR9WkECu489WXuAd4bG/vEPZL NfTOHMnlRzO7ng5h8NbKimF9i5mRhez7PNU5cg3PipPx5jcWq70Zk2f9gUKlPNo2Eq58 4SFuhg0mxTWmqchR29IbVbuWB6NALxxQyaoXAhQiiKxHTrliSqMD8rwNvf9XwEQMhGHz LTcaCUTI7v4XVpOuGn1B8k8fl4m7WB12q8LspDFbc/w8ZPovZeem60Izf3QVNZwoT26I p0uQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :organization:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:dkim-signature; bh=uISV79NvLNC/cTXlwSWYKI9FmQgaA5KuUdHffG+BjtM=; b=j668K8ohHru9RJcRrQa823tUfJD5r5ODXpeIUtaIaF/Qq/fyuSomKlV/m89Q4lHupN d5oob7l7jWmchu4QOVnqiH3iQJbmadu9Q1bC4vcW4P3P0JqRRDVGQSisUqw5yWmIZviv 7EQWunNhGdd55aCZl2RMWPCiFNudrIKiQaowtuaEIKx/PALA1uyg37+a3jDRh/Om9QMC kc+Hf85/VIOFpj8mqIP99V1NghB+BY1faQQamG0i5SFHxGwwo/9h2s0Ejay4ZlNrthbF 0Topu+CC3WPUpJoSHb38xwe5yt8M0nJbxkWwaTq+1iEDeDnbVXdinaCqLrEF47O6T7br Z/IQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20210112.gappssmtp.com header.s=20210112 header.b=xtJTG2Ay; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s28-20020a056870249c00b000e2b961da19si2919009oaq.211.2022.04.11.08.36.50; Mon, 11 Apr 2022 08:37:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20210112.gappssmtp.com header.s=20210112 header.b=xtJTG2Ay; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245437AbiDKHdh (ORCPT + 99 others); Mon, 11 Apr 2022 03:33:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44650 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245507AbiDKHcx (ORCPT ); Mon, 11 Apr 2022 03:32:53 -0400 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A3B19BF45 for ; Mon, 11 Apr 2022 00:30:39 -0700 (PDT) Received: by mail-wm1-x329.google.com with SMTP id l9-20020a05600c4f0900b0038ccd1b8642so8450760wmq.0 for ; Mon, 11 Apr 2022 00:30:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:organization:in-reply-to :content-transfer-encoding; bh=uISV79NvLNC/cTXlwSWYKI9FmQgaA5KuUdHffG+BjtM=; b=xtJTG2AyZ6TVnMvpiP9AMoK5zkE2H+zCJg/Qzf9fsJJ5h/R7PHZJ/Vh+O78/tzzdav TsCBWxEN2UPcJNv8FVsNrnIzbzW/I0SoDjM3UCIDH+I5xr8VFlHXhKrJ+mznSvMWKP8v jVALcDYUM8PZRLkZlr3FiizhOmdQv69f8PbY/FhL1dzfnHjptOlVuwvABUbYk4KbrFFD jDLP3/zMWYap/myIa+OYEq2OeT44nB18NGMtSGz028/ppvYUV3xjKWoMnCdtemqITLa1 aZG8MnDrSLBMSF7OEhbXsSqKsdSxdHA0FYztkyicfofIZbUe7XNoaZaSWCc3lA2vAwhS UGXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:organization:in-reply-to :content-transfer-encoding; bh=uISV79NvLNC/cTXlwSWYKI9FmQgaA5KuUdHffG+BjtM=; b=7w4IB0ej9JcijJ8hkQydApsptLsucxcncK3tyrqTBHkK2uBjU47R5A5ZfntKWRF3a+ yCFpYa8Dun2bUI8yor/7Rr0PTjNGvil9Prphh7qTd2DuzKB5WBqo/pRSN81vINjJIKQj NaWywm167OLf/8QMAZQqKTCpif13VEOnvww9qvgmz00/8nmvA1GWRl+VU1akrsbyTRT5 uYSpF8fuHuMRqGrKE774RMtBjzxFxB/A9QNWfF8IOjc1pg7qBn+mue87HHA/hzYPya9t bwXgDQdGDFjLWhD5kUdolgZlK3RGLRrUFTi/k3O4U3Ju4vRHnNtw0CwBwdzN3hg/TV5N cJbg== X-Gm-Message-State: AOAM533KEivaO5sHV7twH623iJOaKr5eXf5MGV1tu4wycWvluXU5nF9Y 4m7fwEdVNNH4DeKwO6zEhkGo+w== X-Received: by 2002:a7b:c155:0:b0:38e:b840:c99e with SMTP id z21-20020a7bc155000000b0038eb840c99emr5336807wmi.201.1649662238098; Mon, 11 Apr 2022 00:30:38 -0700 (PDT) Received: from ?IPV6:2001:861:44c0:66c0:d1:e096:d183:1bc5? ([2001:861:44c0:66c0:d1:e096:d183:1bc5]) by smtp.gmail.com with ESMTPSA id n8-20020a5d5888000000b002079f95ca87sm5593940wrf.68.2022.04.11.00.30.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 11 Apr 2022 00:30:37 -0700 (PDT) Message-ID: <7458df77-2721-71a5-893f-8247f05be765@baylibre.com> Date: Mon, 11 Apr 2022 09:30:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v2 0/2] Ensure High and Low periods of SCL are correct Content-Language: en-US To: Lucas Tanure , Kevin Hilman , Jerome Brunet , Martin Blumenstingl Cc: linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org References: <20220409164334.157664-1-tanure@linux.com> From: Neil Armstrong Organization: Baylibre In-Reply-To: <20220409164334.157664-1-tanure@linux.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 Hi, On 09/04/2022 18:43, Lucas Tanure wrote: > The default duty cycle of 33% is less than the required > by the I2C specs for the LOW period of the SCL clock at > 100KHz bus speed. > > So, for 100Khz or less, use 50%H/50%L duty cycle, and > for the clock above 100Khz, use 40%H/60%L duty cycle. > That ensures the low period of SCL is always more than > the minimum required by the specs at any given frequency. > > I did a few measures on the Khadas Vim3 board: > > i2c_AO (i2c@5000): > > Before the patchset, I got: > - 100KHz: 3.338us HIGH, 6.746us LOW, 33%/67%, Freq 99KHz (Not Valid tHIGH < 4.0us) > - 400KHz: 860ns HIGH, 1.734us LOW, 33.15%/62.85%, Freq 385.505KHz (Valid) > - 1000KHz: 362ns HIGH, 732ns LOW, 33.09%/66.91%, Freq 914.077KHz (Valid) > > With the patchset > - 100KHz: 4.952us HIGH, 5.134us LOW, 49%/51%, Freq 99KHz (Valid) > - 400KHz: 966ns HIGH, 1.628us LOW, 37.24%/62.76%, Freq 385.505KHz (Valid) > - 1000KHz: 372ns HIGH, 720ns LOW, 34.07%/65.93%, Freq 915.741KHz (Valid) > > i2c3 (i2c@1c000): > > Before the patchset, I got: > - 100KHz: 3.348us HIGH, 6.704us LOW, 33%/67%, Freq 99.5KHz (Not Valid tHIGH < 4.0us) > - 400KHz: 864ns HIGH, 1.69us LOW, 33.83%/62.17%, Freq 391.543KHz (Valid) > - 1000KHz: 360ns HIGH, 690ns LOW, 34.29%/65.71%, Freq 952.381KHz (Valid) > > With the patchset > - 100KHz: 4.958us HIGH, 5.092us LOW, 49%/51%, Freq 99KHz (Valid) > - 400KHz: 970ns HIGH, 1.582us LOW, 38%/62%, Freq 391.85KHz (Valid) > - 1000KHz: 370ns HIGH, 680ns LOW, 35.24%/64.76%, Freq 952.57KHz (Valid) > > v2 changelog: > - Keep the previous calculation for Meson6 > - Use I2C_MAX_STANDARD_MODE_FREQ > - move the comment before the if() > - use FIELD_PREP for setting div_l > - Drop removal of meson_i2c_data > > Previous versions: > V1: https://lkml.org/lkml/2022/3/26/109 > > Lucas Tanure (2): > i2c: meson: Use _SHIFT and _MASK for register definitions > i2c: meson: Use 50% duty cycle for I2C clock > > drivers/i2c/busses/i2c-meson.c | 111 ++++++++++++++++++++++++--------- > 1 file changed, 82 insertions(+), 29 deletions(-) > Thanks a lot for the timings ! I think it's ok to be applied, Neil