cregit-Linux how code gets into the kernel

Release 4.17 drivers/staging/pi433/rf69_registers.h

/*
 * register description for HopeRf rf69 radio module
 *
 * Copyright (C) 2016 Wolf-Entwicklungen
 *      Marcus Wolf <linux@wolf-entwicklungen.de>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/*******************************************/
/* RF69 register addresses                 */
/*******************************************/

#define  REG_FIFO			0x00

#define  REG_OPMODE			0x01

#define  REG_DATAMODUL			0x02

#define  REG_BITRATE_MSB		0x03

#define  REG_BITRATE_LSB		0x04

#define  REG_FDEV_MSB			0x05

#define  REG_FDEV_LSB			0x06

#define  REG_FRF_MSB			0x07

#define  REG_FRF_MID			0x08

#define  REG_FRF_LSB			0x09

#define  REG_OSC1			0x0A

#define  REG_AFCCTRL			0x0B

#define  REG_LOWBAT			0x0C

#define  REG_LISTEN1			0x0D

#define  REG_LISTEN2			0x0E

#define  REG_LISTEN3			0x0F

#define  REG_VERSION			0x10

#define  REG_PALEVEL			0x11

#define  REG_PARAMP			0x12

#define  REG_OCP			0x13

#define  REG_AGCREF			0x14 
/* not available on RF69 */

#define  REG_AGCTHRESH1			0x15 
/* not available on RF69 */

#define  REG_AGCTHRESH2			0x16 
/* not available on RF69 */

#define  REG_AGCTHRESH3			0x17 
/* not available on RF69 */

#define  REG_LNA			0x18

#define  REG_RXBW			0x19

#define  REG_AFCBW			0x1A

#define  REG_OOKPEAK			0x1B

#define  REG_OOKAVG			0x1C

#define  REG_OOKFIX			0x1D

#define  REG_AFCFEI			0x1E

#define  REG_AFCMSB			0x1F

#define  REG_AFCLSB			0x20

#define  REG_FEIMSB			0x21

#define  REG_FEILSB			0x22

#define  REG_RSSICONFIG			0x23

#define  REG_RSSIVALUE			0x24

#define  REG_DIOMAPPING1		0x25

#define  REG_DIOMAPPING2		0x26

#define  REG_IRQFLAGS1			0x27

#define  REG_IRQFLAGS2			0x28

#define  REG_RSSITHRESH			0x29

#define  REG_RXTIMEOUT1			0x2A

#define  REG_RXTIMEOUT2			0x2B

#define  REG_PREAMBLE_MSB		0x2C

#define  REG_PREAMBLE_LSB		0x2D

#define  REG_SYNC_CONFIG		0x2E

#define  REG_SYNCVALUE1			0x2F

#define  REG_SYNCVALUE2			0x30

#define  REG_SYNCVALUE3			0x31

#define  REG_SYNCVALUE4			0x32

#define  REG_SYNCVALUE5			0x33

#define  REG_SYNCVALUE6			0x34

#define  REG_SYNCVALUE7			0x35

#define  REG_SYNCVALUE8			0x36

#define  REG_PACKETCONFIG1		0x37

#define  REG_PAYLOAD_LENGTH		0x38

#define  REG_NODEADRS			0x39

#define  REG_BROADCASTADRS		0x3A

#define  REG_AUTOMODES			0x3B

#define  REG_FIFO_THRESH		0x3C

#define  REG_PACKETCONFIG2		0x3D

#define  REG_AESKEY1			0x3E

#define  REG_AESKEY2			0x3F

#define  REG_AESKEY3			0x40

#define  REG_AESKEY4			0x41

#define  REG_AESKEY5			0x42

#define  REG_AESKEY6			0x43

#define  REG_AESKEY7			0x44

#define  REG_AESKEY8			0x45

#define  REG_AESKEY9			0x46

#define  REG_AESKEY10			0x47

#define  REG_AESKEY11			0x48

#define  REG_AESKEY12			0x49

#define  REG_AESKEY13			0x4A

#define  REG_AESKEY14			0x4B

