IRNAS / SWDR001-Zephyr

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Replace hard-coded values with DTS configuration

TjazVracko opened this issue · comments

There are some hard-coded values in use in lr11xx_board.c. These should be configurable from DTS.

The hard-coded values are:

  • LF clock config
  • external TCXO supply voltage
  • external TCXO wakeup time
  • regulator mode (LDO or DC-DC)

Source from lr11xx_board.c

#define LR11XX_CFG_LF_CLCK(inst)                                                                   \
	.lf_clck_cfg = {                                                                           \
		.lf_clk_cfg = LR11XX_SYSTEM_LFCLK_RC,  // THIS                                     \
		.wait_32k_ready = true,                                                            \
	},

#define LR11XX_CFG_TCXO(inst)                                                                      \
	.tcxo_cfg = {                                                                              \
		.has_tcxo = true,                                                                  \
		.supply = LR11XX_SYSTEM_TCXO_CTRL_1_8V,        // THIS                             \
		.timeout_ms = BOARD_TCXO_WAKEUP_TIME,          // THIS                             \
	},

#define LR11XX_CONFIG(inst)                                                                        \
	{                                                                                          \
		.spi = SPI_DT_SPEC_INST_GET(inst, LR11XX_SPI_OPERATION, 0),                        \
		.busy = GPIO_DT_SPEC_INST_GET(inst, busy_gpios),                                   \
		.reset = GPIO_DT_SPEC_INST_GET(inst, reset_gpios),                                 \
		.event = GPIO_DT_SPEC_INST_GET(inst, event_gpios),                                 \
		.reg_mode = LR11XX_SYSTEM_REG_MODE_DCDC,            // THIS                        \
		.lf_tx_path_options = DT_INST_PROP(inst, lf_tx_path),                              \
		COND_CODE_1(DT_INST_NODE_HAS_PROP(inst, pwr_en_gpios), (LR11XX_CFG_PWR_EN(inst)),  \
			    ()) COND_CODE_1(DT_INST_NODE_HAS_PROP(inst, gps_lna_en_gpios),         \
					    (LR11XX_CFG_LNA_EN(inst)), ()) LR11XX_CFG_TCXO(inst)   \
			LR11XX_CFG_LF_CLCK(inst) LR11XX_CFG_RF_SW(inst)                            \
	}

See how lf-tx-path was added in #18. All of the above can be added similarly.