⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcfmbus.h

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 H
字号:
/* MCF5206e MBUS module (I2C bus) driver header file * * Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia * Author: Victor V. Vengerov <vvv@oktet.ru> * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * * http://www.rtems.com/license/LICENSE. * * @(#) $Id: mcfmbus.h,v 1.1.4.1 2003/09/04 18:45:44 joel Exp $ */#ifndef __MCFBSP_MCFMBUS_H__#define __MCFBSP_MCFMBUS_H__#include "mcf5206e.h"#include "i2c.h"/* States of I2C machine */typedef enum mcfmbus_i2c_state {    STATE_IDLE,    STATE_ADDR_7,    STATE_ADDR_1_W,    STATE_ADDR_1_R,    STATE_SENDING,    STATE_RECEIVING} mcfmbus_i2c_state;typedef struct mcfmbus {    rtems_unsigned32       base; /* ColdFire internal peripherial base                                    address */    enum mcfmbus_i2c_state state;/* State of I2C machine */    i2c_message           *msg;  /* Pointer to the first message in transfer */    int                    nmsg; /* Number of messages in transfer */    i2c_message           *cmsg; /* Current message */    int                    byte; /* Byte number in current message */    rtems_isr_entry        oldisr; /* Old interrupt handler */    rtems_id               sema; /* MBUS semaphore */    i2c_transfer_done      done; /* Transfer done function */    rtems_unsigned32       done_arg; /* Done function argument */} mcfmbus;/* mcfmbus_initialize -- *     Initialize ColdFire MBUS I2C bus controller. * * PARAMETERS: *     i2c_bus - pointer to the bus descriptor structure *     base    - ColdFire internal peripherial base address * * RETURNS: *     RTEMS_SUCCESSFUL, or RTEMS error code when initialization failed. */rtems_status_codemcfmbus_initialize(mcfmbus *i2c_bus, rtems_unsigned32 base);/* mcfmbus_select_clock_divider -- *     Select divider for system clock which is used for I2C bus clock *     generation. Not each divider can be selected for I2C bus; this *     function select nearest larger or equal divider, or maximum *     possible divider, if passed value greater. * * PARAMETERS: *     i2c_bus - pointer to the bus descriptor structure *     divider - system frequency divider for I2C serial clock. * * RETURNS: *     RTEMS_SUCCESSFUL, if operation performed successfully, or *     RTEMS error code when failed. */rtems_status_codemcfmbus_select_clock_divider(mcfmbus *i2c_bus, int divider);/* mcfmbus_i2c_transfer -- *     Initiate multiple-messages transfer over I2C bus via ColdFire MBUS *     controller. * * PARAMETERS: *     bus - pointer to MBUS controller descriptor *     nmsg - number of messages *     msg - pointer to messages array *     done - function which is called when transfer is finished *     done_arg - arbitrary argument passed to done funciton * * RETURNS: *     RTEMS_SUCCESSFUL if transfer initiated successfully, or error *     code when failed. */rtems_status_codemcfmbus_i2c_transfer(mcfmbus *bus, int nmsg, i2c_message *msg,                     i2c_transfer_done done, rtems_unsigned32 done_arg);/* mcfmbus_i2c_done -- *     Close ColdFire MBUS I2C bus controller and release all resources. * * PARAMETERS: *     bus - pointer to MBUS controller descriptor * * RETURNS: *     RTEMS_SUCCESSFUL, if transfer initiated successfully, or error *     code when failed. */rtems_status_codemcfmbus_i2c_done(mcfmbus *i2c_bus);/* mcfmbus_i2c_interrupt_handler -- *     ColdFire MBUS I2C bus controller interrupt handler. This function *     called from real interrupt handler, and pointer to MBUS descriptor *     structure passed to this function. * * PARAMETERS: *     bus - pointert to the bus descriptor structure * * RETURNS: *     none */void mcfmbus_i2c_interrupt_handler(mcfmbus *bus);/* mcfmbus_poll -- *     MBUS module poll routine; used to poll events when I2C driver *     operates in poll-driven mode. * * PARAMETERS: *     none * * RETURNS: *     none */void mcfmbus_poll(mcfmbus *bus);#endif /* __MCFBSP_MCFMBUS_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -