diff options
Diffstat (limited to 'include/linux/fsl_devices.h')
-rw-r--r-- | include/linux/fsl_devices.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h new file mode 100644 index 0000000..faaff4c --- /dev/null +++ b/include/linux/fsl_devices.h @@ -0,0 +1,78 @@ +/* + * include/linux/fsl_devices.h + * + * Definitions for any platform device related flags or structures for + * Freescale processor devices + * + * Maintainer: Kumar Gala (kumar.gala@freescale.com) + * + * Copyright 2004 Freescale Semiconductor, Inc + * + * 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. + */ + +#ifdef __KERNEL__ +#ifndef _FSL_DEVICE_H_ +#define _FSL_DEVICE_H_ + +#include <linux/types.h> + +/* + * Some conventions on how we handle peripherals on Freescale chips + * + * unique device: a platform_device entry in fsl_plat_devs[] plus + * associated device information in its platform_data structure. + * + * A chip is described by a set of unique devices. + * + * Each sub-arch has its own master list of unique devices and + * enumerates them by enum fsl_devices in a sub-arch specific header + * + * The platform data structure is broken into two parts. The + * first is device specific information that help identify any + * unique features of a peripheral. The second is any + * information that may be defined by the board or how the device + * is connected externally of the chip. + * + * naming conventions: + * - platform data structures: <driver>_platform_data + * - platform data device flags: FSL_<driver>_DEV_<FLAG> + * - platform data board flags: FSL_<driver>_BRD_<FLAG> + * + */ + +struct gianfar_platform_data { + /* device specific information */ + u32 device_flags; + u32 phy_reg_addr; + + /* board specific information */ + u32 board_flags; + u32 phyid; + u32 interruptPHY; + u8 mac_addr[6]; +}; + +/* Flags related to gianfar device features */ +#define FSL_GIANFAR_DEV_HAS_GIGABIT 0x00000001 +#define FSL_GIANFAR_DEV_HAS_COALESCE 0x00000002 +#define FSL_GIANFAR_DEV_HAS_RMON 0x00000004 +#define FSL_GIANFAR_DEV_HAS_MULTI_INTR 0x00000008 + +/* Flags in gianfar_platform_data */ +#define FSL_GIANFAR_BRD_HAS_PHY_INTR 0x00000001 /* if not set use a timer */ + +struct fsl_i2c_platform_data { + /* device specific information */ + u32 device_flags; +}; + +/* Flags related to I2C device features */ +#define FSL_I2C_DEV_SEPARATE_DFSRR 0x00000001 +#define FSL_I2C_DEV_CLOCK_5200 0x00000002 + +#endif /* _FSL_DEVICE_H_ */ +#endif /* __KERNEL__ */ |