59 ) |
59 ) |
60 { |
60 { |
61 unsigned int i; |
61 unsigned int i; |
62 |
62 |
63 sc->master = master; |
63 sc->master = master; |
|
64 |
64 sc->alias = alias; |
65 sc->alias = alias; |
65 sc->position = position; |
66 sc->position = position; |
66 sc->vendor_id = vendor_id; |
67 sc->vendor_id = vendor_id; |
67 sc->product_code = product_code; |
68 sc->product_code = product_code; |
|
69 |
68 sc->slave = NULL; |
70 sc->slave = NULL; |
69 |
71 |
70 for (i = 0; i < EC_MAX_SYNC_MANAGERS; i++) |
72 for (i = 0; i < EC_MAX_SYNC_MANAGERS; i++) |
71 ec_sync_config_init(&sc->sync_configs[i]); |
73 ec_sync_config_init(&sc->sync_configs[i]); |
|
74 |
|
75 sc->used_fmmus = 0; |
|
76 |
|
77 sc->dc_assign_activate = 0x0000; |
|
78 sc->dc_sync_cycle_times[0] = 0x00000000; |
|
79 sc->dc_sync_cycle_times[1] = 0x00000000; |
72 |
80 |
73 INIT_LIST_HEAD(&sc->sdo_configs); |
81 INIT_LIST_HEAD(&sc->sdo_configs); |
74 INIT_LIST_HEAD(&sc->sdo_requests); |
82 INIT_LIST_HEAD(&sc->sdo_requests); |
75 INIT_LIST_HEAD(&sc->voe_handlers); |
83 INIT_LIST_HEAD(&sc->voe_handlers); |
76 |
|
77 sc->used_fmmus = 0; |
|
78 } |
84 } |
79 |
85 |
80 /*****************************************************************************/ |
86 /*****************************************************************************/ |
81 |
87 |
82 /** Slave configuration destructor. |
88 /** Slave configuration destructor. |
397 |
403 |
398 return NULL; |
404 return NULL; |
399 } |
405 } |
400 |
406 |
401 /****************************************************************************** |
407 /****************************************************************************** |
402 * Realtime interface |
408 * Application interface |
403 *****************************************************************************/ |
409 *****************************************************************************/ |
404 |
410 |
405 int ecrt_slave_config_sync_manager(ec_slave_config_t *sc, uint8_t sync_index, |
411 int ecrt_slave_config_sync_manager(ec_slave_config_t *sc, uint8_t sync_index, |
406 ec_direction_t dir) |
412 ec_direction_t dir) |
407 { |
413 { |
663 EC_ERR("PDO entry 0x%04X:%02X is not mapped in slave config %u:%u.\n", |
669 EC_ERR("PDO entry 0x%04X:%02X is not mapped in slave config %u:%u.\n", |
664 index, subindex, sc->alias, sc->position); |
670 index, subindex, sc->alias, sc->position); |
665 return -ENOENT; |
671 return -ENOENT; |
666 } |
672 } |
667 |
673 |
|
674 /*****************************************************************************/ |
|
675 |
|
676 void ecrt_slave_config_dc_assign_activate(ec_slave_config_t *sc, |
|
677 uint16_t assign_activate) |
|
678 { |
|
679 sc->dc_assign_activate = assign_activate; |
|
680 } |
|
681 |
|
682 /*****************************************************************************/ |
|
683 |
|
684 void ecrt_slave_config_dc_sync_cycle_times(ec_slave_config_t *sc, |
|
685 uint32_t sync0_cycle_time, uint32_t sync1_cycle_time) |
|
686 { |
|
687 sc->dc_sync_cycle_times[0] = sync0_cycle_time; |
|
688 sc->dc_sync_cycle_times[1] = sync1_cycle_time; |
|
689 } |
668 |
690 |
669 /*****************************************************************************/ |
691 /*****************************************************************************/ |
670 |
692 |
671 int ecrt_slave_config_sdo(ec_slave_config_t *sc, uint16_t index, |
693 int ecrt_slave_config_sdo(ec_slave_config_t *sc, uint16_t index, |
672 uint8_t subindex, const uint8_t *data, size_t size) |
694 uint8_t subindex, const uint8_t *data, size_t size) |
878 EXPORT_SYMBOL(ecrt_slave_config_pdo_assign_clear); |
900 EXPORT_SYMBOL(ecrt_slave_config_pdo_assign_clear); |
879 EXPORT_SYMBOL(ecrt_slave_config_pdo_mapping_add); |
901 EXPORT_SYMBOL(ecrt_slave_config_pdo_mapping_add); |
880 EXPORT_SYMBOL(ecrt_slave_config_pdo_mapping_clear); |
902 EXPORT_SYMBOL(ecrt_slave_config_pdo_mapping_clear); |
881 EXPORT_SYMBOL(ecrt_slave_config_pdos); |
903 EXPORT_SYMBOL(ecrt_slave_config_pdos); |
882 EXPORT_SYMBOL(ecrt_slave_config_reg_pdo_entry); |
904 EXPORT_SYMBOL(ecrt_slave_config_reg_pdo_entry); |
|
905 EXPORT_SYMBOL(ecrt_slave_config_dc_assign_activate); |
|
906 EXPORT_SYMBOL(ecrt_slave_config_dc_sync_cycle_times); |
883 EXPORT_SYMBOL(ecrt_slave_config_sdo); |
907 EXPORT_SYMBOL(ecrt_slave_config_sdo); |
884 EXPORT_SYMBOL(ecrt_slave_config_sdo8); |
908 EXPORT_SYMBOL(ecrt_slave_config_sdo8); |
885 EXPORT_SYMBOL(ecrt_slave_config_sdo16); |
909 EXPORT_SYMBOL(ecrt_slave_config_sdo16); |
886 EXPORT_SYMBOL(ecrt_slave_config_sdo32); |
910 EXPORT_SYMBOL(ecrt_slave_config_sdo32); |
887 EXPORT_SYMBOL(ecrt_slave_config_create_sdo_request); |
911 EXPORT_SYMBOL(ecrt_slave_config_create_sdo_request); |