#define  REG_AESKEY15			0x4C

#define  REG_AESKEY16			0x4D

#define  REG_TEMP1			0x4E

#define  REG_TEMP2			0x4F

#define  REG_TESTPA1			0x5A 
/* only present on RFM69HW */

#define  REG_TESTPA2			0x5C 
/* only present on RFM69HW */

#define  REG_TESTDAGC			0x6F

/******************************************************/
/* RF69/SX1231 bit definition                           */
/******************************************************/
/* write bit */

#define WRITE_BIT				0x80

/* RegOpMode */

#define  MASK_OPMODE_SEQUENCER_OFF		0x80

#define  MASK_OPMODE_LISTEN_ON			0x40

#define  MASK_OPMODE_LISTEN_ABORT		0x20

#define  MASK_OPMODE_MODE			0x1C


#define  OPMODE_MODE_SLEEP			0x00

#define  OPMODE_MODE_STANDBY			0x04 
/* default */

#define  OPMODE_MODE_SYNTHESIZER		0x08

#define  OPMODE_MODE_TRANSMIT			0x0C

#define  OPMODE_MODE_RECEIVE			0x10

/* RegDataModul */

#define  MASK_DATAMODUL_MODE			0x06

#define  MASK_DATAMODUL_MODULATION_TYPE		0x18

#define  MASK_DATAMODUL_MODULATION_SHAPE	0x03


#define  DATAMODUL_MODE_PACKET			0x00 
/* default */

#define  DATAMODUL_MODE_CONTINUOUS		0x40

#define  DATAMODUL_MODE_CONTINUOUS_NOSYNC	0x60


#define  DATAMODUL_MODULATION_TYPE_FSK		0x00 
/* default */

#define  DATAMODUL_MODULATION_TYPE_OOK		0x08


#define  DATAMODUL_MODULATION_SHAPE_NONE	0x00 
/* default */

#define  DATAMODUL_MODULATION_SHAPE_1_0		0x01

#define  DATAMODUL_MODULATION_SHAPE_0_5		0x02

#define  DATAMODUL_MODULATION_SHAPE_0_3		0x03

#define  DATAMODUL_MODULATION_SHAPE_BR		0x01

#define  DATAMODUL_MODULATION_SHAPE_2BR		0x02

/* RegFDevMsb (0x05)*/

#define FDEVMASB_MASK				0x3f

/*
 * // RegOsc1
 * #define  OSC1_RCCAL_START                    0x80
 * #define  OSC1_RCCAL_DONE                     0x40
 *
 * // RegLowBat
 * #define  LOWBAT_MONITOR                              0x10
 * #define  LOWBAT_ON                           0x08
 * #define  LOWBAT_OFF                          0x00  // Default
 *
 * #define  LOWBAT_TRIM_1695                    0x00
 * #define  LOWBAT_TRIM_1764                    0x01
 * #define  LOWBAT_TRIM_1835                    0x02  // Default
 * #define  LOWBAT_TRIM_1905                    0x03
 * #define  LOWBAT_TRIM_1976                    0x04
 * #define  LOWBAT_TRIM_2045                    0x05
 * #define  LOWBAT_TRIM_2116                    0x06
 * #define  LOWBAT_TRIM_2185                    0x07
 *
 *
 * // RegListen1
 * #define  LISTEN1_RESOL_64                    0x50
 * #define  LISTEN1_RESOL_4100                  0xA0  // Default
 * #define  LISTEN1_RESOL_262000                        0xF0
 *
 * #define  LISTEN1_CRITERIA_RSSI                       0x00  // Default
 * #define  LISTEN1_CRITERIA_RSSIANDSYNC                0x08
 *
 * #define  LISTEN1_END_00                              0x00
 * #define  LISTEN1_END_01                              0x02  // Default
 * #define  LISTEN1_END_10                              0x04
 *
 *
 * // RegListen2
 * #define  LISTEN2_COEFIDLE_VALUE                      0xF5 // Default
 *
 * // RegListen3
 * #define  LISTEN3_COEFRX_VALUE                        0x20 // Default
 */

