master/master.h
branchstable-1.1
changeset 1732 1cc865ba17c2
parent 1731 60b2aad9d40b
child 1739 5fcbd29151d2
equal deleted inserted replaced
1731:60b2aad9d40b 1732:1cc865ba17c2
   132     int (*request_cb)(void *); /**< lock request callback */
   132     int (*request_cb)(void *); /**< lock request callback */
   133     void (*release_cb)(void *); /**< lock release callback */
   133     void (*release_cb)(void *); /**< lock release callback */
   134     void *cb_data; /**< data parameter of locking callbacks */
   134     void *cb_data; /**< data parameter of locking callbacks */
   135 
   135 
   136     uint8_t eeprom_write_enable; /**< allow write operations to EEPROMs */
   136     uint8_t eeprom_write_enable; /**< allow write operations to EEPROMs */
       
   137 
       
   138     ec_sdo_request_t *sdo_request; /**< pointer to the current SDO request */
       
   139     unsigned int sdo_seq_user; /**< sequence number for user space */
       
   140     unsigned int sdo_seq_master; /**< sequence number for master */
       
   141     struct semaphore sdo_sem; /**< SDO semaphore */
       
   142     struct timer_list sdo_timer; /**< timer for polling sdo processing */
       
   143     struct completion sdo_complete; /**< SDO request completion object */
   137 };
   144 };
   138 
   145 
   139 /*****************************************************************************/
   146 /*****************************************************************************/
   140 
   147 
   141 // master creation and deletion
   148 // master creation/deletion
   142 int ec_master_init(ec_master_t *, unsigned int, unsigned int);
   149 int ec_master_init(ec_master_t *, unsigned int, unsigned int);
   143 void ec_master_clear(struct kobject *);
   150 void ec_master_destroy(ec_master_t *);
   144 void ec_master_reset(ec_master_t *);
       
   145 
   151 
   146 // free run
   152 // mode transitions
   147 void ec_master_idle_start(ec_master_t *);
   153 int ec_master_enter_idle_mode(ec_master_t *);
   148 void ec_master_idle_stop(ec_master_t *);
   154 void ec_master_leave_idle_mode(ec_master_t *);
       
   155 int ec_master_enter_operation_mode(ec_master_t *);
       
   156 void ec_master_leave_operation_mode(ec_master_t *);
   149 
   157 
   150 // EoE
   158 // EoE
   151 void ec_master_eoe_start(ec_master_t *);
   159 void ec_master_eoe_start(ec_master_t *);
   152 void ec_master_eoe_stop(ec_master_t *);
   160 void ec_master_eoe_stop(ec_master_t *);
   153 
   161 
   154 // IO
   162 // datagram IO
   155 void ec_master_receive_datagrams(ec_master_t *, const uint8_t *, size_t);
   163 void ec_master_receive_datagrams(ec_master_t *, const uint8_t *, size_t);
   156 void ec_master_queue_datagram(ec_master_t *, ec_datagram_t *);
   164 void ec_master_queue_datagram(ec_master_t *, ec_datagram_t *);
   157 
   165 
   158 // slave management
       
   159 int ec_master_bus_scan(ec_master_t *);
       
   160 
       
   161 // misc.
   166 // misc.
   162 void ec_master_output_stats(ec_master_t *);
   167 void ec_master_output_stats(ec_master_t *);
   163 void ec_master_clear_slaves(ec_master_t *);
   168 void ec_master_destroy_slaves(ec_master_t *);
   164 int ec_master_measure_bus_time(ec_master_t *);
   169 void ec_master_calc_addressing(ec_master_t *);
   165 
   170 
   166 // other methods
   171 // helper functions
   167 void ec_sync_config(const ec_sii_sync_t *, const ec_slave_t *, uint8_t *);
   172 void ec_sync_config(const ec_sii_sync_t *, const ec_slave_t *, uint8_t *);
   168 void ec_fmmu_config(const ec_fmmu_t *, const ec_slave_t *, uint8_t *);
   173 void ec_fmmu_config(const ec_fmmu_t *, const ec_slave_t *, uint8_t *);
   169 void ec_master_calc_addressing(ec_master_t *);
       
   170 
   174 
   171 /*****************************************************************************/
   175 /*****************************************************************************/
   172 
   176 
   173 #endif
   177 #endif