From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Pirko Subject: Re: [PATCH v1 net-next] net: dsa: microchip: add KSZ9477 I2C driver Date: Wed, 19 Dec 2018 11:05:32 +0100 Message-ID: <20181219100532.GA2066@nanopsycho> References: <1545190897-22622-1-git-send-email-Tristram.Ha@microchip.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Sergio Paracuellos , Andrew Lunn , Florian Fainelli , Pavel Machek , Marek Vasut , Dan Carpenter , vivien.didelot@savoirfairelinux.com, UNGLinuxDriver@microchip.com, netdev@vger.kernel.org To: Tristram.Ha@microchip.com Return-path: Received: from mail-wm1-f65.google.com ([209.85.128.65]:51518 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728754AbeLSKNM (ORCPT ); Wed, 19 Dec 2018 05:13:12 -0500 Received: by mail-wm1-f65.google.com with SMTP id b11so5409917wmj.1 for ; Wed, 19 Dec 2018 02:13:10 -0800 (PST) Content-Disposition: inline In-Reply-To: <1545190897-22622-1-git-send-email-Tristram.Ha@microchip.com> Sender: netdev-owner@vger.kernel.org List-ID: Wed, Dec 19, 2018 at 04:41:37AM CET, Tristram.Ha@microchip.com wrote: >From: Tristram Ha > >Add KSZ9477 I2C driver support. The code ksz9477.c and ksz_common.c are >used together to generate the I2C driver. > >Signed-off-by: Tristram Ha >diff --git a/drivers/net/dsa/microchip/ksz_i2c.h b/drivers/net/dsa/microchip/ksz_i2c.h >new file mode 100644 >index 0000000..b9af0a8 >--- /dev/null >+++ b/drivers/net/dsa/microchip/ksz_i2c.h >@@ -0,0 +1,69 @@ >+/* SPDX-License-Identifier: GPL-2.0 >+ * Microchip KSZ series I2C access common header >+ * >+ * Copyright (C) 2018 Microchip Technology Inc. >+ * Tristram Ha >+ */ >+ >+#ifndef __KSZ_I2C_H >+#define __KSZ_I2C_H >+ >+/* Chip dependent I2C access */ >+static int ksz_i2c_read(struct ksz_device *dev, u32 reg, u8 *data, >+ unsigned int len); >+static int ksz_i2c_write(struct ksz_device *dev, u32 reg, void *data, >+ unsigned int len); >+ >+static int ksz_i2c_read8(struct ksz_device *dev, u32 reg, u8 *val) >+{ >+ return ksz_i2c_read(dev, reg, val, 1); >+} >+ >+static int ksz_i2c_read16(struct ksz_device *dev, u32 reg, u16 *val) >+{ >+ int ret = ksz_i2c_read(dev, reg, (u8 *)val, 2); >+ >+ if (!ret) >+ *val = be16_to_cpu(*val); >+ >+ return ret; >+} >+ >+static int ksz_i2c_read32(struct ksz_device *dev, u32 reg, u32 *val) >+{ >+ int ret = ksz_i2c_read(dev, reg, (u8 *)val, 4); >+ >+ if (!ret) >+ *val = be32_to_cpu(*val); >+ >+ return ret; >+} >+ >+static int ksz_i2c_write8(struct ksz_device *dev, u32 reg, u8 value) >+{ >+ return ksz_i2c_write(dev, reg, &value, 1); >+} >+ >+static int ksz_i2c_write16(struct ksz_device *dev, u32 reg, u16 value) >+{ >+ value = cpu_to_be16(value); >+ return ksz_i2c_write(dev, reg, &value, 2); >+} >+ >+static int ksz_i2c_write32(struct ksz_device *dev, u32 reg, u32 value) >+{ >+ value = cpu_to_be32(value); >+ return ksz_i2c_write(dev, reg, &value, 4); >+} >+ >+static int ksz_i2c_get(struct ksz_device *dev, u32 reg, void *data, size_t len) >+{ >+ return ksz_i2c_read(dev, reg, data, len); >+} >+ >+static int ksz_i2c_set(struct ksz_device *dev, u32 reg, void *data, size_t len) >+{ >+ return ksz_i2c_write(dev, reg, data, len); >+} This header file makes no sense. Please move the functions into .c >+ >+#endif >-- >1.9.1 >