Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
[platform/kernel/linux-starfive.git] / drivers / of / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config DTC
3         bool
4
5 menuconfig OF
6         bool "Device Tree and Open Firmware support"
7         help
8           This option enables the device tree infrastructure.
9           It is automatically selected by platforms that need it or can
10           be enabled manually for unittests, overlays or
11           compile-coverage.
12
13 if OF
14
15 config OF_UNITTEST
16         bool "Device Tree runtime unit tests"
17         depends on !SPARC
18         select IRQ_DOMAIN
19         select OF_EARLY_FLATTREE
20         select OF_RESOLVE
21         help
22           This option builds in test cases for the device tree infrastructure
23           that are executed once at boot time, and the results dumped to the
24           console.
25
26           If unsure, say N here, but this option is safe to enable.
27
28 config OF_ALL_DTBS
29         bool "Build all Device Tree Blobs"
30         depends on COMPILE_TEST
31         select DTC
32         help
33           This option builds all possible Device Tree Blobs (DTBs) for the
34           current architecture.
35
36           If unsure, say N here, but this option is safe to enable.
37
38 config OF_FLATTREE
39         bool
40         select DTC
41         select LIBFDT
42         select CRC32
43
44 config OF_EARLY_FLATTREE
45         bool
46         select DMA_DECLARE_COHERENT if HAS_DMA
47         select OF_FLATTREE
48
49 config OF_PROMTREE
50         bool
51
52 config OF_KOBJ
53         def_bool SYSFS
54
55 # Hardly any platforms need this.  It is safe to select, but only do so if you
56 # need it.
57 config OF_DYNAMIC
58         bool "Support for dynamic device trees" if OF_UNITTEST
59         select OF_KOBJ
60         help
61           On some platforms, the device tree can be manipulated at runtime.
62           While this option is selected automatically on such platforms, you
63           can enable it manually to improve device tree unit test coverage.
64
65 config OF_ADDRESS
66         def_bool y
67         depends on !SPARC && (HAS_IOMEM || UML)
68
69 config OF_IRQ
70         def_bool y
71         depends on !SPARC && IRQ_DOMAIN
72
73 config OF_RESERVED_MEM
74         def_bool OF_EARLY_FLATTREE
75
76 config OF_RESOLVE
77         bool
78
79 config OF_OVERLAY
80         bool "Device Tree overlays"
81         select OF_DYNAMIC
82         select OF_FLATTREE
83         select OF_RESOLVE
84         help
85           Overlays are a method to dynamically modify part of the kernel's
86           device tree with dynamically loaded data.
87           While this option is selected automatically when needed, you can
88           enable it manually to improve device tree unit test coverage.
89
90 config OF_NUMA
91         bool
92
93 config OF_DMA_DEFAULT_COHERENT
94         # arches should select this if DMA is coherent by default for OF devices
95         bool
96
97 endif # OF