|
AM243x MCU+ SDK
08.06.00
|
|
Go to the documentation of this file.
33 #ifndef TAMAGAWA_DRV_H_
34 #define TAMAGAWA_DRV_H_
66 #define TAMAGAWA_MULTI_CH0 (1 << 0)
71 #define TAMAGAWA_MULTI_CH1 (1 << 1)
76 #define TAMAGAWA_MULTI_CH2 (1 << 2)
81 #define MAX_CHANNELS (3)
86 #define MAX_EEPROM_ADDRESS (127)
91 #define MAX_EEPROM_WRITE_DATA (255)
struct tamagawa_priv * tamagawa_init(struct tamagawa_xchg *tamagawa_xchg, void *pruss_cfg, uint32_t slice_value)
Initialize tamagawa firmware interface address and get the pointer to struct tamagawa_priv instance.
uint16_t tx_div
Definition: tamagawa_drv.h:248
@ DATA_ID_0
Definition: tamagawa_drv.h:99
uint16_t rx_en_cnt
Definition: tamagawa_drv.h:278
volatile uint32_t edf
Definition: tamagawa_drv.h:214
void tamagawa_command_send(struct tamagawa_priv *priv)
trigger sending the tamagawa command in PRU
void tamagawa_config_clock(struct tamagawa_priv *priv, struct tamagawa_clk_cfg *clk_cfg)
configure tamagawa clock
Structure defining Tamagawa interface.
Definition: tamagawa_drv.h:232
int32_t tamagawa_command_build(struct tamagawa_priv *priv, int32_t cmd, uint8_t gTamagawa_multi_ch_mask)
setup the tamagawa command in the PRU interface buffer
uint8_t edf
Definition: tamagawa_drv.h:178
data_id
Data ID codes.
Definition: tamagawa_drv.h:98
Definition: tamagawa_drv.h:201
uint8_t enid
Definition: tamagawa_drv.h:175
uint8_t tamagawa_multi_channel_detected(struct tamagawa_priv *priv)
select channels detected in multi channel configuration by tamagawa master. required to be invoked ...
void tamagawa_update_data_id(struct tamagawa_priv *priv, int32_t cmd)
update the current requested command id in tamagawa interface.
int32_t tamagawa_crc_verify(struct tamagawa_priv *priv)
verify the CRC computed with the encoder crc.
uint32_t version
Definition: tamagawa_drv.h:193
volatile uint32_t oversample_rate
Definition: tamagawa_drv.h:191
volatile uint32_t pos_word0
Definition: tamagawa_drv.h:122
Tamagawa Interface.
Definition: tamagawa_drv.h:185
int32_t ICSS_CFG_PRUx_ED_RXCFG
Definition: tamagawa_drv.h:267
Used to structures defining the Tamagawa interface, PRU slice and register offsets.
Definition: tamagawa_drv.h:276
volatile uint32_t crc
Definition: tamagawa_drv.h:215
uint32_t abm
Definition: tamagawa_drv.h:172
volatile uint8_t trigger
Definition: tamagawa_drv.h:161
uint8_t ch_mask
Definition: tamagawa_drv.h:186
uint8_t cf
Definition: tamagawa_drv.h:173
volatile uint32_t word0
Definition: tamagawa_drv.h:139
void tamagawa_config_channel(struct tamagawa_priv *priv, uint32_t ch)
select channel to be used by tamagawa master
struct tamagawa_xchg * tamagawa_xchg
Definition: tamagawa_drv.h:279
uint32_t data
Definition: tisci_rm_psil.h:1
struct tamagawa_ch_info ch[3]
Definition: tamagawa_drv.h:235
@ DATA_ID_8
Definition: tamagawa_drv.h:105
volatile uint32_t word1
Definition: tamagawa_drv.h:218
Structure defining Tamagawa command interface.
Definition: tamagawa_drv.h:138
volatile uint32_t rx_div_factor
Definition: tamagawa_drv.h:187
uint8_t rx_frames
Definition: tamagawa_drv.h:197
Structure defining Tamagawa configuration interface.
Definition: tamagawa_drv.h:155
int32_t tamagawa_command_process(struct tamagawa_priv *priv, int32_t cmd, uint8_t gTamagawa_multi_ch_mask)
send the tamagawa command and wait till firmware acknowledges
volatile uint32_t cmd
Definition: tamagawa_drv.h:212
uint8_t ch2
Definition: tamagawa_drv.h:204
void tamagawa_set_baudrate(struct tamagawa_priv *priv, double baudrate)
Update the values for oversample rate and division factor for Tx and Rx.
@ DATA_ID_2
Definition: tamagawa_drv.h:101
int32_t tamagawa_parse(int32_t cmd, struct tamagawa_priv *priv)
Parse the data in tamagawa interface.
void tamagawa_update_adf(struct tamagawa_priv *priv, uint32_t val, uint32_t ch)
update the adf(address of EEPROM) field entered by user for EEPROM command in tamagawa interface.
uint8_t tx_frames
Definition: tamagawa_drv.h:196
@ DATA_ID_1
Definition: tamagawa_drv.h:100
volatile uint8_t opmode
Definition: tamagawa_drv.h:156
Tamagawa EEPROM Interface.
Definition: tamagawa_drv.h:211
void tamagawa_update_edf(struct tamagawa_priv *priv, uint32_t val, uint32_t ch)
update the edf(data for EEPROM) field entered by user for EEPROM command in tamagawa interface.
uint16_t rx_div_attr
Definition: tamagawa_drv.h:250
uint8_t sf
Definition: tamagawa_drv.h:174
@ DATA_ID_C
Definition: tamagawa_drv.h:106
@ DATA_ID_7
Definition: tamagawa_drv.h:104
uint8_t data_id
Definition: tamagawa_drv.h:194
int32_t ICSS_CFG_PRUx_ED_CH1_CFG1
Definition: tamagawa_drv.h:264
volatile uint32_t word2
Definition: tamagawa_drv.h:219
struct tamagawa_cmd cmd
Definition: tamagawa_drv.h:234
volatile uint32_t pos_word2
Definition: tamagawa_drv.h:126
int32_t slice_value
Definition: tamagawa_drv.h:281
uint8_t ch1
Definition: tamagawa_drv.h:203
void tamagawa_config_multi_channel_mask(struct tamagawa_priv *priv, uint8_t mask)
select mask of channels to be used in multi channel configuration by tamagawa master
Tamagawa Interface Received data.
Definition: tamagawa_drv.h:170
int32_t ICSS_CFG_PRUx_ED_CH1_CFG0
Definition: tamagawa_drv.h:261
volatile uint32_t pos_word1
Definition: tamagawa_drv.h:124
@ DATA_ID_D
Definition: tamagawa_drv.h:107
uint8_t ch0
Definition: tamagawa_drv.h:202
void tamagawa_eeprom_crc_reinit(struct tamagawa_priv *priv)
Reset the values of the variables used in CRC calculation to 0.
int32_t ICSS_CFG_PRUx_ED_CH0_CFG1
Definition: tamagawa_drv.h:263
void * pruss_cfg
Definition: tamagawa_drv.h:280
volatile uint32_t word1
Definition: tamagawa_drv.h:141
uint8_t adf
Definition: tamagawa_drv.h:177
@ DATA_ID_3
Definition: tamagawa_drv.h:102
void tamagawa_command_wait(struct tamagawa_priv *priv)
wait till PRU finishes tamagawa transaction
int32_t ICSS_CFG_PRUx_ED_TXCFG
Definition: tamagawa_drv.h:268
volatile uint32_t adf
Definition: tamagawa_drv.h:213
volatile uint32_t cal_crc
Definition: tamagawa_drv.h:128
void tamagawa_config_host_trigger(struct tamagawa_priv *priv)
configure tamagawa master for host trigger mode
volatile uint8_t status
Definition: tamagawa_drv.h:163
volatile uint8_t channel
Definition: tamagawa_drv.h:157
int32_t ICSS_CFG_PRUx_ED_CH2_CFG0
Definition: tamagawa_drv.h:262
Used to configure the Tamagawa Clock.
Definition: tamagawa_drv.h:246
uint16_t rx_div
Definition: tamagawa_drv.h:247
void tamagawa_update_crc(struct tamagawa_priv *priv, int32_t cmd, uint32_t ch)
Pass the values of CF(Control Field), ADF(address of EEPROM) and EDF(data for EEPROM) to the CRC calc...
void tamagawa_multi_channel_set_cur(struct tamagawa_priv *priv, uint32_t ch)
In multi channel configuration, select channel before receive processing in multi channel configura...
int32_t channel
Definition: tamagawa_drv.h:277
uint64_t eeprom_tx_data
Definition: tamagawa_drv.h:221
@ DATA_ID_NUM
Definition: tamagawa_drv.h:108
uint64_t tamagawa_prepare_eeprom_tx_data(uint64_t eeprom_tx_data, volatile uint32_t data)
Add the start and the stop bit to the reversed data.
struct register_offsets register_offset_val
Definition: tamagawa_drv.h:282
Used to store the register offsets depending on different PRU slices.
Definition: tamagawa_drv.h:259
int32_t ICSS_CFG_PRUx_ED_CH0_CFG0
Definition: tamagawa_drv.h:260
uint8_t crc
Definition: tamagawa_drv.h:179
uint16_t rx_en_cnt
Definition: tamagawa_drv.h:249
uint8_t almc
Definition: tamagawa_drv.h:176
Structure defining tamagawa per channel interface.
Definition: tamagawa_drv.h:121
volatile uint32_t word0
Definition: tamagawa_drv.h:217
volatile uint32_t tx_div_factor
Definition: tamagawa_drv.h:189
uint32_t abs
Definition: tamagawa_drv.h:171
int32_t ICSS_CFG_GPCFGx
Definition: tamagawa_drv.h:266
uint32_t tamagawa_reverse_bits(int8_t data)
Reverse the bits of a number.
void tamagawa_config_periodic_trigger(struct tamagawa_priv *priv)
configure tamagawa master in periodic trigger mode
@ DATA_ID_6
Definition: tamagawa_drv.h:103
void tamagawa_prepare_eeprom_command(struct tamagawa_priv *priv, int32_t cmd, uint32_t ch)
Prepare the required EEPROM command from the CF(Control Field), ADF(address of EEPROM) and EDF(data f...
int32_t ICSS_CFG_PRUx_ED_CH2_CFG1
Definition: tamagawa_drv.h:265