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