[linux-yocto] [PATCH 34/87] drivers/i2c/ai2c: add dts support in the driver
Paul Butler
butler.paul at gmail.com
Mon May 27 09:56:05 PDT 2013
From: Michael Bringmann <michael.bringmann at lsi.com>
Add sections to ".dts" files to describe physical addresses of the
AXM55xx I2C bus regions (and interrupts, if any). Propagate changes
through I2C platform parsing=registration to AI2C bus code.
Remove unneeded ACP34xx personality given that that code is now on
a different branch.
Combine a number of include files to simplify code arrangement of
AI2C.
Signed-off-by: Michael Bringmann <michael.bringmann at lsi.com>
---
drivers/i2c/busses/ai2c/ai2c_bus_acp3400.c | 150 --------------
drivers/i2c/busses/ai2c/ai2c_dev_pvt.h | 170 ---------------
drivers/i2c/busses/ai2c/ai2c_plat_pvt.h | 74 -------
drivers/i2c/busses/ai2c/ai2c_sal_linux.h | 318 -----------------------------
drivers/i2c/busses/ai2c/ai2c_sal_types.h | 48 -----
5 files changed, 760 deletions(-)
delete mode 100644 drivers/i2c/busses/ai2c/ai2c_bus_acp3400.c
delete mode 100644 drivers/i2c/busses/ai2c/ai2c_dev_pvt.h
delete mode 100644 drivers/i2c/busses/ai2c/ai2c_plat_pvt.h
delete mode 100644 drivers/i2c/busses/ai2c/ai2c_sal_linux.h
delete mode 100644 drivers/i2c/busses/ai2c/ai2c_sal_types.h
diff --git a/drivers/i2c/busses/ai2c/ai2c_bus_acp3400.c b/drivers/i2c/busses/ai2c/ai2c_bus_acp3400.c
deleted file mode 100644
index 0878227..0000000
--- a/drivers/i2c/busses/ai2c/ai2c_bus_acp3400.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2013 LSI Corporation
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/* #define EXTRA_DEBUG */
-
-#include "ai2c_plat_pvt.h"
-#include "ai2c_dev_clock_ext.h"
-#include "regs/ai2c_i2c_regs.h"
-#include "regs/ai2c_axi_timer_regs.h"
-
-
-/*****************************************************************************
-* Local Macros & Constants *
-*****************************************************************************/
-
-#define AI2C_I2C_ADDR(offset) (0x00000000+(offset))
-
-
-/*****************************************************************************
-* Local Type Definitions *
-*****************************************************************************/
-
-struct localTimer {
- u32 chipType;
- u32 i2cRegionId;
- u32 timerRegionId;
- u32 baseOffset;
- u32 timerLoadOffset;
- u32 timerLoadValue;
- u32 timerControlOffset;
- u32 timerControlValue;
-};
-
-/*****************************************************************************
-* Forward Function Declarations *
-*****************************************************************************/
-
-/*****************************************************************************
-* Local State *
-*****************************************************************************/
-
-static u32 protoConfig;
-
-/*****************************************************************************
-* Functions: Initialization & Base Configuration *
-*****************************************************************************/
-
-/*
- * Title: ai2c_bus_init_acp3400
- * Description: This function will initialize the timer(s) and other
- * features used by I2C. This is a one time initialization
- * and will called by the generic initialization sequence.
- * Inputs:
- * @param[in] priv: handle of device to access
- * @param[in] regionId: Reference to specific bus within device
- * Returns: completion status
- */
-static int ai2c_bus_init_acp3400(
- struct ai2c_priv *priv,
- u32 regionId)
-{
- return -ENOSYS;
-}
-
-
-/*
- * Title: ai2c_bus_block_read8_acp3400
- * Description:
- * Read num bytes from the offset and store it in buffer.
- *
- * Inputs:
- * @param[in] dev Device handle
- * @param[in] regionId Bus reference handle
- * @param[in] *adap Ptr to I2C adapter
- * @param[in] *msg Ptr to next I2C message to process
- * @param[in] stop Op flag: append 'stop' to this msg
- *
- * Returns: completion status
- */
-static int ai2c_bus_block_read8_acp3400(
- struct ai2c_priv *priv,
- u32 regionId,
- struct i2c_adapter *adap,
- struct i2c_msg *msg,
- int stop)
-{
- return -ENOSYS;
-}
-
-
-/*
- * Title: ai2c_bus_block_write8_acp3400
- * Description: This function will read count bytes from the buffer
- * and will store at the offset location in the device.
- * Inputs:
- * @param[in] dev Device handle
- * @param[in] regionId Bus reference handle
- * @param[in] *adap Ptr to I2C adapter
- * @param[in] *msg Ptr to next I2C message to process
- * @param[in] stop Op flag: append 'stop' to this msg
- * Returns: completion status
- * actCount: Actual number of bytes written from the ones that were
- * provided.
- */
-static int ai2c_bus_block_write8_acp3400(
- struct ai2c_priv *priv,
- u32 regionId,
- struct i2c_adapter *adap,
- struct i2c_msg *msg,
- int stop)
-{
- return -ENOSYS;
-}
-
-
-/*****************************************************************************
-* More Exported State *
-*****************************************************************************/
-
-struct ai2c_i2c_access ai2c_acp3400_cfg = {
- 0,
- /* maxXfrSize */ AI2C_I2CPROT_MAX_XFR_SIZE,
- /* deviceLen */ 0,
- /* i.e. unbounded */
-
- ai2c_bus_init_acp3400,
- ai2c_bus_block_write8_acp3400,
- ai2c_bus_block_read8_acp3400,
-
- (void *) &protoConfig,
-};
diff --git a/drivers/i2c/busses/ai2c/ai2c_dev_pvt.h b/drivers/i2c/busses/ai2c/ai2c_dev_pvt.h
deleted file mode 100644
index 3bae264..0000000
--- a/drivers/i2c/busses/ai2c/ai2c_dev_pvt.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (C) 2013 LSI Corporation
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __AI2C_DEV_PVT_H__
-#define __AI2C_DEV_PVT_H__
-
-#include "ai2c_sal.h"
-
-
-/* BEGIN: Important forward type references */
-
-struct ai2c_region_io;
-struct ai2c_priv;
-
-/* END: Important forward type references */
-
-#include "regs/ai2c_regions.h"
-#include "ai2c_dev.h"
-
-/* --- Linux References --- */
-#ifndef AI2C_MOD_NAME
-#define AI2C_MOD_NAME "ai2c"
-#endif
-
-
-/* --- Internal Types & Definitions --- */
-
-#define AI2C_DEV_ACCESS_NONE (0x00)
-#define AI2C_DEV_ACCESS_READ (0x01)
-#define AI2C_DEV_ACCESS_WRITE (0x02)
-#define AI2C_DEV_ACCESS_RW (0x03)
-#define AI2C_DEV_ACCESS_BIG_ENDIAN (0x04)
-#define AI2C_DEV_ACCESS_LITTLE_ENDIAN (0x08)
-
-
-#define AI2C_DEV_SIZE_1KB (1024*1)
-#define AI2C_DEV_SIZE_4KB (1024*4)
-#define AI2C_DEV_SIZE_128KB (1024*128)
-#define AI2C_DEV_SIZE_256KB (1024*256)
-#define AI2C_DEV_SIZE_2MB (1024*1024*2)
-#define AI2C_DEV_SIZE_16MB (1024*1024*16)
-#define AI2C_DEV_SIZE_128MB (1024*1024*128)
-#define AI2C_DEV_SIZE_1GB (1024*1024*1024)
-#define AI2C_DEV_SIZE_NO_SIZE (0)
-
-
-/* read/write fn prototypes for region map function pointers */
-
-typedef int (*_ai2c_dev_read_fn_t) (
- struct ai2c_priv *priv,
- struct ai2c_region_io *region,
- u64 offset,
- u32 *buffer,
- u32 count,
- u32 flags,
- u32 cmdType,
- u32 xferWidth);
-
-typedef int (*_ai2c_dev_write_fn_t) (
- struct ai2c_priv *priv,
- struct ai2c_region_io *region,
- u64 offset,
- u32 *buffer,
- u32 count,
- u32 flags,
- u32 cmdType,
- u32 xferWidth);
-
-/*
- * Structure definition(s) for the region map.
- * See above for typedef ai2c_region_io_t.
- */
-struct ai2c_region_io {
- u32 regionId;
- struct ai2c_access_map *accessMap;
- _ai2c_dev_read_fn_t readFn;
- _ai2c_dev_write_fn_t writeFn;
- u32 pageId;
-};
-
-/*
- * Sometimes it would be better to define a range of similar regions
- * with a single entry in the region map, especially, for regions
- * that are logical or virtual entities that involve interpretation,
- * calculated addresses based upon the regionId, or some other
- * transformation. The alternate region map such definitions.
- */
-struct ai2c_region_iorng {
- u32 startRegionId;
- u32 endRegionId;
- struct ai2c_access_map *accessMap;
- _ai2c_dev_read_fn_t readFn;
- _ai2c_dev_write_fn_t writeFn;
- u32 pageId;
-};
-
-
-/*
- * Basic i/o methods
- */
-
-#ifdef DEBUG_EDEV_IO
-#define AI2C_WRITE_LOG(ctx, dev, pageId, offset, value) \
- AI2C_MSG(AI2C_MSG_DEBUG_IO, \
- "%s: pageId=0x%x offset=0x%x addr=0x%x value=0x%02x\n", \
- ctx, pageId, offset, AI2C_DEV_BUS_ADDR(dev, pageId, offset), value)
-#else
-#define AI2C_WRITE_LOG(ctx, dev, pageId, offset, value)
-#endif
-
-#define AI2C_DEV_BUS_READ8(dev, pageId, offset) \
- AI2C_BUS_READ8(AI2C_DEV_BUS_ADDR(dev, pageId, offset),\
- AI2C_DEV_PAGE_ENDIANNESS(pageId))
-
-#define AI2C_DEV_BUS_READ16(dev, pageId, offset) \
- AI2C_BUS_READ16(AI2C_DEV_BUS_ADDR(dev, pageId, offset),\
- AI2C_DEV_PAGE_ENDIANNESS(pageId))
-
-#define AI2C_DEV_BUS_READ32(dev, pageId, offset) \
- AI2C_BUS_READ32(AI2C_DEV_BUS_ADDR(dev, pageId, offset),\
- AI2C_DEV_PAGE_ENDIANNESS(pageId))
-
-#define AI2C_DEV_BUS_WRITE8(dev, pageId, offset, value) \
- do { \
- AI2C_WRITE_LOG("edev_bus_write8", dev, pageId, offset, value); \
- AI2C_BUS_WRITE8( \
- AI2C_DEV_BUS_ADDR(dev, pageId, offset), value); \
- if (AI2C_DEV_PAGE_FLAGS(pageId) == AI2C_IO_SYNC) { \
- volatile u32 ___val___; \
- ___val___ = AI2C_BUS_READ32(AI2C_DEV_BUS_ADDR(dev, \
- AI2C_DEV_PAGE_PCIE0_PEI, AI2C_PEI_CONFIG), \
- AI2C_DEV_ACCESS_LITTLE_ENDIAN); \
- } \
- } while (0);
-
-#define AI2C_DEV_BUS_WRITE16(dev, pageId, offset, value) \
- do { \
- AI2C_WRITE_LOG("edev_bus_write16", \
- dev, pageId, offset, value); \
- AI2C_BUS_WRITE16( \
- AI2C_DEV_BUS_ADDR(dev, pageId, offset), value); \
- if (AI2C_DEV_PAGE_FLAGS(pageId) == AI2C_IO_SYNC) { \
- volatile u32 ___val___; \
- ___val___ = AI2C_BUS_READ32(AI2C_DEV_BUS_ADDR(dev, \
- AI2C_DEV_PAGE_PCIE0_PEI, AI2C_PEI_CONFIG), \
- AI2C_DEV_ACCESS_LITTLE_ENDIAN); \
- } \
- } while (0);
-
-
-#endif /* __AI2C_DEV_PVT_H__ */
diff --git a/drivers/i2c/busses/ai2c/ai2c_plat_pvt.h b/drivers/i2c/busses/ai2c/ai2c_plat_pvt.h
deleted file mode 100644
index 338bb93..0000000
--- a/drivers/i2c/busses/ai2c/ai2c_plat_pvt.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2013 LSI Corporation
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*! @file ai2c_plat_pvt.h
- * @brief Constants, structs, and APIs used to communicate with the
- * direct ACP I2C Hardware Layer registers
- */
-
-#ifndef AI2C_PLAT_PVT_H
-#define AI2C_PLAT_PVT_H
-
-#include "ai2c_plat.h"
-#include "ai2c_bus.h"
-
-/*****************************************************************************
-* Externally Visible Function Prototypes *
-*****************************************************************************/
-
-/*! @fn u32 ai2c_page_to_region(struct ai2c_priv *priv,
- * u32 pageId);
- * @brief Map a memory page handle to a regionId handle.
- @param[in] inPriv Created device state structure
- @param[in] inPageId Original page id to be mapped
- @Returns mapped value
- */
-extern u32 ai2c_page_to_region(struct ai2c_priv *priv, u32 pageId);
-
-/*! @fn u32 *ai2c_region_lookup(struct ai2c_priv *priv,
- * u32 regionId);
- * @brief Map a memory region handle to a region description structure.
- @param[in] inPriv Created device state structure
- @param[in] inRegionId Original region id to be mapped
- @Returns mapped value
- */
-extern struct ai2c_region_io *ai2c_region_lookup(
- struct ai2c_priv *priv,
- u32 regionId);
-
-/*! @fn int ai2c_memSetup(struct ai2c_priv **outPriv);
- @brief This is a one time initialization for the I2C protocol
- layers to be called by the device initialization step.
- @param[out] outPriv Created device state structure
- @Returns success/failure status of the operation
-*/
-extern int ai2c_memSetup(struct ai2c_priv **outPriv);
-
-/*! @fn int ai2c_memDestroy(struct ai2c_priv *inPriv);
- @brief This function will release resources acquired for the specified
- I2C device driver.
- @param[in] inPriv Created device state structure
- @Returns success/failure status of the operation
-*/
-extern int ai2c_memDestroy(struct ai2c_priv *inPriv);
-
-#endif /* defined(AI2C_PLAT_PVT_H) */
diff --git a/drivers/i2c/busses/ai2c/ai2c_sal_linux.h b/drivers/i2c/busses/ai2c/ai2c_sal_linux.h
deleted file mode 100644
index 4e96249..0000000
--- a/drivers/i2c/busses/ai2c/ai2c_sal_linux.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- * Copyright (C) 2013 LSI Corporation
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*! @file ai2c_sal_linux.h
- @brief OS Specific definitions are located here.
-*/
-
-
-#ifndef __AI2C_SAL_LINUX_H__
-#define __AI2C_SAL_LINUX_H__
-
-#include <linux/module.h>
-#include <generated/autoconf.h>
-#include <linux/init.h>
-#include <linux/poll.h>
-#include <linux/kthread.h>
-
-#include <linux/io.h>
-#include <linux/errno.h>
-#include <linux/ioport.h>
-#include <linux/kernel.h>
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-#include <linux/of_platform.h>
-
-#include <linux/sched.h>
-#include <linux/moduleparam.h>
-#include <linux/cdev.h>
-#include <linux/version.h>
-#include <linux/wait.h>
-#include <asm/pgtable.h>
-
-#include <linux/slab.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/spinlock.h>
-
-#include <linux/irqdomain.h>
-
-#include <linux/signal.h>
-#include <linux/time.h>
-#include <linux/fcntl.h>
-#include <linux/unistd.h>
-#include <linux/errno.h>
-#include <linux/mman.h>
-
-#include <asm/byteorder.h>
-
-#ifdef __BIG_ENDIAN
-#undef AI2C_BIG_ENDIAN
-#define AI2C_BIG_ENDIAN 9999
-#undef AI2C_LITTLE_ENDIAN
-#endif
-
-#ifdef __LITTLE_ENDIAN
-#undef AI2C_BIG_ENDIAN
-#undef AI2C_LITTLE_ENDIAN
-#define AI2C_LITTLE_ENDIAN 9998
-#endif
-
-
-/*
-* AI2C_MSG
-*
-* Print a message to the system console.
-*/
-#define AI2C_MSG(type, fmt, args...) \
- do { \
- if ((type) & AI2C_MSG_TRACE_LEVEL) { \
- if ((type) == AI2C_MSG_ERROR) \
- printk(KERN_ERR AI2C_MOD_NAME ": ERROR: "); \
- else \
- printk(KERN_WARNING AI2C_MOD_NAME ": "); \
- printk(fmt, ## args); \
- } \
- } while (0)
-
- /*
- * AI2C_LOG
- *
- * Print a message to the system log device and/or console. This
- * interface is callable from interrupt level.
- */
-#define AI2C_LOG \
- AI2C_MSG
-
-#ifndef AI2C_MSG_TRACE_LEVEL
-#define AI2C_MSG_TRACE_LEVEL ai2c_trace_level
-#endif
-
-extern int AI2C_MSG_TRACE_LEVEL;
-
-
-/*
-* Endian-ness Conversion
-*/
-
-#define AI2C_SWAP16m(n) \
- ((((u16)(n) >> 8) & 0x00ff) | \
- (((u16)(n) << 8) & 0xff00))
-
-#define AI2C_SWAP32m(n) \
- ((((u32)(n) >> 24) & 0x000000ff) | \
- (((u32)(n) >> 8) & 0x0000ff00) | \
- (((u32)(n) << 8) & 0x00ff0000) | \
- (((u32)(n) << 24) & 0xff000000))
-
-#define SWAP16(x) \
- { { \
- u16 val = x; \
- AI2C_SWAP16m(val); \
- } }
-
-#define SWAP32(x) \
- { { \
- u32 val = x; \
- AI2C_SWAP32m(val); \
- } }
-
-
-/*
-* Endian-ness I/O
-*/
-
-#ifdef CONFIG_ARM
-
-#define in_be8(x) (*x)
-#define in_be16(x) AI2C_SWAP16m(*x)
-#define in_be32(x) AI2C_SWAP32m(*x)
-
-#define in_le8(x) (*x)
-#define in_le16(x) (*x)
-#define in_le32(x) (*x)
-
-#define out_be8(a, v) (*a) = (v)
-#define out_be16(a, v) (*a) = AI2C_SWAP16m(v)
-#define out_be32(a, v) (*a) = AI2C_SWAP32m(v)
-
-#define out_le8(a, v) (*a) = (v)
-#define out_le16(a, v) (*a) = (v)
-#define out_le32(a, v) (*a) = (v)
-
-#endif /* CONFIG_ARM */
-
-
-#define AI2C_EDEV_BUS_ENFORCE_ORDERING()
-
-#define AI2C_BUS_READ8(addr) \
- readb((volatile u8 __iomem *) (addr))
-
-#define AI2C_BUS_READ16_ENDIAN(endian, addr) \
- in_##endian##16((volatile u16 __iomem *) (addr))
-
-
-#define AI2C_BUS_READ16_LE(addr) AI2C_BUS_READ16_ENDIAN(le, addr)
-
-#define AI2C_BUS_READ16_BE(addr) AI2C_BUS_READ16_ENDIAN(be, addr)
-
-#define AI2C_BUS_READ16(addr, endian) \
- (endian == AI2C_DEV_ACCESS_BIG_ENDIAN) ? \
- AI2C_BUS_READ16_BE(addr) : AI2C_BUS_READ16_LE(addr)
-
-#define AI2C_BUS_READ32_ENDIAN(endian, addr) \
- in_##endian##32((volatile u32 __iomem *) (addr))
-
-
-#define AI2C_BUS_READ32_LE(addr) AI2C_BUS_READ32_ENDIAN(le, addr)
-
-#define AI2C_BUS_READ32_BE(addr) AI2C_BUS_READ32_ENDIAN(be, addr)
-
-#define AI2C_BUS_READ32(addr, endian) \
- (endian == AI2C_DEV_ACCESS_BIG_ENDIAN) ? \
- AI2C_BUS_READ32_BE(addr) : AI2C_BUS_READ32_LE(addr)
-
-
-#define AI2C_BUS_WRITE8(addr, data) \
- writeb((data), (volatile u8 __iomem *) (addr))
-
-#define AI2C_BUS_WRITE16_ENDIAN(endian, addr, data) \
- do { \
- u16 *__a__ = (u16 *) addr; \
- u16 __d__ = data; \
- out_##endian##16((volatile u16 __iomem *) __a__, __d__); \
- AI2C_EDEV_BUS_ENFORCE_ORDERING(); \
- } while (0);
-
-#define AI2C_BUS_WRITE16_LE(addr, data) \
- AI2C_BUS_WRITE16_ENDIAN(le, addr, data)
-
-#define AI2C_BUS_WRITE16_BE(addr, data) \
- AI2C_BUS_WRITE16_ENDIAN(be, addr, data)
-
-#define AI2C_BUS_WRITE16(addr, data, endian) \
- if (endian == AI2C_DEV_ACCESS_BIG_ENDIAN) { \
- AI2C_BUS_WRITE16_BE(addr, data); \
- } else { \
- AI2C_BUS_WRITE16_LE(addr, data); \
- }
-
-#define AI2C_BUS_WRITE32_ENDIAN(endian, addr, data) \
- do { \
- u32 *__a__ = (u32 *) addr; \
- u32 __d__ = data; \
- out_##endian##32((volatile u32 __iomem *) \
- __a__, __d__); \
- AI2C_EDEV_BUS_ENFORCE_ORDERING(); \
- } while (0);
-
-#define AI2C_BUS_WRITE32_LE(addr, data) \
- AI2C_BUS_WRITE32_ENDIAN(le, addr, data)
-
-#define AI2C_BUS_WRITE32_BE(addr, data) \
- AI2C_BUS_WRITE32_ENDIAN(be, addr, data)
-
-#define AI2C_BUS_WRITE32(addr, data, endian) \
- if (endian == AI2C_DEV_ACCESS_BIG_ENDIAN) { \
- AI2C_BUS_WRITE32_BE(addr, data); \
- } else { \
- AI2C_BUS_WRITE32_LE(addr, data); \
- }
-
- /*
- * Spinlock mutex stuff
- */
-
-#define AI2C_SPINLOCK_INIT(pSpinlock) \
- spin_lock_init(pSpinlock)
-
-#define AI2C_SPINLOCK_LOCK(pSpinlock) \
- spin_lock(pSpinlock)
-
-#define AI2C_SPINLOCK_TRYLOCK(pSpinlock) \
- spin_trylock(pSpinlock)
-
-#define AI2C_SPINLOCK_UNLOCK(pSpinlock) \
- spin_unlock(pSpinlock)
-
-#define AI2C_SPINLOCK_INTERRUPT_DISABLE(pSem, flags) \
- spin_lock_irqsave(pSem, flags)
-
-#define AI2C_SPINLOCK_INTERRUPT_ENABLE(pSem, flags) \
- spin_unlock_irqrestore(pSem, flags)
-
-#define AI2C_SPINLOCK_SW_INTERRUPT_DISABLE(pSem, flags) \
- spin_lock_bh(pSem)
-
-#define AI2C_SPINLOCK_SW_INTERRUPT_ENABLE(pSem, flags) \
- spin_unlock_bh(pSem)
-
-
- /*
- * Kernel memory allocation
- */
-
-#define __ai2c_malloc(size) kmalloc(size, GFP_KERNEL)
-#define __ai2c_free(ptr) kfree(ptr)
-#define __ai2c_realloc(ptr, size) (NULL)
-#define __ai2c_calloc(no, size) kcalloc(no, size, GFP_KERNEL)
-
-
- /*
- * Miscellaneous externs not provided by other headers reliably
- */
-
-extern int snprintf(char *s, size_t n, const char *format, ...);
-
-struct ai2c_rev_id {
-
-#ifdef NCP_BIG_ENDIAN
- unsigned isAsic:1;
- unsigned isFpga:1;
- unsigned isSim:1;
- unsigned:2;
- unsigned secDisable:1;
- unsigned sppDisable:1;
- unsigned cpuDisable:4;
- unsigned ecidChipType:5;
- unsigned:1;
- unsigned packageType:4;
- unsigned chipVersion:6;
- unsigned chipTyp:5;
-#else
- unsigned chipType:5;
- unsigned chipVersion:6;
- unsigned packageType:4;
- unsigned:1;
- unsigned ecidChipType:5;
- unsigned cpuDisable:4;
- unsigned sppDisable:1;
- unsigned secDisable:1;
- unsigned:2;
- unsigned isSim:1;
- unsigned isFpga:1;
- unsigned isAsic:1;
-#endif
-};
-
-
-#endif /* __AI2C_SAL_LINUX_H__ */
diff --git a/drivers/i2c/busses/ai2c/ai2c_sal_types.h b/drivers/i2c/busses/ai2c/ai2c_sal_types.h
deleted file mode 100644
index a6d2263..0000000
--- a/drivers/i2c/busses/ai2c/ai2c_sal_types.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2013 LSI Corporation
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*! @file ai2c_sal_types.h
- @brief OS Specific types are located here.
-*/
-
-#ifndef AI2C_SAL_TYPES_H
-#define AI2C_SAL_TYPES_H
-
-#include <linux/types.h>
-
-/**************************************************************************
-* Constants, #Defines, etc.
-**************************************************************************/
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#endif /* AI2C_SAL_TYPES_H */
--
1.8.3
More information about the linux-yocto
mailing list