// RegPaLevel

#define  MASK_PALEVEL_PA0			0x80

#define  MASK_PALEVEL_PA1			0x40

#define  MASK_PALEVEL_PA2			0x20

#define  MASK_PALEVEL_OUTPUT_POWER		0x1F

// RegPaRamp

#define  PARAMP_3400				0x00

#define  PARAMP_2000				0x01

#define  PARAMP_1000				0x02

#define  PARAMP_500				0x03

#define  PARAMP_250				0x04

#define  PARAMP_125				0x05

#define  PARAMP_100				0x06

#define  PARAMP_62				0x07

#define  PARAMP_50				0x08

#define  PARAMP_40				0x09 
/* default */

#define  PARAMP_31				0x0A

#define  PARAMP_25				0x0B

#define  PARAMP_20				0x0C

#define  PARAMP_15				0x0D

#define  PARAMP_12				0x0E

#define  PARAMP_10				0x0F


#define  MASK_PARAMP				0x0F

/*
 * // RegOcp
 * #define  OCP_OFF                             0x0F
 * #define  OCP_ON                                      0x1A  // Default
 *
 * #define  OCP_TRIM_45                         0x00
 * #define  OCP_TRIM_50                         0x01
 * #define  OCP_TRIM_55                         0x02
 * #define  OCP_TRIM_60                         0x03
 * #define  OCP_TRIM_65                         0x04
 * #define  OCP_TRIM_70                         0x05
 * #define  OCP_TRIM_75                         0x06
 * #define  OCP_TRIM_80                         0x07
 * #define  OCP_TRIM_85                         0x08
 * #define  OCP_TRIM_90                         0x09
 * #define  OCP_TRIM_95                         0x0A
 * #define  OCP_TRIM_100                                0x0B  // Default
 * #define  OCP_TRIM_105                                0x0C
 * #define  OCP_TRIM_110                                0x0D
 * #define  OCP_TRIM_115                                0x0E
 * #define  OCP_TRIM_120                                0x0F
 */

/* RegLna (0x18) */

#define  MASK_LNA_ZIN				0x80

#define  MASK_LNA_CURRENT_GAIN			0x38

#define  MASK_LNA_GAIN				0x07


#define  LNA_GAIN_AUTO				0x00 
/* default */

#define  LNA_GAIN_MAX				0x01

#define  LNA_GAIN_MAX_MINUS_6			0x02

#define  LNA_GAIN_MAX_MINUS_12			0x03

#define  LNA_GAIN_MAX_MINUS_24			0x04

#define  LNA_GAIN_MAX_MINUS_36			0x05

#define  LNA_GAIN_MAX_MINUS_48			0x06

/* RegRxBw (0x19) and RegAfcBw (0x1A) */

#define  MASK_BW_DCC_FREQ			0xE0

#define  MASK_BW_MANTISSE			0x18

#define  MASK_BW_EXPONENT			0x07


#define  BW_DCC_16_PERCENT			0x00

#define  BW_DCC_8_PERCENT			0x20

#define  BW_DCC_4_PERCENT			0x40 
/* default */

#define  BW_DCC_2_PERCENT			0x60

#define  BW_DCC_1_PERCENT			0x80

#define  BW_DCC_0_5_PERCENT			0xA0

#define  BW_DCC_0_25_PERCENT			0xC0

#define  BW_DCC_0_125_PERCENT			0xE0


#define  BW_MANT_16				0x00

#define  BW_MANT_20				0x08

#define  BW_MANT_24				0x10 
/* default */

/* RegOokPeak (0x1B) */

#define  MASK_OOKPEAK_THRESTYPE			0xc0

#define  MASK_OOKPEAK_THRESSTEP			0x38

#define  MASK_OOKPEAK_THRESDEC			0x07


#define  OOKPEAK_THRESHTYPE_FIXED		0x00

#define  OOKPEAK_THRESHTYPE_PEAK		0x40 
/* default */

#define  OOKPEAK_THRESHTYPE_AVERAGE		0x80


