From patchwork Mon Feb 12 11:18:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Poehlmann X-Patchwork-Id: 871987 X-Patchwork-Delegate: bartekgola@gmail.com 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 3zg37h6BXDz9t34 for ; Mon, 12 Feb 2018 22:18:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754106AbeBLLSX (ORCPT ); Mon, 12 Feb 2018 06:18:23 -0500 Received: from mail.izt-labs.de ([82.135.25.162]:55695 "EHLO mail.izt-labs.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754091AbeBLLSW (ORCPT ); Mon, 12 Feb 2018 06:18:22 -0500 Received: from localhost (unknown [127.0.0.1]) by mail.izt-labs.de (Postfix) with ESMTP id 9542CA5B62; Mon, 12 Feb 2018 11:18:21 +0000 (UTC) Received: from mail.izt-labs.de ([127.0.0.1]) by localhost (iztmail-dmz.izt-technologies.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 18533-07; Mon, 12 Feb 2018 12:18:12 +0100 (CET) Received: from mail.izt.loc (mail.izt.loc [10.61.1.130]) by mail.izt-labs.de (Postfix) with ESMTP id C4F4C7371E; Mon, 12 Feb 2018 12:18:12 +0100 (CET) Received: from pp184.izt.loc (pp184.izt.loc [10.61.16.184]) (Authenticated sender: phn) by mail.izt.loc (Postfix) with ESMTP id BA7A81D16F; Mon, 12 Feb 2018 12:18:12 +0100 (CET) Date: Mon, 12 Feb 2018 12:18:12 +0100 From: Johannes Poehlmann To: Bartosz Golaszewski Cc: Johannes =?iso-8859-1?q?P=F6hlmann?= , linux-i2c Subject: [PATCH V3] eeprom: at24: support second page of ST M24M01-D* Message-ID: <20180212111812.nsiy6rpkbpwuckc6@pp184.izt.loc> MIME-Version: 1.0 Content-Disposition: inline User-Agent: NeoMutt/20170421 (1.8.2) X-Virus-Scanned: amavisd-new at izt-technologies.de Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org The M24M01-D* eeproms are in effect 2 eeproms under 2 I2C addresses: 1. a standard 1Mbit eeprom (driver model 24c1024 is working) 2. a 256 Byte write lockable "ID page". As the ID page demands 2 byte addresses, the 24c02 driver model can not be used. So a new model 24cm02 is introduced. In the device tree, refer to the ID page of the eeprom as compatible = "st,m24m01-d", "atmel,24cm02"; Signed-off-by: Johannes Poehlmann --- Documentation/devicetree/bindings/eeprom/at24.txt | 1 + drivers/misc/eeprom/at24.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/eeprom/at24.txt b/Documentation/devicetree/bindings/eeprom/at24.txt index 1812c84..c62c960 100644 --- a/Documentation/devicetree/bindings/eeprom/at24.txt +++ b/Documentation/devicetree/bindings/eeprom/at24.txt @@ -10,6 +10,7 @@ Required properties: "atmel,24cs01", "atmel,24c02", "atmel,24cs02", + "atmel,24cm02", "atmel,24mac402", "atmel,24mac602", "atmel,spd", diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c index 01f9c49..5afeb1a 100644 --- a/drivers/misc/eeprom/at24.c +++ b/drivers/misc/eeprom/at24.c @@ -146,6 +146,7 @@ AT24_CHIP_DATA(at24_data_24c01, 1024 / 8, 0); AT24_CHIP_DATA(at24_data_24cs01, 16, AT24_FLAG_SERIAL | AT24_FLAG_READONLY); AT24_CHIP_DATA(at24_data_24c02, 2048 / 8, 0); +AT24_CHIP_DATA(at24_data_24cm02, 2048 / 8, AT24_FLAG_ADDR16); AT24_CHIP_DATA(at24_data_24cs02, 16, AT24_FLAG_SERIAL | AT24_FLAG_READONLY); AT24_CHIP_DATA(at24_data_24mac402, 48 / 8, @@ -184,6 +185,7 @@ static const struct i2c_device_id at24_ids[] = { { "24cs01", (kernel_ulong_t)&at24_data_24cs01 }, { "24c02", (kernel_ulong_t)&at24_data_24c02 }, { "24cs02", (kernel_ulong_t)&at24_data_24cs02 }, + { "24cm02", (kernel_ulong_t)&at24_data_24cm02 }, { "24mac402", (kernel_ulong_t)&at24_data_24mac402 }, { "24mac602", (kernel_ulong_t)&at24_data_24mac602 }, { "spd", (kernel_ulong_t)&at24_data_spd }, @@ -212,6 +214,7 @@ static const struct of_device_id at24_of_match[] = { { .compatible = "atmel,24cs01", .data = &at24_data_24cs01 }, { .compatible = "atmel,24c02", .data = &at24_data_24c02 }, { .compatible = "atmel,24cs02", .data = &at24_data_24cs02 }, + { .compatible = "atmel,24cm02", .data = &at24_data_24cm02 }, { .compatible = "atmel,24mac402", .data = &at24_data_24mac402 }, { .compatible = "atmel,24mac602", .data = &at24_data_24mac602 }, { .compatible = "atmel,spd", .data = &at24_data_spd },