From patchwork Mon Aug 6 15:17:33 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lee Jones X-Patchwork-Id: 10547 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id DAF2F23F3F for ; Mon, 6 Aug 2012 15:17:49 +0000 (UTC) Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by fiordland.canonical.com (Postfix) with ESMTP id CE89EA18445 for ; Mon, 6 Aug 2012 15:17:49 +0000 (UTC) Received: by wibhn17 with SMTP id hn17so1524708wib.17 for ; Mon, 06 Aug 2012 08:17:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-forwarded-to:x-forwarded-for:delivered-to:received-spf:from:to:cc :subject:date:message-id:x-mailer:x-gm-message-state; bh=uzjdt6Kbp6VxbkTbNum8xFwiLIT8wAQ8gpL1R9iEk24=; b=Botd3x8hoFkUxEkR/aj9ub4YJuVHoq+zRdMBM2iLQpMYS0JGYxFKbpfK2SSrVaNcRu bue/Gi02hKS+wH/6qte/MjX43mEDhzq/HupZUpMECRepFY3lZ4N6qFbFvDCIe6clVIkb Re6sQGMwQIP+1RWf4A66svUNCheDm98X5sOP4KYBOdGx5w5j23VhdE2M43kjFYfP1EWm cKl0RrsBxB8bHeJmOW6XjdoYErcUkHQR8ofC8rIQyngxDPKt/D9Sm4Z9sfipTHrkXDDQ tcR/noJNUu7F727vDH5GdYqbmzPTHJ2G5KBjQG75BnGUoKApcbWv39soR2KKP2mo0hTZ rjhQ== Received: by 10.50.46.132 with SMTP id v4mr5649185igm.25.1344266268993; Mon, 06 Aug 2012 08:17:48 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.50.87.40 with SMTP id u8csp446811igz; Mon, 6 Aug 2012 08:17:46 -0700 (PDT) Received: by 10.216.244.203 with SMTP id m53mr6088763wer.46.1344266263830; Mon, 06 Aug 2012 08:17:43 -0700 (PDT) Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by mx.google.com with ESMTPS id g6si22313810wee.105.2012.08.06.08.17.41 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 06 Aug 2012 08:17:43 -0700 (PDT) Received-SPF: neutral (google.com: 74.125.82.50 is neither permitted nor denied by best guess record for domain of lee.jones@linaro.org) client-ip=74.125.82.50; Authentication-Results: mx.google.com; spf=neutral (google.com: 74.125.82.50 is neither permitted nor denied by best guess record for domain of lee.jones@linaro.org) smtp.mail=lee.jones@linaro.org Received: by wgbds11 with SMTP id ds11so2700593wgb.31 for ; Mon, 06 Aug 2012 08:17:41 -0700 (PDT) Received: by 10.216.132.135 with SMTP id o7mr5402849wei.6.1344266261622; Mon, 06 Aug 2012 08:17:41 -0700 (PDT) Received: from localhost.localdomain (cpc1-aztw13-0-0-cust473.18-1.cable.virginmedia.com. [77.102.241.218]) by mx.google.com with ESMTPS id l6sm16007886wiz.4.2012.08.06.08.17.40 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 06 Aug 2012 08:17:41 -0700 (PDT) From: Lee Jones To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: STEricsson_nomadik_linux@list.st.com, linus.walleij@stericsson.com, arnd@arndb.de, w.sang@pengutronix.de, Lee Jones , linux-i2c@vger.kernel.org Subject: [PATCH 1/1] i2c: Add default configuration into the Nomadik I2C driver. Date: Mon, 6 Aug 2012 16:17:33 +0100 Message-Id: <1344266253-14050-1-git-send-email-lee.jones@linaro.org> X-Mailer: git-send-email 1.7.9.5 X-Gm-Message-State: ALoCoQnbFpWAkrdaJf/97ZYoLewRB1pIlRwcWHHMda6xoy5swlO/zfTrnq/lub3FSWY115vdaGPn At this moment in time there is only one known configuration for the Nomadik I2C driver. By not holding that configuration in the driver adds some unnecessary overhead in platform code. The configuration as already been removed from platform code, this patch checks for any over-riding configurations. If there aren't any, the default is used. Cc: linux-i2c@vger.kernel.org Acked-by: srinidhi kasagar Acked-by: Linus Walleij Signed-off-by: Lee Jones --- drivers/i2c/busses/i2c-nomadik.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/drivers/i2c/busses/i2c-nomadik.c b/drivers/i2c/busses/i2c-nomadik.c index 5e6f1ee..e42e526 100644 --- a/drivers/i2c/busses/i2c-nomadik.c +++ b/drivers/i2c/busses/i2c-nomadik.c @@ -350,10 +350,6 @@ static void setup_i2c_controller(struct nmk_i2c_dev *dev) i2c_clk = clk_get_rate(dev->clk); - /* fallback to std. mode if machine has not provided it */ - if (dev->cfg.clk_freq == 0) - dev->cfg.clk_freq = 100000; - /* * The spec says, in case of std. mode the divider is * 2 whereas it is 3 for fast and fastplus mode of @@ -911,20 +907,32 @@ static const struct i2c_algorithm nmk_i2c_algo = { .functionality = nmk_i2c_functionality }; +static struct nmk_i2c_controller u8500_i2c = { + /* + * Slave data setup time; 250ns, 100ns, and 10ns, which + * is 14, 6 and 2 respectively for a 48Mhz i2c clock. + */ + .slsu = 0xe, + .tft = 1, /* Tx FIFO threshold */ + .rft = 8, /* Rx FIFO threshold */ + .clk_freq = 400000, /* fast mode operation */ + .timeout = 200, /* Slave response timeout(ms) */ + .sm = I2C_FREQ_MODE_FAST, +}; + static atomic_t adapter_id = ATOMIC_INIT(0); static int nmk_i2c_probe(struct amba_device *adev, const struct amba_id *id) { int ret = 0; - struct nmk_i2c_controller *pdata = - adev->dev.platform_data; + struct nmk_i2c_controller *pdata = pdev->dev.platform_data; struct nmk_i2c_dev *dev; struct i2c_adapter *adap; - if (!pdata) { - dev_warn(&adev->dev, "no platform data\n"); - return -ENODEV; - } + if (!pdata) + /* No i2c configuration found, using the default. */ + pdata = &u8500_i2c; + dev = kzalloc(sizeof(struct nmk_i2c_dev), GFP_KERNEL); if (!dev) { dev_err(&adev->dev, "cannot allocate memory\n");