#define  OOKPEAK_THRESHSTEP_0_5_DB		0x00 
/* default */

#define  OOKPEAK_THRESHSTEP_1_0_DB		0x08

#define  OOKPEAK_THRESHSTEP_1_5_DB		0x10

#define  OOKPEAK_THRESHSTEP_2_0_DB		0x18

#define  OOKPEAK_THRESHSTEP_3_0_DB		0x20

#define  OOKPEAK_THRESHSTEP_4_0_DB		0x28

#define  OOKPEAK_THRESHSTEP_5_0_DB		0x30

#define  OOKPEAK_THRESHSTEP_6_0_DB		0x38


#define  OOKPEAK_THRESHDEC_ONCE			0x00 
/* default */

#define  OOKPEAK_THRESHDEC_EVERY_2ND		0x01

#define  OOKPEAK_THRESHDEC_EVERY_4TH		0x02

#define  OOKPEAK_THRESHDEC_EVERY_8TH		0x03

#define  OOKPEAK_THRESHDEC_TWICE		0x04

#define  OOKPEAK_THRESHDEC_4_TIMES		0x05

#define  OOKPEAK_THRESHDEC_8_TIMES		0x06

#define  OOKPEAK_THRESHDEC_16_TIMES		0x07

/*
 * // RegOokAvg
 * #define  OOKAVG_AVERAGETHRESHFILT_00         0x00
 * #define  OOKAVG_AVERAGETHRESHFILT_01         0x40
 * #define  OOKAVG_AVERAGETHRESHFILT_10         0x80  // Default
 * #define  OOKAVG_AVERAGETHRESHFILT_11         0xC0
 *
 *
 * // RegAfcFei
 * #define  AFCFEI_FEI_DONE                     0x40
 * #define  AFCFEI_FEI_START                    0x20
 * #define  AFCFEI_AFC_DONE                     0x10
 * #define  AFCFEI_AFCAUTOCLEAR_ON                      0x08
 * #define  AFCFEI_AFCAUTOCLEAR_OFF             0x00  // Default
 *
 * #define  AFCFEI_AFCAUTO_ON                   0x04
 * #define  AFCFEI_AFCAUTO_OFF                  0x00  // Default
 *
 * #define  AFCFEI_AFC_CLEAR                    0x02
 * #define  AFCFEI_AFC_START                    0x01
 *
 * // RegRssiConfig
 * #define  RSSI_FASTRX_ON                              0x08
 * #define  RSSI_FASTRX_OFF                     0x00  // Default
 * #define  RSSI_DONE                           0x02
 * #define  RSSI_START                          0x01
 */

/* RegDioMapping1 */

#define  MASK_DIO0				0xC0

#define  MASK_DIO1				0x30

#define  MASK_DIO2				0x0C

#define  MASK_DIO3				0x03

#define  SHIFT_DIO0				6

#define  SHIFT_DIO1				4

#define  SHIFT_DIO2				2

#define  SHIFT_DIO3				0

/* RegDioMapping2 */

#define  MASK_DIO4				0xC0

#define  MASK_DIO5				0x30

#define  SHIFT_DIO4				6

#define  SHIFT_DIO5				4

/* DIO numbers */

#define  DIO0					0

#define  DIO1					1

#define  DIO2					2

#define  DIO3					3

#define  DIO4					4

#define  DIO5					5

/* DIO Mapping values (packet mode) */

#define  DIO_MODE_READY_DIO4			0x00

#define  DIO_MODE_READY_DIO5			0x03

#define  DIO_CLK_OUT				0x00

#define  DIO_DATA				0x01

#define  DIO_TIMEOUT_DIO1			0x03

#define  DIO_TIMEOUT_DIO4			0x00

#define  DIO_RSSI_DIO0				0x03

#define  DIO_RSSI_DIO3_4			0x01

#define  DIO_RX_READY				0x02

#define  DIO_PLL_LOCK				0x03

#define  DIO_TX_READY				0x01

#define  DIO_FIFO_FULL_DIO1			0x01

#define  DIO_FIFO_FULL_DIO3			0x00

