From patchwork Mon Dec 18 21:57:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 850437 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z0vzq2zhcz9sCZ for ; Tue, 19 Dec 2017 08:58:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965379AbdLRV6M (ORCPT ); Mon, 18 Dec 2017 16:58:12 -0500 Received: from sauhun.de ([88.99.104.3]:40900 "EHLO pokefinder.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965315AbdLRV6J (ORCPT ); Mon, 18 Dec 2017 16:58:09 -0500 Received: from localhost (p54B33BFB.dip0.t-ipconnect.de [84.179.59.251]) by pokefinder.org (Postfix) with ESMTPSA id 4B2392C631E; Mon, 18 Dec 2017 22:58:08 +0100 (CET) From: Wolfram Sang To: linux-i2c@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org, Yoshihiro Shimoda , Wolfram Sang Subject: [RFC PATCH 3/7] i2c: sh_mobile: require setup callback Date: Mon, 18 Dec 2017 22:57:58 +0100 Message-Id: <20171218215802.28591-4-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171218215802.28591-1-wsa+renesas@sang-engineering.com> References: <20171218215802.28591-1-wsa+renesas@sang-engineering.com> Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Require the setup callback and move the frequency calculation into it. This is in preparation for supporting multiple formulas. Signed-off-by: Wolfram Sang --- drivers/i2c/busses/i2c-sh_mobile.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c index a3a377a10fa789..88af45225003a5 100644 --- a/drivers/i2c/busses/i2c-sh_mobile.c +++ b/drivers/i2c/busses/i2c-sh_mobile.c @@ -771,15 +771,17 @@ static int sh_mobile_i2c_r8a7740_workaround(struct sh_mobile_i2c_data *pd) iic_wr(pd, ICCR, ICCR_TRS); udelay(10); - return 0; + return sh_mobile_i2c_init(pd); } static const struct sh_mobile_dt_config default_dt_config = { .clks_per_count = 1, + .setup = sh_mobile_i2c_init, }; static const struct sh_mobile_dt_config fast_clock_dt_config = { .clks_per_count = 2, + .setup = sh_mobile_i2c_init, }; static const struct sh_mobile_dt_config r8a7740_dt_config = { @@ -882,15 +884,10 @@ static int sh_mobile_i2c_probe(struct platform_device *dev) config = of_device_get_match_data(&dev->dev); if (config) { pd->clks_per_count = config->clks_per_count; - - if (config->setup) { - ret = config->setup(pd); - if (ret) - return ret; - } + ret = config->setup(pd); + } else { + ret = sh_mobile_i2c_init(pd); } - - ret = sh_mobile_i2c_init(pd); if (ret) return ret;