77 #define DigOutSlavePos 0, 3 |
77 #define DigOutSlavePos 0, 3 |
78 |
78 |
79 #define Beckhoff_EL2004 0x00000002, 0x07D43052 |
79 #define Beckhoff_EL2004 0x00000002, 0x07D43052 |
80 #define Beckhoff_EL3162 0x00000002, 0x0C5A3052 |
80 #define Beckhoff_EL3162 0x00000002, 0x0C5A3052 |
81 |
81 |
82 static unsigned int off_ana_in; // offsets for Pdo entries |
82 static unsigned int off_ana_in; // offsets for PDO entries |
83 static unsigned int off_dig_out; |
83 static unsigned int off_dig_out; |
84 |
84 |
85 const static ec_pdo_entry_reg_t domain1_regs[] = { |
85 const static ec_pdo_entry_reg_t domain1_regs[] = { |
86 {AnaInSlavePos, Beckhoff_EL3162, 0x3101, 2, &off_ana_in}, |
86 {AnaInSlavePos, Beckhoff_EL3162, 0x3101, 2, &off_ana_in}, |
87 {DigOutSlavePos, Beckhoff_EL2004, 0x3001, 1, &off_dig_out}, |
87 {DigOutSlavePos, Beckhoff_EL2004, 0x3001, 1, &off_dig_out}, |
290 printk(KERN_ERR PFX "Failed to get slave configuration.\n"); |
290 printk(KERN_ERR PFX "Failed to get slave configuration.\n"); |
291 goto out_release_master; |
291 goto out_release_master; |
292 } |
292 } |
293 |
293 |
294 #ifdef CONFIGURE_PDOS |
294 #ifdef CONFIGURE_PDOS |
295 printk(KERN_INFO PFX "Configuring Pdos...\n"); |
295 printk(KERN_INFO PFX "Configuring PDOs...\n"); |
296 if (ecrt_slave_config_pdos(sc_ana_in, EC_END, el3162_syncs)) { |
296 if (ecrt_slave_config_pdos(sc_ana_in, EC_END, el3162_syncs)) { |
297 printk(KERN_ERR PFX "Failed to configure Pdos.\n"); |
297 printk(KERN_ERR PFX "Failed to configure PDOs.\n"); |
298 goto out_release_master; |
298 goto out_release_master; |
299 } |
299 } |
300 |
300 |
301 if (!(sc = ecrt_master_slave_config(master, DigOutSlavePos, Beckhoff_EL2004))) { |
301 if (!(sc = ecrt_master_slave_config(master, DigOutSlavePos, Beckhoff_EL2004))) { |
302 printk(KERN_ERR PFX "Failed to get slave configuration.\n"); |
302 printk(KERN_ERR PFX "Failed to get slave configuration.\n"); |
303 goto out_release_master; |
303 goto out_release_master; |
304 } |
304 } |
305 |
305 |
306 if (ecrt_slave_config_pdos(sc, EC_END, el2004_syncs)) { |
306 if (ecrt_slave_config_pdos(sc, EC_END, el2004_syncs)) { |
307 printk(KERN_ERR PFX "Failed to configure Pdos.\n"); |
307 printk(KERN_ERR PFX "Failed to configure PDOs.\n"); |
308 goto out_release_master; |
308 goto out_release_master; |
309 } |
309 } |
310 #endif |
310 #endif |
311 |
311 |
312 printk(KERN_INFO PFX "Registering Pdo entries...\n"); |
312 printk(KERN_INFO PFX "Registering PDO entries...\n"); |
313 if (ecrt_domain_reg_pdo_entry_list(domain1, domain1_regs)) { |
313 if (ecrt_domain_reg_pdo_entry_list(domain1, domain1_regs)) { |
314 printk(KERN_ERR PFX "Pdo entry registration failed!\n"); |
314 printk(KERN_ERR PFX "PDO entry registration failed!\n"); |
315 goto out_release_master; |
315 goto out_release_master; |
316 } |
316 } |
317 |
317 |
318 printk(KERN_INFO PFX "Activating master...\n"); |
318 printk(KERN_INFO PFX "Activating master...\n"); |
319 if (ecrt_master_activate(master)) { |
319 if (ecrt_master_activate(master)) { |