From patchwork Sun May 29 21:53:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 68804 Delivered-To: patch@linaro.org Received: by 10.140.92.199 with SMTP id b65csp1113446qge; Sun, 29 May 2016 14:55:54 -0700 (PDT) X-Received: by 10.66.164.195 with SMTP id ys3mr40674944pab.97.1464558953932; Sun, 29 May 2016 14:55:53 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k63si31766359pfj.185.2016.05.29.14.55.53; Sun, 29 May 2016 14:55:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932792AbcE2Vzs (ORCPT + 30 others); Sun, 29 May 2016 17:55:48 -0400 Received: from mail-wm0-f42.google.com ([74.125.82.42]:38735 "EHLO mail-wm0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932618AbcE2Vy0 (ORCPT ); Sun, 29 May 2016 17:54:26 -0400 Received: by mail-wm0-f42.google.com with SMTP id n129so50784494wmn.1 for ; Sun, 29 May 2016 14:54:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=6ZofO8QdgnoHR91stibZhh8NTRVpffXUylqbjqjO4Wg=; b=wcLVoo9JICDMzL7cf4uKVx8dysEGdyHrxljH29RoTHU+gDKaA6E4Tvtz19AUs3I5oR SiZSYYc30MKGS6S9ESZuU09D8lIkRU+ZWjCrh+arfHpA5McdpnP5/CJD/RlEDcFEw+a6 mvn1xKLuWJ7ozpk9OCDO67oYOk7cgpBcpJmZfkgW8DHIfSzMtNgf0nqDWvO9+SHc0F5M 5bhg1VaXzVM0gO00UEgw+WKEIZhtNsXBEIhkJ5bfdoBPm/G7Klcvum0BdB/BUUt86S4b EQiQ2lRF++QmcIT65MH3zeq6YRVQ2SXOb/znhRW+vjCnduP9IRGOdxiyrPYsr+Z+C7kF dHmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=6ZofO8QdgnoHR91stibZhh8NTRVpffXUylqbjqjO4Wg=; b=YYmPvzS66TkmXhczjtGAMRUH+kgcUca0nK88HGPK4dzWAvjCB7L2gxz5KwHyU4nQsm VR7tBPxjaq8HbQCLIOHt0l/2ClBPL0r4pcKLa8J9lj1YYg769fNwxdsK3P+cjCeSP35z np+ZyfWEdj6kJh+r5oupfrxZqvQUX0KK8k89aq2WSdzl3SKT12FsPS0Hxu4HkfbHl0TE atxbHosR2B6rRfrTVX1JWnjOPFtPPaPa6NyeNQQwhDNlClCO5oQOwg1uGnrn05RTgNkr /zt6HDZd9kmJrIUwn3zZZGM2IRgHabjzFpc1Dwx9zfcVlkTzumxC1BOuUJoFANGi2u/d WXtw== X-Gm-Message-State: ALyK8tLXUKjl7APCvPIz3Z9F7l/QOpjo8z7f4XuHYM2O/E5NuwsvdLkg5KCUpkLjgAOoi+VH X-Received: by 10.28.169.2 with SMTP id s2mr8010742wme.78.1464558864817; Sun, 29 May 2016 14:54:24 -0700 (PDT) Received: from bgdev-debian.lan (jua06-1-82-242-157-225.fbx.proxad.net. [82.242.157.225]) by smtp.gmail.com with ESMTPSA id a128sm20490367wme.16.2016.05.29.14.54.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 29 May 2016 14:54:24 -0700 (PDT) From: Bartosz Golaszewski To: Wolfram Sang , linux-i2c , LKML , Andrew Lunn , Srinivas Kandagatla , Maxime Ripard , GregKH Cc: Bartosz Golaszewski Subject: [PATCH 11/14] eeprom: at24: add the at24cs series to the list of supported devices Date: Sun, 29 May 2016 23:53:49 +0200 Message-Id: <1464558832-2262-12-git-send-email-bgolaszewski@baylibre.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1464558832-2262-1-git-send-email-bgolaszewski@baylibre.com> References: <1464558832-2262-1-git-send-email-bgolaszewski@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The infrastructure for reading of the factory-programmed serial number for at24cs EEPROM series is now in place. Add the chips that are actually equipped with the serial number memory area to the list of supported devices. The chips from the at24cs family have two memory areas - a regular read-write block and a read-only area containing the serial number. The latter is visible on a different slave address (the address of the rw memory block + 0x08). In order to access both blocks the user needs to instantiate a regular at24c device for the rw block address and a corresponding at24cs device on the serial number block address. Signed-off-by: Bartosz Golaszewski --- drivers/misc/eeprom/at24.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) -- 2.7.4 diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c index 29bbdad..0b5240d 100644 --- a/drivers/misc/eeprom/at24.c +++ b/drivers/misc/eeprom/at24.c @@ -134,16 +134,34 @@ static const struct i2c_device_id at24_ids[] = { { "24c00", AT24_DEVICE_MAGIC(128 / 8, AT24_FLAG_TAKE8ADDR) }, /* old variants can't be handled with this generic entry! */ { "24c01", AT24_DEVICE_MAGIC(1024 / 8, 0) }, + { "24cs01", AT24_DEVICE_MAGIC(128 / 8, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, { "24c02", AT24_DEVICE_MAGIC(2048 / 8, 0) }, + { "24cs02", AT24_DEVICE_MAGIC(128 / 8, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, /* spd is a 24c02 in memory DIMMs */ { "spd", AT24_DEVICE_MAGIC(2048 / 8, AT24_FLAG_READONLY | AT24_FLAG_IRUGO) }, { "24c04", AT24_DEVICE_MAGIC(4096 / 8, 0) }, + { "24cs04", AT24_DEVICE_MAGIC(128 / 8, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, /* 24rf08 quirk is handled at i2c-core */ { "24c08", AT24_DEVICE_MAGIC(8192 / 8, 0) }, + { "24cs08", AT24_DEVICE_MAGIC(128 / 8, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, { "24c16", AT24_DEVICE_MAGIC(16384 / 8, 0) }, + { "24cs16", AT24_DEVICE_MAGIC(128 / 8, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, { "24c32", AT24_DEVICE_MAGIC(32768 / 8, AT24_FLAG_ADDR16) }, + { "24cs32", AT24_DEVICE_MAGIC(128 / 8, + AT24_FLAG_ADDR16 | + AT24_FLAG_SERIAL | + AT24_FLAG_READONLY) }, { "24c64", AT24_DEVICE_MAGIC(65536 / 8, AT24_FLAG_ADDR16) }, + { "24cs64", AT24_DEVICE_MAGIC(128 / 8, + AT24_FLAG_ADDR16 | + AT24_FLAG_SERIAL | + AT24_FLAG_READONLY) }, { "24c128", AT24_DEVICE_MAGIC(131072 / 8, AT24_FLAG_ADDR16) }, { "24c256", AT24_DEVICE_MAGIC(262144 / 8, AT24_FLAG_ADDR16) }, { "24c512", AT24_DEVICE_MAGIC(524288 / 8, AT24_FLAG_ADDR16) },