@@ -54,9 +54,10 @@ type Device struct {
5454}
5555
5656// New creates a new SX126x connection.
57- func New (spi drivers.SPI ) * Device {
57+ func New (spi drivers.SPI , rstPin machine. Pin ) * Device {
5858 return & Device {
5959 spi : spi ,
60+ rstPin : rstPin ,
6061 radioEventChan : make (chan lora.RadioEvent , RADIOEVENTCHAN_SIZE ),
6162 spiTxBuf : make ([]byte , SPI_BUFFER_SIZE ),
6263 spiRxBuf : make ([]byte , SPI_BUFFER_SIZE ),
@@ -309,6 +310,24 @@ func (d *Device) SetDioIrqParams(irqMask, dio1Mask, dio2Mask, dio3Mask uint16) {
309310 d .ExecSetCommand (SX126X_CMD_SET_DIO_IRQ_PARAMS , p [:])
310311}
311312
313+ func (d * Device ) SetDio2AsRfSwitchCtrl (enable bool ) {
314+ var p [1 ]uint8
315+ if enable {
316+ p [0 ] = 0x01
317+ }
318+ d .ExecSetCommand (SX126X_CMD_SET_DIO2_AS_RF_SWITCH_CTRL , p [:])
319+ }
320+
321+ func (d * Device ) SetDio3AsTcxoCtrl (voltage uint8 , timeout uint32 ) {
322+ var p [5 ]uint8
323+ p [0 ] = voltage
324+ p [1 ] = uint8 ((timeout >> 24 ) & 0xFF )
325+ p [2 ] = uint8 ((timeout >> 16 ) & 0xFF )
326+ p [3 ] = uint8 ((timeout >> 8 ) & 0xFF )
327+ p [4 ] = uint8 ((timeout >> 0 ) & 0xFF )
328+ d .ExecSetCommand (SX126X_CMD_SET_DIO3_AS_TCXO_CTRL , p [:])
329+ }
330+
312331// GetIrqStatus returns IRQ status
313332func (d * Device ) GetIrqStatus () (irqStatus uint16 ) {
314333 r := d .ExecGetCommand (SX126X_CMD_GET_IRQ_STATUS , 2 )
0 commit comments