#define  DIO_SYNC_ADDRESS			0x02

#define  DIO_FIFO_NOT_EMPTY_DIO1		0x02

#define  DIO_FIFO_NOT_EMPTY_FIO2		0x00

#define  DIO_AUTOMODE				0x04

#define  DIO_FIFO_LEVEL				0x00

#define  DIO_CRC_OK				0x00

#define  DIO_PAYLOAD_READY			0x01

#define  DIO_PACKET_SENT			0x00

#define  DIO_DCLK				0x00

/* RegDioMapping2 CLK_OUT part */

#define  MASK_DIOMAPPING2_CLK_OUT		0x07


#define  DIOMAPPING2_CLK_OUT_NO_DIV		0x00

#define  DIOMAPPING2_CLK_OUT_DIV_2		0x01

#define  DIOMAPPING2_CLK_OUT_DIV_4		0x02

#define  DIOMAPPING2_CLK_OUT_DIV_8		0x03

#define  DIOMAPPING2_CLK_OUT_DIV_16		0x04

#define  DIOMAPPING2_CLK_OUT_DIV_32		0x05

#define  DIOMAPPING2_CLK_OUT_RC			0x06

#define  DIOMAPPING2_CLK_OUT_OFF		0x07 
/* default */

/* RegIrqFlags1 */

#define  MASK_IRQFLAGS1_MODE_READY		0x80

#define  MASK_IRQFLAGS1_RX_READY		0x40

#define  MASK_IRQFLAGS1_TX_READY		0x20

#define  MASK_IRQFLAGS1_PLL_LOCK		0x10

#define  MASK_IRQFLAGS1_RSSI			0x08

#define  MASK_IRQFLAGS1_TIMEOUT			0x04

#define  MASK_IRQFLAGS1_AUTOMODE		0x02

#define  MASK_IRQFLAGS1_SYNC_ADDRESS_MATCH	0x01

/* RegIrqFlags2 */

#define  MASK_IRQFLAGS2_FIFO_FULL		0x80

#define  MASK_IRQFLAGS2_FIFO_NOT_EMPTY		0x40

#define  MASK_IRQFLAGS2_FIFO_LEVEL		0x20

#define  MASK_IRQFLAGS2_FIFO_OVERRUN		0x10

#define  MASK_IRQFLAGS2_PACKET_SENT		0x08

#define  MASK_IRQFLAGS2_PAYLOAD_READY		0x04

#define  MASK_IRQFLAGS2_CRC_OK			0x02

#define  MASK_IRQFLAGS2_LOW_BAT			0x01

/* RegSyncConfig */

#define  MASK_SYNC_CONFIG_SYNC_ON		0x80 
/* default */

#define  MASK_SYNC_CONFIG_FIFO_FILL_CONDITION	0x40

#define  MASK_SYNC_CONFIG_SYNC_SIZE		0x38

#define  MASK_SYNC_CONFIG_SYNC_TOLERANCE	0x07

/* RegPacketConfig1 */

#define  MASK_PACKETCONFIG1_PAKET_FORMAT_VARIABLE	0x80

#define  MASK_PACKETCONFIG1_DCFREE			0x60

#define  MASK_PACKETCONFIG1_CRC_ON			0x10 
/* default */

#define  MASK_PACKETCONFIG1_CRCAUTOCLEAR_OFF		0x08

#define  MASK_PACKETCONFIG1_ADDRESSFILTERING		0x06


#define  PACKETCONFIG1_DCFREE_OFF			0x00 
/* default */

#define  PACKETCONFIG1_DCFREE_MANCHESTER		0x20

#define  PACKETCONFIG1_DCFREE_WHITENING			0x40

#define  PACKETCONFIG1_ADDRESSFILTERING_OFF		0x00 
/* default */

#define  PACKETCONFIG1_ADDRESSFILTERING_NODE		0x02

#define  PACKETCONFIG1_ADDRESSFILTERING_NODEBROADCAST	0x04

