flinkLinux
flink Linux Kernel Modules
 All Data Structures Files Functions Variables Macros Pages
Bus Communication Modules

Every such module handles the actual bus transfer over a given hardware interface. For this purpose it must implement the bus operation functions given in

// ############ flink bus operations ############
struct flink_bus_ops {
    u8  (*read8)(struct flink_device*, u32 addr);
    u16 (*read16)(struct flink_device*, u32 addr);
    u32 (*read32)(struct flink_device*, u32 addr);
    int (*write8)(struct flink_device*, u32 addr, u8 val);
    int (*write16)(struct flink_device*, u32 addr, u16 val);
    int (*write32)(struct flink_device*, u32 addr, u32 val);
    u32 (*address_space_size)(struct flink_device*);
};

Currently we support transfer over PCI (flink_pci.c) and SPI (flink_spi.c).

For the Phytec phyCORE-MPC5200B-I/O board there is a driver using the local plus bus on the mpc5200 (flink_lpb.c). For the Toradex Colibri board there is a driver using the EIM bus on the imx6 (flink_eim.c).