Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# Kconfig.mcr20a - NXP MCR20A configuration options
#
#
# Copyright (c) 2017 PHYTEC Messtechnik GmbH
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig  IEEE802154_MCR20A
	bool "NXP MCR20A Driver support"
	depends on NETWORKING && SPI
	default n

if IEEE802154_MCR20A

config IEEE802154_MCR20A_DRV_NAME
	string "NXP MCR20A Driver's name"
	default "mcr20a"
	help
	  This option sets the driver name

if !HAS_DTS_SPI_DEVICE

config IEEE802154_MCR20A_SPI_DRV_NAME
	string "SPI driver's name to use to access MCR20A"
	default SPI_0_NAME
	help
	  This option is mandatory to set which SPI controller to use in order
	  to actually control the MCR20A chip.

config IEEE802154_MCR20A_SPI_FREQ
	int "SPI system frequency"
	default 4000000
	help
	  This option sets the SPI controller's frequency. Beware this value
	  depends on the SPI controller being used and also on the system
	  clock.

config IEEE802154_MCR20A_SPI_SLAVE
	int "SPI slave linked to MCR20A"
	default 0
	help
	  This option sets the SPI slave number SPI controller has to switch
	  to when dealing with MCR20A chip.

endif # !HAS_DTS_SPI_DEVICE

config IEEE802154_MCR20A_GPIO_SPI_CS
	bool "Manage SPI CS through a GPIO pin"
	default n
	help
	This option is useful if one needs to manage SPI CS through a GPIO
	pin to by-pass the SPI controller's CS logic.

if !HAS_DTS_SPI_PINS

config IEEE802154_MCR20A_GPIO_SPI_CS_DRV_NAME
	string "GPIO driver's name to use to drive SPI CS through"
	default ""
	depends on IEEE802154_MCR20A_GPIO_SPI_CS
	help
	This option is mandatory to set which GPIO controller to use in order
	to actually emulate the SPI CS.

config IEEE802154_MCR20A_GPIO_SPI_CS_PIN
	int "GPIO PIN to use to drive SPI CS through"
	default 0
	depends on IEEE802154_MCR20A_GPIO_SPI_CS
	help
	This option is mandatory to set which GPIO pin to use in order
	to actually emulate the SPI CS.

endif # !HAS_DTS_SPI_PINS

if !HAS_DTS_GPIO_DEVICE

config MCR20A_GPIO_IRQ_B_NAME
	string "GPIO device used for IRQ_B output of MCR20A"
	default GPIO_MCUX_PORTB_NAME

config MCR20A_GPIO_IRQ_B_PIN
	int "GPIO pin connected to IRQ_B output of MCR20A"
	default 9

config MCR20A_GPIO_RESET_NAME
	string "GPIO device used for RESET input of MCR20A"
	default GPIO_MCUX_PORTA_NAME

config MCR20A_GPIO_RESET_PIN
	int "GPIO pin connected to RESET input of MCR20A"
	default 2

endif # !HAS_DTS_GPIO_DEVICE

config MCR20A_IS_PART_OF_KW2XD_SIP
	bool "MCR20A device is part of KW2xD SiP"
	default n
	help
	  If this option is set, the driver does not perform a hardware
	  reset and the CLK_OUT frequency is not set, instead these settings
	  are performed during the initialization of the SoC.

choice
	prompt "CLK_OUT frequency"
	default MCR20A_CLK_OUT_4MHZ if MCR20A_IS_PART_OF_KW2XD_SIP
	default MCR20A_CLK_OUT_DISABLED
	help
	  Configuration of the MCR20A clock output pin.

config MCR20A_CLK_OUT_DISABLED
	bool "Disabled"

config MCR20A_CLK_OUT_32MHZ
	bool "32 MHz"

config MCR20A_CLK_OUT_16MHZ
	bool "16 MHz"

config MCR20A_CLK_OUT_8MHZ
	bool "8 MHz"

config MCR20A_CLK_OUT_4MHZ
	bool "4 MHz"

config MCR20A_CLK_OUT_1MHZ
	bool "1 MHz"

config MCR20A_CLK_OUT_250KHZ
	bool "250 kHz"

config MCR20A_CLK_OUT_62500HZ
	bool "62500 Hz"

config MCR20A_CLK_OUT_32768HZ
	bool "32768 Hz"

endchoice

config IEEE802154_MCR20A_RX_STACK_SIZE
	int "Driver's internal RX thread stack size"
	default 800
	help
	  This option sets the driver's stack size for its internal RX thread.
	  The default value should be sufficient, but in case it proves to be
	  a too little one, this option makes it easy to play with the size.

config IEEE802154_MCR20A_INIT_PRIO
	int "MCR20A initialization priority"
	default 80
	help
	  Set the initialization priority number. Do not mess with it unless
	  you know what you are doing. Beware mcr20a requires gpio and spi to
	  be ready first (and sometime gpio should be the very first as spi
	  might need it too). And of course it has to start before the net stack.


endif