/*
 * // RegAutoModes
 * #define  AUTOMODES_ENTER_OFF                 0x00  // Default
 * #define  AUTOMODES_ENTER_FIFONOTEMPTY                0x20
 * #define  AUTOMODES_ENTER_FIFOLEVEL           0x40
 * #define  AUTOMODES_ENTER_CRCOK                       0x60
 * #define  AUTOMODES_ENTER_PAYLOADREADY                0x80
 * #define  AUTOMODES_ENTER_SYNCADRSMATCH               0xA0
 * #define  AUTOMODES_ENTER_PACKETSENT          0xC0
 * #define  AUTOMODES_ENTER_FIFOEMPTY           0xE0
 *
 * #define  AUTOMODES_EXIT_OFF                  0x00  // Default
 * #define  AUTOMODES_EXIT_FIFOEMPTY            0x04
 * #define  AUTOMODES_EXIT_FIFOLEVEL            0x08
 * #define  AUTOMODES_EXIT_CRCOK                        0x0C
 * #define  AUTOMODES_EXIT_PAYLOADREADY         0x10
 * #define  AUTOMODES_EXIT_SYNCADRSMATCH                0x14
 * #define  AUTOMODES_EXIT_PACKETSENT           0x18
 * #define  AUTOMODES_EXIT_RXTIMEOUT            0x1C
 *
 * #define  AUTOMODES_INTERMEDIATE_SLEEP                0x00  // Default
 * #define  AUTOMODES_INTERMEDIATE_STANDBY              0x01
 * #define  AUTOMODES_INTERMEDIATE_RECEIVER     0x02
 * #define  AUTOMODES_INTERMEDIATE_TRANSMITTER  0x03
 *
 */
/* RegFifoThresh (0x3c) */

#define  MASK_FIFO_THRESH_TXSTART		0x80

#define  MASK_FIFO_THRESH_VALUE			0x7F

/*
 *
 * // RegPacketConfig2
 * #define  PACKET2_RXRESTARTDELAY_1BIT         0x00  // Default
 * #define  PACKET2_RXRESTARTDELAY_2BITS                0x10
 * #define  PACKET2_RXRESTARTDELAY_4BITS                0x20
 * #define  PACKET2_RXRESTARTDELAY_8BITS                0x30
 * #define  PACKET2_RXRESTARTDELAY_16BITS               0x40
 * #define  PACKET2_RXRESTARTDELAY_32BITS               0x50
 * #define  PACKET2_RXRESTARTDELAY_64BITS               0x60
 * #define  PACKET2_RXRESTARTDELAY_128BITS              0x70
 * #define  PACKET2_RXRESTARTDELAY_256BITS              0x80
 * #define  PACKET2_RXRESTARTDELAY_512BITS              0x90
 * #define  PACKET2_RXRESTARTDELAY_1024BITS     0xA0
 * #define  PACKET2_RXRESTARTDELAY_2048BITS     0xB0
 * #define  PACKET2_RXRESTARTDELAY_NONE         0xC0
 * #define  PACKET2_RXRESTART                   0x04
 *
 * #define  PACKET2_AUTORXRESTART_ON            0x02  // Default
 * #define  PACKET2_AUTORXRESTART_OFF           0x00
 *
 * #define  PACKET2_AES_ON                              0x01
 * #define  PACKET2_AES_OFF                     0x00  // Default
 *
 *
 * // RegTemp1
 * #define  TEMP1_MEAS_START                    0x08
 * #define  TEMP1_MEAS_RUNNING                  0x04
 * #define  TEMP1_ADCLOWPOWER_ON                        0x01  // Default
 * #define  TEMP1_ADCLOWPOWER_OFF                       0x00
 */

// RegTestDagc (0x6F)

#define  DAGC_NORMAL				0x00 
/* Reset value */

#define  DAGC_IMPROVED_LOWBETA1			0x20

#define  DAGC_IMPROVED_LOWBETA0			0x30 
/* Recommended val */

Overall Contributors

PersonTokensPropCommitsCommitProp
Marcus Wolf106997.54%133.33%
Simon Sandström222.01%133.33%
Derek Robson50.46%133.33%
Total1096100.00%3100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.