xref: /linux/drivers/platform/cznic/Kconfig (revision 297d9111e9fcf47dd1dcc6f79bba915f35378d01)
1992f1a3dSMarek Behún# SPDX-License-Identifier: GPL-2.0-only
2992f1a3dSMarek Behún#
3992f1a3dSMarek Behún# For a description of the syntax of this configuration file,
4992f1a3dSMarek Behún# see Documentation/kbuild/kconfig-language.rst.
5992f1a3dSMarek Behún#
6992f1a3dSMarek Behún
7992f1a3dSMarek Behúnmenuconfig CZNIC_PLATFORMS
8992f1a3dSMarek Behún	bool "Platform support for CZ.NIC's Turris hardware"
9dd0f05b9SGeert Uytterhoeven	depends on ARCH_MVEBU || COMPILE_TEST
10992f1a3dSMarek Behún	help
11992f1a3dSMarek Behún	  Say Y here to be able to choose driver support for CZ.NIC's Turris
12992f1a3dSMarek Behún	  devices. This option alone does not add any kernel code.
13992f1a3dSMarek Behún
14992f1a3dSMarek Behúnif CZNIC_PLATFORMS
15992f1a3dSMarek Behún
16992f1a3dSMarek Behúnconfig TURRIS_OMNIA_MCU
17992f1a3dSMarek Behún	tristate "Turris Omnia MCU driver"
18992f1a3dSMarek Behún	depends on MACH_ARMADA_38X || COMPILE_TEST
19992f1a3dSMarek Behún	depends on I2C
20992f1a3dSMarek Behún	help
21992f1a3dSMarek Behún	  Say Y here to add support for the features implemented by the
22992f1a3dSMarek Behún	  microcontroller on the CZ.NIC's Turris Omnia SOHO router.
23af340b7aSMarek Behún	  This option only enables the core part of the driver. Specific
24af340b7aSMarek Behún	  features can be enabled by subsequent config options.
25992f1a3dSMarek Behún	  To compile this driver as a module, choose M here; the module will be
26992f1a3dSMarek Behún	  called turris-omnia-mcu.
27992f1a3dSMarek Behún
28019f87f1SMarek Behúnif TURRIS_OMNIA_MCU
29019f87f1SMarek Behún
30af340b7aSMarek Behúnconfig TURRIS_OMNIA_MCU_GPIO
31af340b7aSMarek Behún	bool "Turris Omnia MCU GPIOs"
32af340b7aSMarek Behún	default y
33af340b7aSMarek Behún	depends on GPIOLIB
34af340b7aSMarek Behún	depends on OF
35af340b7aSMarek Behún	select GPIOLIB_IRQCHIP
36af340b7aSMarek Behún	help
37af340b7aSMarek Behún	  Say Y here to add support for controlling MCU GPIO pins and receiving
38af340b7aSMarek Behún	  MCU interrupts on CZ.NIC's Turris Omnia.
39af340b7aSMarek Behún	  This enables you to
40af340b7aSMarek Behún	  - get front button press events (the front button can be configured
41af340b7aSMarek Behún	    either to generate press events to the CPU or to change front LEDs
42af340b7aSMarek Behún	    panel brightness),
43af340b7aSMarek Behún	  - enable / disable USB port voltage regulators and to detect USB
44af340b7aSMarek Behún	    overcurrent,
45af340b7aSMarek Behún	  - detect MiniPCIe / mSATA card presence in MiniPCIe port 0,
46af340b7aSMarek Behún	  - configure resets of various peripherals on board revisions 32+,
47af340b7aSMarek Behún	  - enable / disable the VHV voltage regulator to the SOC in order to be
48af340b7aSMarek Behún	    able to program SOC's OTP on board revisions 32+,
49af340b7aSMarek Behún	  - get input from the LED output pins of the WAN ethernet PHY, LAN
50af340b7aSMarek Behún	    switch and MiniPCIe ports.
51af340b7aSMarek Behún
5274a22fceSMarek Behúnconfig TURRIS_OMNIA_MCU_SYSOFF_WAKEUP
5374a22fceSMarek Behún	bool "Turris Omnia MCU system off and RTC wakeup"
5474a22fceSMarek Behún	default y
5574a22fceSMarek Behún	depends on RTC_CLASS
5674a22fceSMarek Behún	help
5774a22fceSMarek Behún	  Say Y here to add support for CZ.NIC's Turris Omnia board poweroff
5874a22fceSMarek Behún	  into true low power mode (with voltage regulators disabled) and the
5974a22fceSMarek Behún	  ability to configure wake up from this mode (via rtcwake).
6074a22fceSMarek Behún
61019f87f1SMarek Behúnconfig TURRIS_OMNIA_MCU_WATCHDOG
62019f87f1SMarek Behún	bool "Turris Omnia MCU watchdog"
63019f87f1SMarek Behún	default y
64019f87f1SMarek Behún	depends on WATCHDOG
65019f87f1SMarek Behún	select WATCHDOG_CORE
66019f87f1SMarek Behún	help
67019f87f1SMarek Behún	  Say Y here to add support for watchdog provided by CZ.NIC's Turris
68019f87f1SMarek Behún	  Omnia MCU.
69019f87f1SMarek Behún
70c7da0d4eSMarek Behúnconfig TURRIS_OMNIA_MCU_TRNG
71c7da0d4eSMarek Behún	bool "Turris Omnia MCU true random number generator"
72c7da0d4eSMarek Behún	default y
73af340b7aSMarek Behún	depends on TURRIS_OMNIA_MCU_GPIO
74b97acde6SArnd Bergmann	depends on HW_RANDOM=y || HW_RANDOM=TURRIS_OMNIA_MCU
75c7da0d4eSMarek Behún	help
76c7da0d4eSMarek Behún	  Say Y here to add support for the true random number generator
77c7da0d4eSMarek Behún	  provided by CZ.NIC's Turris Omnia MCU.
78c7da0d4eSMarek Behún
79*df94a2f1SMarek Behúnconfig TURRIS_OMNIA_MCU_KEYCTL
80*df94a2f1SMarek Behún	bool "Turris Omnia MCU ECDSA message signing"
81*df94a2f1SMarek Behún	default y
82*df94a2f1SMarek Behún	depends on KEYS
83*df94a2f1SMarek Behún	depends on ASYMMETRIC_KEY_TYPE
84*df94a2f1SMarek Behún	depends on TURRIS_OMNIA_MCU_GPIO
85*df94a2f1SMarek Behún	select TURRIS_SIGNING_KEY
86*df94a2f1SMarek Behún	help
87*df94a2f1SMarek Behún	  Say Y here to add support for ECDSA message signing with board private
88*df94a2f1SMarek Behún	  key (if available on the MCU). This is exposed via the keyctl()
89*df94a2f1SMarek Behún	  syscall.
90*df94a2f1SMarek Behún
91019f87f1SMarek Behúnendif # TURRIS_OMNIA_MCU
92019f87f1SMarek Behún
930b28b708SMarek Behúnconfig TURRIS_SIGNING_KEY
940b28b708SMarek Behún	tristate
950b28b708SMarek Behún	depends on KEYS
960b28b708SMarek Behún	depends on ASYMMETRIC_KEY_TYPE
970b28b708SMarek Behún
98992f1a3dSMarek Behúnendif # CZNIC_PLATFORMS
99