|
| #define | ADIOL100_NUM_CHANNELS 2 |
| |
| #define | ADIOL100_REG_INTERRUPTG 0x0000 |
| |
| #define | ADIOL100_REG_RXFIFOSTAT_A 0x0001 |
| |
| #define | ADIOL100_REG_INTERRUPT_A 0x0002 |
| |
| #define | ADIOL100_REG_STATUS_A 0x0003 |
| |
| #define | ADIOL100_REG_TXRXDATA_A 0x0004 |
| |
| #define | ADIOL100_REG_FRAMCTRL1_A 0x0005 |
| |
| #define | ADIOL100_REG_FRAMCTRL2_A 0x0006 |
| |
| #define | ADIOL100_REG_CYCLTMR_A 0x0007 |
| |
| #define | ADIOL100_REG_TRIGASSIGN_A 0x0008 |
| |
| #define | ADIOL100_REG_CQSET_A 0x0009 |
| |
| #define | ADIOL100_REG_CQCURLIM_A 0x000A |
| |
| #define | ADIOL100_REG_DICFG_A 0x000C |
| |
| #define | ADIOL100_REG_INTEN_A 0x000E |
| |
| #define | ADIOL100_REG_LPCFG_A 0x000D |
| |
| #define | ADIOL100_REG_RXFIFOSTAT_B 0x0011 |
| |
| #define | ADIOL100_REG_INTERRUPT_B 0x0012 |
| |
| #define | ADIOL100_REG_STATUS_B 0x0013 |
| |
| #define | ADIOL100_REG_TXRXDATA_B 0x0014 |
| |
| #define | ADIOL100_REG_FRAMCTRL1_B 0x0015 |
| |
| #define | ADIOL100_REG_FRAMCTRL2_B 0x0016 |
| |
| #define | ADIOL100_REG_CYCLTMR_B 0x0017 |
| |
| #define | ADIOL100_REG_TRIGASSIGN_B 0x0018 |
| |
| #define | ADIOL100_REG_CQSET_B 0x0019 |
| |
| #define | ADIOL100_REG_CQCURLIM_B 0x001A |
| |
| #define | ADIOL100_REG_DICFG_B 0x001C |
| |
| #define | ADIOL100_REG_INTEN_B 0x001E |
| |
| #define | ADIOL100_REG_LPCFG_B 0x001D |
| |
| #define | ADIOL100_REG_WATCHDOG 0x000F |
| |
| #define | ADIOL100_REG_TRIGGER 0x0010 |
| |
| #define | ADIOL100_REG_INTERRUPTG_EN 0x1F00 |
| |
| #define | ADIOL100_REG_CLOCKCFG 0x1F01 |
| |
| #define | ADIOL100_REG_REVISIONID 0x1F02 |
| |
| #define | ADIOL100_REG_DEVICEID 0x1F03 |
| |
| #define | ADIOL100_REG_SPIFIFO_A_BURST 0x1F04 |
| |
| #define | ADIOL100_REG_SPIFIFO_B_BURST 0x1F05 |
| |
| #define | ADIOL100_BURST_RDLEN_MSK NO_OS_GENMASK(15, 8) |
| |
| #define | ADIOL100_BURST_WRLEN_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_REG_LPFETPWRCFG_A 0x1F10 |
| |
| #define | ADIOL100_REG_LPCURRENTCFG_A 0x1F11 |
| |
| #define | ADIOL100_REG_LPFETPROTECT_A 0x1F12 |
| |
| #define | ADIOL100_REG_LPSLOPE_A 0x1F13 |
| |
| #define | ADIOL100_REG_LPRETRY_A 0x1F14 |
| |
| #define | ADIOL100_REG_LPFETPWRCFG_B 0x1F20 |
| |
| #define | ADIOL100_REG_LPCURRENTCFG_B 0x1F21 |
| |
| #define | ADIOL100_REG_LPFETPROTECT_B 0x1F22 |
| |
| #define | ADIOL100_REG_LPSLOPE_B 0x1F23 |
| |
| #define | ADIOL100_REG_LPRETRY_B 0x1F24 |
| |
| #define | ADIOL100_REG_CQEXTCFG_A 0x000B |
| |
| #define | ADIOL100_REG_CQEXTCFG_B 0x001B |
| |
| #define | ADIOL100_CQCL_S NO_OS_BIT(13) |
| |
| #define | ADIOL100_CQCL_L NO_OS_BIT(12) |
| |
| #define | ADIOL100_CQTO_L NO_OS_BIT(11) |
| |
| #define | ADIOL100_CQSLOERR_L NO_OS_BIT(10) |
| |
| #define | ADIOL100_CQOL_L NO_OS_BIT(9) |
| |
| #define | ADIOL100_CQEXTCLNOM_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_ESTCOM_TIMEOUT_MS 160 |
| |
| #define | ADIOL100_REG_EXTRAPAGE 0x001F |
| |
| #define | ADIOL100_PAGED_BASE 0x1F00 |
| |
| #define | ADIOL100_AUTOCYCLERDIS NO_OS_BIT(8) |
| |
| #define | ADIOL100_TRIGA_MSK NO_OS_GENMASK(7, 4) |
| |
| #define | ADIOL100_TRIGEN NO_OS_BIT(0) |
| |
| #define | ADIOL100_IEC3THDI NO_OS_BIT(15) |
| |
| #define | ADIOL100_SOURCESINKDI NO_OS_BIT(14) |
| |
| #define | ADIOL100_SINKSELDI_MSK NO_OS_GENMASK(13, 12) |
| |
| #define | ADIOL100_GLITCHFILTERDI_MSK NO_OS_GENMASK(11, 10) |
| |
| #define | ADIOL100_INVDI NO_OS_BIT(2) |
| |
| #define | ADIOL100_LEDSYNC NO_OS_BIT(7) |
| |
| #define | ADIOL100_TRIGGER_MSK NO_OS_GENMASK(3, 0) |
| |
| #define | ADIOL100_UARTPAREN NO_OS_BIT(15) |
| |
| #define | ADIOL100_SAFEPULSDET NO_OS_BIT(14) |
| |
| #define | ADIOL100_ESTCOMFACLR NO_OS_BIT(13) |
| |
| #define | ADIOL100_INSCHKS NO_OS_BIT(12) |
| |
| #define | ADIOL100_UARTBAUD_MSK NO_OS_GENMASK(11, 9) |
| |
| #define | ADIOL100_UARTEN NO_OS_BIT(8) |
| |
| #define | ADIOL100_COMRT_MSK NO_OS_GENMASK(7, 6) |
| |
| #define | ADIOL100_ESTCOM NO_OS_BIT(5) |
| |
| #define | ADIOL100_WUPULS NO_OS_BIT(4) |
| |
| #define | ADIOL100_TXKEEPMSG NO_OS_BIT(3) |
| |
| #define | ADIOL100_FRAMEREN NO_OS_BIT(2) |
| |
| #define | ADIOL100_CYCLETMREN NO_OS_BIT(1) |
| |
| #define | ADIOL100_CQSEND NO_OS_BIT(0) |
| |
| #define | ADIOL100_TCYCLBS_MSK NO_OS_GENMASK(7, 6) |
| |
| #define | ADIOL100_TCYCLM_MSK NO_OS_GENMASK(5, 0) |
| |
| #define | ADIOL100_CYCLTMR_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_CHANRST NO_OS_BIT(15) |
| |
| #define | ADIOL100_TSIZEERRINH NO_OS_BIT(14) |
| |
| #define | ADIOL100_TXFIFORSTN NO_OS_BIT(13) |
| |
| #define | ADIOL100_RXFIFORSTN NO_OS_BIT(12) |
| |
| #define | ADIOL100_CKTERRINH NO_OS_BIT(11) |
| |
| #define | ADIOL100_MSGREPEAT NO_OS_BIT(10) |
| |
| #define | ADIOL100_BDELAY_MSK NO_OS_GENMASK(9, 8) |
| |
| #define | ADIOL100_DDELAY_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_EXTCLKOKINTEN NO_OS_BIT(15) |
| |
| #define | ADIOL100_WDGINTEN NO_OS_BIT(14) |
| |
| #define | ADIOL100_SPICRCERRINTEN NO_OS_BIT(13) |
| |
| #define | ADIOL100_EXTCLKMISINTEN NO_OS_BIT(12) |
| |
| #define | ADIOL100_THSHDNINTEN NO_OS_BIT(11) |
| |
| #define | ADIOL100_THWARNINTEN NO_OS_BIT(10) |
| |
| #define | ADIOL100_V24ERRINTEN NO_OS_BIT(9) |
| |
| #define | ADIOL100_V24WARNINTEN NO_OS_BIT(8) |
| |
| #define | ADIOL100_EXTCLKOKINT NO_OS_BIT(15) |
| |
| #define | ADIOL100_WDGINT NO_OS_BIT(14) |
| |
| #define | ADIOL100_SPICRCERRINT NO_OS_BIT(13) |
| |
| #define | ADIOL100_EXTCLKMISINT NO_OS_BIT(12) |
| |
| #define | ADIOL100_THSHDNINT NO_OS_BIT(11) |
| |
| #define | ADIOL100_THWARNINT NO_OS_BIT(10) |
| |
| #define | ADIOL100_V24ERRINT NO_OS_BIT(9) |
| |
| #define | ADIOL100_V24WARNINT NO_OS_BIT(8) |
| |
| #define | ADIOL100_EXTCLKOKST NO_OS_BIT(7) |
| |
| #define | ADIOL100_WDGST NO_OS_BIT(6) |
| |
| #define | ADIOL100_SPICRCERRSTST NO_OS_BIT(5) |
| |
| #define | ADIOL100_EXTCLKMISST NO_OS_BIT(4) |
| |
| #define | ADIOL100_THSHDNST NO_OS_BIT(3) |
| |
| #define | ADIOL100_THWARNST NO_OS_BIT(2) |
| |
| #define | ADIOL100_V24ERRST NO_OS_BIT(1) |
| |
| #define | ADIOL100_V24WARNST NO_OS_BIT(0) |
| |
| #define | ADIOL100_DELAYERRINT NO_OS_BIT(15) |
| |
| #define | ADIOL100_SAFEPULSRINT NO_OS_BIT(14) |
| |
| #define | ADIOL100_TXERRINT NO_OS_BIT(13) |
| |
| #define | ADIOL100_RXERRINT NO_OS_BIT(12) |
| |
| #define | ADIOL100_ESTCOMSUCINT NO_OS_BIT(11) |
| |
| #define | ADIOL100_ESTCOMFAILINT NO_OS_BIT(10) |
| |
| #define | ADIOL100_RXDARDYINT NO_OS_BIT(9) |
| |
| #define | ADIOL100_DILEVELINT NO_OS_BIT(8) |
| |
| #define | ADIOL100_LPERRINT NO_OS_BIT(7) |
| |
| #define | ADIOL100_LPUVINT NO_OS_BIT(6) |
| |
| #define | ADIOL100_CQDRVERRINT NO_OS_BIT(5) |
| |
| #define | ADIOL100_CQTHEINT NO_OS_BIT(4) |
| |
| #define | ADIOL100_CQCURLIMINT NO_OS_BIT(3) |
| |
| #define | ADIOL100_CQVWINT NO_OS_BIT(2) |
| |
| #define | ADIOL100_CQRXWINT NO_OS_BIT(1) |
| |
| #define | ADIOL100_CQLEVELINT NO_OS_BIT(0) |
| |
| #define | ADIOL100_TRANSMERR NO_OS_BIT(15) |
| |
| #define | ADIOL100_TERRSEND NO_OS_BIT(14) |
| |
| #define | ADIOL100_TCHKSMERR NO_OS_BIT(13) |
| |
| #define | ADIOL100_TSIZEERR NO_OS_BIT(12) |
| |
| #define | ADIOL100_RCHKSMERR NO_OS_BIT(11) |
| |
| #define | ADIOL100_RSIZEERR NO_OS_BIT(10) |
| |
| #define | ADIOL100_FRAMEERR NO_OS_BIT(9) |
| |
| #define | ADIOL100_PARITYERR NO_OS_BIT(8) |
| |
| #define | ADIOL100_RXFIFOLVL_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_COMLOST NO_OS_BIT(13) |
| |
| #define | ADIOL100_RXDARDY NO_OS_BIT(9) |
| |
| #define | ADIOL100_DILEVEL NO_OS_BIT(8) |
| |
| #define | ADIOL100_LPERR NO_OS_BIT(7) |
| |
| #define | ADIOL100_LPUV NO_OS_BIT(6) |
| |
| #define | ADIOL100_CQDRVERR NO_OS_BIT(5) |
| |
| #define | ADIOL100_CQLEVEL NO_OS_BIT(0) |
| |
| #define | ADIOL100_IEC3TH NO_OS_BIT(15) |
| |
| #define | ADIOL100_SOURCESINK NO_OS_BIT(14) |
| |
| #define | ADIOL100_SINKSEL_MSK NO_OS_GENMASK(13, 12) |
| |
| #define | ADIOL100_GLITCHFILTER_MSK NO_OS_GENMASK(11, 10) |
| |
| #define | ADIOL100_CQSLEW_MSK NO_OS_GENMASK(9, 8) |
| |
| #define | ADIOL100_NPN NO_OS_BIT(7) |
| |
| #define | ADIOL100_PUSHPUL NO_OS_BIT(6) |
| |
| #define | ADIOL100_DRVEN NO_OS_BIT(5) |
| |
| #define | ADIOL100_CQEXT NO_OS_BIT(3) |
| |
| #define | ADIOL100_INVCQ NO_OS_BIT(2) |
| |
| #define | ADIOL100_TXEN NO_OS_BIT(1) |
| |
| #define | ADIOL100_LPFETREVEN NO_OS_BIT(15) |
| |
| #define | ADIOL100_LPEN NO_OS_BIT(8) |
| |
| #define | ADIOL100_LPCLNOM_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_LPFETPWRMAX_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_LPCURRMAX_MSK NO_OS_GENMASK(15, 8) |
| |
| #define | ADIOL100_LPCURRMIN_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_LPOLTIMOUT_MSK NO_OS_GENMASK(15, 8) |
| |
| #define | ADIOL100_LPCLTIMOUT_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_LPSLOPE_MSK NO_OS_GENMASK(15, 8) |
| |
| #define | ADIOL100_LPSLOPEBL_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_LPARTIM_MSK NO_OS_GENMASK(13, 8) |
| |
| #define | ADIOL100_LPAR_MSK NO_OS_GENMASK(3, 0) |
| |
| #define | ADIOL100_WDGTIMEBASE_MSK NO_OS_GENMASK(11, 10) |
| |
| #define | ADIOL100_WDGTIME_MSK NO_OS_GENMASK(9, 4) |
| |
| #define | ADIOL100_WDGLOCK NO_OS_BIT(3) |
| |
| #define | ADIOL100_WDGMODE NO_OS_BIT(2) |
| |
| #define | ADIOL100_WDGENABLE NO_OS_BIT(1) |
| |
| #define | ADIOL100_WDGCLEAR NO_OS_BIT(0) |
| |
| #define | ADIOL100_SPICRCEN NO_OS_BIT(7) |
| |
| #define | ADIOL100_CLKOEN NO_OS_BIT(4) |
| |
| #define | ADIOL100_CLKDIV_MSK NO_OS_GENMASK(3, 2) |
| |
| #define | ADIOL100_CLOCKCFG_MSK NO_OS_GENMASK(1, 0) |
| |
| #define | ADIOL100_CQVTHRH_MSK NO_OS_GENMASK(15, 14) |
| |
| #define | ADIOL100_CQVTHRL_MSK NO_OS_GENMASK(13, 12) |
| |
| #define | ADIOL100_RXVTHRH_MSK NO_OS_GENMASK(11, 10) |
| |
| #define | ADIOL100_RXVTHRL_MSK NO_OS_GENMASK(9, 8) |
| |
| #define | ADIOL100_CQCL_MSK NO_OS_GENMASK(7, 5) |
| |
| #define | ADIOL100_CLBL_MSK NO_OS_GENMASK(4, 3) |
| |
| #define | ADIOL100_ARTTMO_MSK NO_OS_GENMASK(2, 1) |
| |
| #define | ADIOL100_ARTEN NO_OS_BIT(0) |
| |
| #define | ADIOL100_REG_CQFETPWRCFG_A 0x1F18 |
| |
| #define | ADIOL100_REG_CQCURRENTCFG_A 0x1F19 |
| |
| #define | ADIOL100_REG_CQFETPROTECT_A 0x1F1A |
| |
| #define | ADIOL100_REG_CQSLOPE_A 0x1F1B |
| |
| #define | ADIOL100_REG_CQRETRY_A 0x1F1C |
| |
| #define | ADIOL100_REG_CQFETPWRCFG_B 0x1F28 |
| |
| #define | ADIOL100_REG_CQCURRENTCFG_B 0x1F29 |
| |
| #define | ADIOL100_REG_CQFETPROTECT_B 0x1F2A |
| |
| #define | ADIOL100_REG_CQSLOPE_B 0x1F2B |
| |
| #define | ADIOL100_REG_CQRETRY_B 0x1F2C |
| |
| #define | ADIOL100_CQFETPWRMAX_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_CQCURRMAX_MSK NO_OS_GENMASK(15, 8) |
| |
| #define | ADIOL100_CQCURRMIN_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_CQOLTIMOUT_MSK NO_OS_GENMASK(15, 8) |
| |
| #define | ADIOL100_CQCLTIMOUT_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_CQFETSLOPE_MSK NO_OS_GENMASK(15, 8) |
| |
| #define | ADIOL100_CQFETSLOPEBL_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | ADIOL100_CQARTIM_MSK NO_OS_GENMASK(13, 8) |
| |
| #define | ADIOL100_CQAR_MSK NO_OS_GENMASK(3, 0) |
| |
| #define | ADIOL100_REG_V24VOLT 0x1F30 |
| |
| #define | ADIOL100_REG_V24VOLTMIN 0x1F31 |
| |
| #define | ADIOL100_REG_V24VOLTMAX 0x1F32 |
| |
| #define | ADIOL100_REG_TEMP 0x1F33 |
| |
| #define | ADIOL100_REG_TEMPMIN 0x1F34 |
| |
| #define | ADIOL100_REG_TEMPMAX 0x1F35 |
| |
| #define | ADIOL100_REG_CQAVOLT 0x1F40 |
| |
| #define | ADIOL100_REG_CQAVOLTMIN 0x1F41 |
| |
| #define | ADIOL100_REG_CQAVOLTMAX 0x1F42 |
| |
| #define | ADIOL100_REG_CQACUR 0x1F43 |
| |
| #define | ADIOL100_REG_CQACURMIN 0x1F44 |
| |
| #define | ADIOL100_REG_CQACURMAX 0x1F45 |
| |
| #define | ADIOL100_REG_LPAVOLT 0x1F46 |
| |
| #define | ADIOL100_REG_LPAVOLTMIN 0x1F47 |
| |
| #define | ADIOL100_REG_LPAVOLTMAX 0x1F48 |
| |
| #define | ADIOL100_REG_LPACUR 0x1F49 |
| |
| #define | ADIOL100_REG_LPACURMIN 0x1F4A |
| |
| #define | ADIOL100_REG_LPACURMAX 0x1F4B |
| |
| #define | ADIOL100_REG_CQBVOLT 0x1F50 |
| |
| #define | ADIOL100_REG_CQBVOLTMIN 0x1F51 |
| |
| #define | ADIOL100_REG_CQBVOLTMAX 0x1F52 |
| |
| #define | ADIOL100_REG_CQBCUR 0x1F53 |
| |
| #define | ADIOL100_REG_CQBCURMIN 0x1F54 |
| |
| #define | ADIOL100_REG_CQBCURMAX 0x1F55 |
| |
| #define | ADIOL100_REG_LPBVOLT 0x1F56 |
| |
| #define | ADIOL100_REG_LPBVOLTMIN 0x1F57 |
| |
| #define | ADIOL100_REG_LPBVOLTMAX 0x1F58 |
| |
| #define | ADIOL100_REG_LPBCUR 0x1F59 |
| |
| #define | ADIOL100_REG_LPBCURMIN 0x1F5A |
| |
| #define | ADIOL100_REG_LPBCURMAX 0x1F5B |
| |
| #define | ADIOL100_REG_CQMEASCONF 0x1F5F |
| |
| #define | ADIOL100_TEMPRESSTAT NO_OS_BIT(5) |
| |
| #define | ADIOL100_RESV24STAT NO_OS_BIT(4) |
| |
| #define | ADIOL100_RESLPSTATB NO_OS_BIT(3) |
| |
| #define | ADIOL100_RESLPSTATA NO_OS_BIT(2) |
| |
| #define | ADIOL100_RESCQSTATB NO_OS_BIT(1) |
| |
| #define | ADIOL100_RESCQSTATA NO_OS_BIT(0) |
| |
| #define | ADIOL100_ADC_DATA_MSK NO_OS_GENMASK(12, 0) |
| |
| #define | ADIOL100_ADC_CHB_OFFSET 0x10 |
| |
| #define | ADIOL100_REG_LED12BGT 0x1F60 |
| |
| #define | ADIOL100_REG_LED1RSEQ 0x1F61 |
| |
| #define | ADIOL100_REG_LED1GSEQ 0x1F62 |
| |
| #define | ADIOL100_REG_LED2RSEQ 0x1F63 |
| |
| #define | ADIOL100_REG_LED2GSEQ 0x1F64 |
| |
| #define | ADIOL100_REG_LED34BGT 0x1F65 |
| |
| #define | ADIOL100_REG_LED3RSEQ 0x1F66 |
| |
| #define | ADIOL100_REG_LED3GSEQ 0x1F67 |
| |
| #define | ADIOL100_REG_LED4RSEQ 0x1F68 |
| |
| #define | ADIOL100_REG_LED4GSEQ 0x1F69 |
| |
| #define | ADIOL100_REG_LEDCONFIG 0x1F6A |
| |
| #define | ADIOL100_LED_HI_GREEN_MSK NO_OS_GENMASK(15, 12) |
| |
| #define | ADIOL100_LED_HI_RED_MSK NO_OS_GENMASK(11, 8) |
| |
| #define | ADIOL100_LED_LO_GREEN_MSK NO_OS_GENMASK(7, 4) |
| |
| #define | ADIOL100_LED_LO_RED_MSK NO_OS_GENMASK(3, 0) |
| |
| #define | ADIOL100_LED4CFG_MSK NO_OS_GENMASK(14, 12) |
| |
| #define | ADIOL100_LED3CFG_MSK NO_OS_GENMASK(10, 8) |
| |
| #define | ADIOL100_LED2CFG_MSK NO_OS_GENMASK(6, 4) |
| |
| #define | ADIOL100_LED1CFG_MSK NO_OS_GENMASK(2, 0) |
| |
| #define | ADIOL100_DEVICE_ID 0x0100 |
| |
| #define | ADIOL101_DEVICE_ID 0x0101 |
| |
| #define | ADIOL100_TX_HDR_LEN 3 |
| |
| #define | ADIOL100_TX_MSG_MAX_LEN 66 |
| |
| #define | ADIOL100_TX_MAX_LEN (ADIOL100_TX_HDR_LEN + ADIOL100_TX_MSG_MAX_LEN) |
| |
| #define | ADIOL100_RX_HDR_LEN 2 |
| |
| #define | ADIOL100_RX_MSG_MAX_LEN 65 |
| |
| #define | ADIOL100_RX_MAX_LEN (ADIOL100_RX_HDR_LEN + ADIOL100_RX_MSG_MAX_LEN) |
| |
| #define | ADIOL100_CHIP_ADDR_MAX 3 |
| |
| #define | ADIOL100_LED_GSEQ_REG_OFFSET 1 |
| |
| #define | ADIOL100_READ 1 |
| |
| #define | ADIOL100_WRITE 0 |
| |
| #define | ADIOL100_ADDR_SHIFT 6 |
| |
| #define | ADIOL100_REG_SHIFT 1 |
| |
| #define | ADIOL100_SPI_CMD(addr, reg, rw) |
| |
| #define | ADIOL100_SPI_DIRECT_LEN 3 |
| |
| #define | ADIOL100_SPI_PAGED_LEN 4 |
| |
| #define | ADIOL100_REG_PAGE_MSK 0xFF00 |
| |
| #define | ADIOL100_REG_PAGE_OFFSET(reg) |
| |
|
| enum | adiol100_channel {
ADIOL100_CH_A = 0
,
ADIOL100_CH_B = 1
} |
| |
| enum | adiol100_cq_current_limit {
ADIOL100_CQCL_10MA = 0
,
ADIOL100_CQCL_15MA = 1
,
ADIOL100_CQCL_20MA = 2
,
ADIOL100_CQCL_50MA = 3
,
ADIOL100_CQCL_100MA = 4
,
ADIOL100_CQCL_200MA = 5
,
ADIOL100_CQCL_300MA = 6
,
ADIOL100_CQCL_500MA = 7
} |
| |
| enum | adiol100_blanking_time {
ADIOL100_CLBL_150US = 0
,
ADIOL100_CLBL_500US = 1
,
ADIOL100_CLBL_1MS = 2
,
ADIOL100_CLBL_5MS = 3
} |
| |
| enum | adiol100_autoretry_timeout {
ADIOL100_ARTTMO_5MS = 0
,
ADIOL100_ARTTMO_10MS = 1
,
ADIOL100_ARTTMO_50MS = 2
,
ADIOL100_ARTTMO_100MS = 3
} |
| |
| enum | adiol100_voltage_threshold {
ADIOL100_VTHR_2V = 0
,
ADIOL100_VTHR_4V = 1
,
ADIOL100_VTHR_6V = 2
,
ADIOL100_VTHR_8V = 3
} |
| |
| enum | adiol100_cq_mode {
ADIOL100_CQ_NPN = 0
,
ADIOL100_CQ_PUSHPULL = 1
} |
| |
| enum | adiol100_cq_drv {
ADIOL100_CQ_DRV_DIS = 0
,
ADIOL100_CQ_DRV_EN = 1
} |
| |
| enum | adiol100_autoretry {
ADIOL100_AUTORETRY_DIS = 0
,
ADIOL100_AUTORETRY_EN = 1
} |
| |
| enum | adiol100_lp_en {
ADIOL100_LP_DIS = 0
,
ADIOL100_LP_EN = 1
} |
| |
| enum | adiol100_lp_rev {
ADIOL100_LP_REV_DIS = 0
,
ADIOL100_LP_REV_EN = 1
} |
| |
| enum | adiol100_ins_chks {
ADIOL100_CHKS_DIS = 0
,
ADIOL100_CHKS_EN = 1
} |
| |
| enum | adiol100_framer {
ADIOL100_FRAMER_DIS = 0
,
ADIOL100_FRAMER_EN = 1
} |
| |
| enum | adiol100_uart_par {
ADIOL100_UARTPAR_DIS = 0
,
ADIOL100_UARTPAR_EN = 1
} |
| |
| enum | adiol100_uart_en {
ADIOL100_UART_DIS = 0
,
ADIOL100_UART_EN = 1
} |
| |
| enum | adiol100_safe_pulse_det {
ADIOL100_SAFEPULS_DIS = 0
,
ADIOL100_SAFEPULS_EN = 1
} |
| |
| enum | adiol100_uart_baud {
ADIOL100_UART_230400 = 0
,
ADIOL100_UART_115200 = 1
,
ADIOL100_UART_38400 = 2
,
ADIOL100_UART_19200 = 3
,
ADIOL100_UART_4800 = 4
,
ADIOL100_UART_2400 = 5
} |
| |
| enum | adiol100_ckt_err_inh {
ADIOL100_CKTERR_SEND = 0
,
ADIOL100_CKTERR_DISCARD = 1
} |
| |
| enum | adiol100_msg_repeat {
ADIOL100_MSGREP_DIS = 0
,
ADIOL100_MSGREP_EN = 1
} |
| |
| enum | adiol100_bdelay {
ADIOL100_BDELAY_0TBIT = 0
,
ADIOL100_BDELAY_1TBIT = 1
,
ADIOL100_BDELAY_2TBIT = 2
,
ADIOL100_BDELAY_3TBIT = 3
} |
| |
| enum | adiol100_tsize_err_inh {
ADIOL100_TSIZEERR_SEND = 0
,
ADIOL100_TSIZEERR_DISCARD = 1
} |
| |
| enum | adiol100_wdg_timebase {
ADIOL100_WDG_100US = 0
,
ADIOL100_WDG_500US = 1
,
ADIOL100_WDG_2MS = 2
} |
| |
| enum | adiol100_wdg_mode {
ADIOL100_WDG_MODE_SPI = 0
,
ADIOL100_WDG_MODE_CLEAR = 1
} |
| |
| enum | adiol100_wdg_en {
ADIOL100_WDG_DIS = 0
,
ADIOL100_WDG_EN = 1
} |
| |
| enum | adiol100_wdg_lock {
ADIOL100_WDG_UNLOCKED = 0
,
ADIOL100_WDG_LOCKED = 1
} |
| |
| enum | adiol100_keep_msg {
ADIOL100_DISCARD_MSG = 0
,
ADIOL100_KEEP_MSG = 1
} |
| |
| enum | adiol100_cq_slew_rate {
ADIOL100_CQSLEW_250NS = 0
,
ADIOL100_CQSLEW_500NS = 1
,
ADIOL100_CQSLEW_1250NS = 2
,
ADIOL100_CQSLEW_5000NS = 3
} |
| |
| enum | adiol100_sink_sel {
ADIOL100_SINKSEL_OFF = 0
,
ADIOL100_SINKSEL_5MA = 1
,
ADIOL100_SINKSEL_2MA = 2
,
ADIOL100_SINKSEL_150UA = 3
} |
| |
| enum | adiol100_iec3th {
ADIOL100_IEC3TH_DIS = 0
,
ADIOL100_IEC3TH_EN = 1
} |
| |
| enum | adiol100_source_sink {
ADIOL100_CQ_SINK = 0
,
ADIOL100_CQ_SOURCE = 1
} |
| |
| enum | adiol100_glitch_filter {
ADIOL100_GLITCH_DIS = 0
,
ADIOL100_GLITCH_1 = 1
,
ADIOL100_GLITCH_2 = 2
,
ADIOL100_GLITCH_3 = 3
} |
| |
| enum | adiol100_cq_npn {
ADIOL100_CQ_PNP = 0
,
ADIOL100_CQ_NPN_EN = 1
} |
| |
| enum | adiol100_cq_ext {
ADIOL100_CQEXT_DIS = 0
,
ADIOL100_CQEXT_EN = 1
} |
| |
| enum | adiol100_inv_cq {
ADIOL100_INVCQ_DIS = 0
,
ADIOL100_INVCQ_EN = 1
} |
| |
| enum | adiol100_cq_txen {
ADIOL100_TXEN_DIS = 0
,
ADIOL100_TXEN_EN = 1
} |
| |
| enum | adiol100_inv_di {
ADIOL100_INVDI_DIS = 0
,
ADIOL100_INVDI_EN = 1
} |
| |
| enum | adiol100_auto_cycler_dis {
ADIOL100_AUTOCYCLER_KEEP = 0
,
ADIOL100_AUTOCYCLER_DIS = 1
} |
| |
| enum | adiol100_trig_val {
ADIOL100_TRIG_GLOBAL = 0
,
ADIOL100_TRIG_1 = 1
,
ADIOL100_TRIG_2 = 2
,
ADIOL100_TRIG_3 = 3
,
ADIOL100_TRIG_4 = 4
,
ADIOL100_TRIG_5 = 5
,
ADIOL100_TRIG_6 = 6
,
ADIOL100_TRIG_7 = 7
,
ADIOL100_TRIG_8 = 8
,
ADIOL100_TRIG_9 = 9
,
ADIOL100_TRIG_10 = 10
,
ADIOL100_TRIG_11 = 11
,
ADIOL100_TRIG_12 = 12
,
ADIOL100_TRIG_13 = 13
,
ADIOL100_TRIG_14 = 14
,
ADIOL100_TRIG_15 = 15
} |
| |
| enum | adiol100_trig_en {
ADIOL100_TRIG_DIS = 0
,
ADIOL100_TRIG_EN = 1
} |
| |
| enum | adiol100_clock_src {
ADIOL100_CLK_INTERNAL = 0
,
ADIOL100_CLK_CRYSTAL = 1
,
ADIOL100_CLK_EXTERNAL = 2
} |
| |
| enum | adiol100_adc_global {
ADIOL100_ADC_V24_VOLT = 0x1F30
,
ADIOL100_ADC_V24_VOLT_MIN = 0x1F31
,
ADIOL100_ADC_V24_VOLT_MAX = 0x1F32
,
ADIOL100_ADC_TEMP = 0x1F33
,
ADIOL100_ADC_TEMP_MIN = 0x1F34
,
ADIOL100_ADC_TEMP_MAX = 0x1F35
} |
| |
| enum | adiol100_adc_chan {
ADIOL100_ADC_CQ_VOLT = 0x1F40
,
ADIOL100_ADC_CQ_VOLT_MIN = 0x1F41
,
ADIOL100_ADC_CQ_VOLT_MAX = 0x1F42
,
ADIOL100_ADC_CQ_CUR = 0x1F43
,
ADIOL100_ADC_CQ_CUR_MIN = 0x1F44
,
ADIOL100_ADC_CQ_CUR_MAX = 0x1F45
,
ADIOL100_ADC_LP_VOLT = 0x1F46
,
ADIOL100_ADC_LP_VOLT_MIN = 0x1F47
,
ADIOL100_ADC_LP_VOLT_MAX = 0x1F48
,
ADIOL100_ADC_LP_CUR = 0x1F49
,
ADIOL100_ADC_LP_CUR_MIN = 0x1F4A
,
ADIOL100_ADC_LP_CUR_MAX = 0x1F4B
} |
| |
| enum | adiol100_led {
ADIOL100_LED1 = 0
,
ADIOL100_LED2 = 1
,
ADIOL100_LED3 = 2
,
ADIOL100_LED4 = 3
} |
| |
| enum | adiol100_led_mode {
ADIOL100_LED_BLINK = 0
,
ADIOL100_LED_BLINK_EDGE = 1
,
ADIOL100_LED_ON_HIGH = 2
,
ADIOL100_LED_ON_LOW = 3
,
ADIOL100_LED_BLINK_FAST = 4
} |
| |
| enum | adiol100_led_brightness {
ADIOL100_LED_BGT_6 = 0
,
ADIOL100_LED_BGT_12 = 1
,
ADIOL100_LED_BGT_18 = 2
,
ADIOL100_LED_BGT_25 = 3
,
ADIOL100_LED_BGT_31 = 4
,
ADIOL100_LED_BGT_37 = 5
,
ADIOL100_LED_BGT_43 = 6
,
ADIOL100_LED_BGT_50 = 7
,
ADIOL100_LED_BGT_56 = 8
,
ADIOL100_LED_BGT_62 = 9
,
ADIOL100_LED_BGT_68 = 10
,
ADIOL100_LED_BGT_75 = 11
,
ADIOL100_LED_BGT_81 = 12
,
ADIOL100_LED_BGT_87 = 13
,
ADIOL100_LED_BGT_93 = 14
,
ADIOL100_LED_BGT_100 = 15
} |
| |
| enum | adiol100_led_seq {
ADIOL100_LED_SEQ_OFF = 0x0000
,
ADIOL100_LED_SEQ_ON = 0xFFFF
,
ADIOL100_LED_SEQ_BLINK_SLOW = 0xFF00
,
ADIOL100_LED_SEQ_BLINK_FAST = 0xF0F0
,
ADIOL100_LED_SEQ_PULSE = 0x8000
} |
| |
|
| int | adiol100_read_revid (struct adiol100_dev *dev, uint16_t *rev_id) |
| | Read the chip RevisionID register.
|
| |
| int | adiol100_read_devid (struct adiol100_dev *dev, uint16_t *dev_id) |
| | Read the chip DeviceID register.
|
| |
| int | adiol100_setup_clock (struct adiol100_dev *dev, uint8_t clock_src, uint8_t clk_div) |
| | Configure the clock source, divider, and enable clock output.
|
| |
| int | adiol100_init (struct adiol100_dev **dev, struct adiol100_init_param *ip) |
| | Initialize the ADIOL100 device.
|
| |
| int | adiol100_remove (struct adiol100_dev *dev) |
| | Free resources allocated by adiol100_init().
|
| |
| int | adiol100_read (struct adiol100_dev *dev, uint16_t reg, uint16_t *value) |
| | Read a 16-bit register. Handles paged access automatically.
|
| |
| int | adiol100_write (struct adiol100_dev *dev, uint16_t reg, uint16_t value) |
| | Write a 16-bit register. Handles paged access automatically.
|
| |
| int | adiol100_update (struct adiol100_dev *dev, uint16_t reg, uint16_t mask, uint16_t value) |
| | Read-modify-write a register using a bit mask.
|
| |
| int | adiol100_load_msg (struct adiol100_dev *dev, enum adiol100_channel ch, const uint8_t *data, uint8_t txbytes, uint8_t rxbytes, enum adiol100_keep_msg keep) |
| | Load IO-Link payload into TxFIFO without triggering CQSend.
|
| |
| int | adiol100_send_msg (struct adiol100_dev *dev, enum adiol100_channel ch) |
| | Assert CQSend to trigger transmission of the message in the TxFIFO.
|
| |
| int | adiol100_load_and_send_msg (struct adiol100_dev *dev, enum adiol100_channel ch, uint8_t *data, uint8_t txbytes, uint8_t rxbytes, enum adiol100_keep_msg keep, uint16_t framctrl1) |
| | Load IO-Link payload into TxFIFO and trigger CQSend in one SPI burst.
|
| |
| int | adiol100_read_msg (struct adiol100_dev *dev, enum adiol100_channel ch, uint8_t *data, uint8_t data_len) |
| | Read device response from RxFIFO, stripping the MsgID/RxBytesAct header.
|
| |
| int | adiol100_reset_leds (struct adiol100_dev *dev) |
| | Turn off all four LEDs by clearing their sequences and resetting modes.
|
| |
| int | adiol100_global_reset (struct adiol100_dev *dev) |
| | Disable global interrupts, clear trigger, read-clear all IRQ registers, and turn off all LEDs.
|
| |
| int | adiol100_reset_tx_fifo (struct adiol100_dev *dev, enum adiol100_channel ch) |
| | Reset the transmit FIFO for a channel.
|
| |
| int | adiol100_reset_rx_fifo (struct adiol100_dev *dev, enum adiol100_channel ch) |
| | Reset the receive FIFO for a channel.
|
| |
| int | adiol100_reset_channel (struct adiol100_dev *dev, enum adiol100_channel ch) |
| | Assert CHANRST to reset all channel-specific registers.
|
| |
| int | adiol100_config_cq (struct adiol100_dev *dev, enum adiol100_channel ch, enum adiol100_cq_mode mode, enum adiol100_cq_drv drv_en, enum adiol100_sink_sel sink_sel, enum adiol100_cq_slew_rate slew_rate, enum adiol100_iec3th iec3th, enum adiol100_source_sink source_sink, enum adiol100_glitch_filter glitch_filter, enum adiol100_cq_npn npn, enum adiol100_cq_ext cq_ext, enum adiol100_inv_cq inv_cq, enum adiol100_cq_txen txen) |
| | Configure the CQ driver.
|
| |
| int | adiol100_config_cq_protection (struct adiol100_dev *dev, enum adiol100_channel ch, enum adiol100_cq_current_limit current_limit, enum adiol100_blanking_time blanking, enum adiol100_autoretry_timeout retry_tmo, enum adiol100_autoretry retry_en, enum adiol100_voltage_threshold tx_vthr_h, enum adiol100_voltage_threshold tx_vthr_l, enum adiol100_voltage_threshold rx_vthr_h, enum adiol100_voltage_threshold rx_vthr_l) |
| | Configure CQ protection: current limit, blanking, thresholds, autoretry.
|
| |
| int | adiol100_config_lp (struct adiol100_dev *dev, enum adiol100_channel ch, enum adiol100_lp_en enable, enum adiol100_lp_rev rev_en) |
| | Configure the L+ sensor supply: enable and reverse polarity protection.
|
| |
| int | adiol100_config_lp_protection (struct adiol100_dev *dev, enum adiol100_channel ch, uint8_t cl_nom, uint8_t pwr_max, uint8_t curr_max, uint8_t curr_min, uint8_t ol_timeout, uint8_t cl_timeout, uint8_t slope, uint8_t slope_bl, uint8_t ar_time, uint8_t ar_count) |
| | Configure L+ FET protection: current, power, timeouts, slope, retry.
|
| |
| int | adiol100_config_cq_protection_ext (struct adiol100_dev *dev, enum adiol100_channel ch, uint8_t cl_nom, uint8_t pwr_max, uint8_t curr_max, uint8_t curr_min, uint8_t ol_timeout, uint8_t cl_timeout, uint8_t slope, uint8_t slope_bl, uint8_t ar_time, uint8_t ar_count) |
| | Configure CQ external high-side FET protection.
|
| |
| int | adiol100_config_di (struct adiol100_dev *dev, enum adiol100_channel ch, enum adiol100_iec3th iec3th, enum adiol100_source_sink source_sink, enum adiol100_sink_sel sink_sel, enum adiol100_glitch_filter glitch_filter, enum adiol100_inv_di inv_di) |
| | Configure the digital input (DICfgA/B).
|
| |
| int | adiol100_config_framer (struct adiol100_dev *dev, enum adiol100_channel ch, enum adiol100_ins_chks ins_chks, enum adiol100_framer framer_en, enum adiol100_ckt_err_inh ckt_err_inh, enum adiol100_msg_repeat msg_repeat, enum adiol100_bdelay bdelay, uint8_t ddelay, enum adiol100_tsize_err_inh tsize_err_inh, enum adiol100_uart_par uart_par, enum adiol100_uart_baud uart_baud, enum adiol100_uart_en uart_en, enum adiol100_safe_pulse_det safe_pulse_det) |
| | Configure the IO-Link framer (FramCtrl1 + FramCtrl2).
|
| |
| int | adiol100_wakeup_request (struct adiol100_dev *dev, enum adiol100_channel ch) |
| | Generate a wake-up pulse (WURQ) on a channel.
|
| |
| int | adiol100_clear_estcom_fails (struct adiol100_dev *dev, enum adiol100_channel ch) |
| | Clear the establish-communication fail counter in StatusA/B.
|
| |
| int | adiol100_config_trigger (struct adiol100_dev *dev, enum adiol100_channel ch, enum adiol100_auto_cycler_dis auto_cycler_dis, enum adiol100_trig_val trig_val, enum adiol100_trig_en trig_en) |
| | Configure trigger assignment for a channel.
|
| |
| int | adiol100_fire_trigger (struct adiol100_dev *dev, enum adiol100_trig_val trig_val) |
| | Fire an SPI trigger to start transmission on matching channels.
|
| |
| int | adiol100_led_sync (struct adiol100_dev *dev) |
| | Synchronize LED drivers across multiple devices.
|
| |
| int | adiol100_set_burst_len (struct adiol100_dev *dev, enum adiol100_channel ch, uint8_t write_len, uint8_t read_len) |
| | Set the SPI burst length for FIFO access.
|
| |
| int | adiol100_get_comrt (struct adiol100_dev *dev, enum adiol100_channel ch, uint8_t *comrt) |
| | Get the communication rate determined by EstCom (COM1/2/3).
|
| |
| int | adiol100_set_cycle_tmr (struct adiol100_dev *dev, enum adiol100_channel ch, uint8_t value) |
| | Set the IO-Link cycle timer value.
|
| |
| int | adiol100_get_cycle_tmr (struct adiol100_dev *dev, enum adiol100_channel ch, uint16_t *value) |
| | Get the current cycle timer register value.
|
| |
| int | adiol100_enable_cycle_timer (struct adiol100_dev *dev, enum adiol100_channel ch) |
| | Enable the cycle timer for autonomous cyclic operation.
|
| |
| int | adiol100_disable_cycle_timer (struct adiol100_dev *dev, enum adiol100_channel ch) |
| | Disable the cycle timer.
|
| |
| int | adiol100_get_channel_irq (struct adiol100_dev *dev, enum adiol100_channel ch, uint16_t *flags) |
| | Read and accumulate channel interrupt flags.
|
| |
| int | adiol100_get_global_irq (struct adiol100_dev *dev, uint16_t *flags) |
| | Read and accumulate global interrupt flags.
|
| |
| void | adiol100_clear_channel_irq (struct adiol100_dev *dev, enum adiol100_channel ch, uint16_t mask) |
| | Clear specific bits from the accumulated channel interrupt flags.
|
| |
| void | adiol100_clear_global_irq (struct adiol100_dev *dev, uint16_t mask) |
| | Clear specific bits from the accumulated global interrupt flags.
|
| |
| int | adiol100_enable_global_irq (struct adiol100_dev *dev, uint16_t mask) |
| | Set the global interrupt enable mask.
|
| |
| int | adiol100_enable_channel_irq (struct adiol100_dev *dev, enum adiol100_channel ch, uint16_t mask) |
| | Set the channel interrupt enable mask.
|
| |
| int | adiol100_read_channel_burst (struct adiol100_dev *dev, enum adiol100_channel ch, uint16_t *rxstat, uint16_t *irq, uint16_t *status, uint8_t *data, uint8_t data_len) |
| | Burst-read RxFIFOStat, Interrupt, Status, and RxFIFO in one SPI cycle.
|
| |
| int | adiol100_get_fifo_status (struct adiol100_dev *dev, enum adiol100_channel ch, uint16_t *flags) |
| | Read the RxFIFO status register (level + error flags).
|
| |
| int | adiol100_get_status (struct adiol100_dev *dev, enum adiol100_channel ch, uint16_t *flags) |
| | Read the channel status register.
|
| |
| int | adiol100_config_watchdog (struct adiol100_dev *dev, enum adiol100_wdg_timebase timebase, uint8_t time, enum adiol100_wdg_mode mode, enum adiol100_wdg_en enable, enum adiol100_wdg_lock lock) |
| | Configure the watchdog timer.
|
| |
| int | adiol100_clear_watchdog (struct adiol100_dev *dev) |
| | Clear the watchdog timer (write-1-to-clear).
|
| |
| int | adiol100_estcom (struct adiol100_dev *dev, enum adiol100_channel ch) |
| | Run EstablishCommunication: reset FIFOs, set EstCom, poll for result.
|
| |
| int | adiol100_read_adc_global (struct adiol100_dev *dev, enum adiol100_adc_global source, uint16_t *value) |
| | Read a raw 13-bit global ADC measurement (V24 voltage or temperature).
|
| |
| int | adiol100_read_adc_chan (struct adiol100_dev *dev, enum adiol100_adc_chan source, enum adiol100_channel ch, uint16_t *value) |
| | Read a raw 13-bit per-channel ADC measurement (CQ/LP voltage or current).
|
| |
| int | adiol100_reset_adc_stats (struct adiol100_dev *dev) |
| | Reset all ADC min/max statistics (V24, Temp, CQ and LP for both channels).
|
| |
| int | adiol100_set_led_brightness (struct adiol100_dev *dev, enum adiol100_led led, enum adiol100_led_brightness red_bgt, enum adiol100_led_brightness green_bgt) |
| | Set the brightness for one LED.
|
| |
| int | adiol100_set_led_sequence (struct adiol100_dev *dev, enum adiol100_led led, enum adiol100_led_seq red_seq, enum adiol100_led_seq green_seq) |
| | Set the blink sequence for one LED.
|
| |
| int | adiol100_set_led_mode (struct adiol100_dev *dev, enum adiol100_led led, enum adiol100_led_mode mode) |
| | Set the operating mode for one LED.
|
| |