# NXP PHY TJA1103 driver configuration options

# Copyright 2024 NXP
# SPDX-License-Identifier: Apache-2.0

menuconfig PHY_TJA1103
	bool "TJA1103 PHY driver"
	default y
	depends on DT_HAS_NXP_TJA1103_ENABLED
	depends on MDIO
	help
	  Enable TJA1103 PHY driver.

if PHY_TJA1103

config PHY_TJA1103_IRQ_THREAD_STACK_SIZE
	int "Stack size for a thread that processes TJA1103 IRQ"
	default 2048
	help
	  Size of the stack used for internal thread which is ran to
	  process raised INT IRQ.

config PHY_TJA1103_IRQ_THREAD_PRIO
	int "Priority for internal incoming packet handler"
	default 2
	help
	  Priority level for internal thread which is ran for TJA1103
	  INT IRQ processing.

endif # PHY_TJA1103
