diff --git a/arch/arm/boards/phytec-som-am335x/Kconfig b/arch/arm/boards/phytec-som-am335x/Kconfig new file mode 100644 index 0000000..52fa723 --- /dev/null +++ b/arch/arm/boards/phytec-som-am335x/Kconfig @@ -0,0 +1,13 @@ + +if MACH_PHYTEC_SOM_AM335X + +config PHYTEC_SOM_AM335X_OF_AUTOENABLE + bool + prompt "Autoenable of components" + help + Say Y to unlock an API for automatically enable either hardware + components with existing device drivers or i2c clients. All functions + take a device tree path to find the hardware and will fix up the node + status in the kernel device tree, if it's accessible. + +endif diff --git a/arch/arm/boards/phytec-som-am335x/board.c b/arch/arm/boards/phytec-som-am335x/board.c index 9f74981..0e9bf5f 100644 --- a/arch/arm/boards/phytec-som-am335x/board.c +++ b/arch/arm/boards/phytec-som-am335x/board.c @@ -135,6 +135,19 @@ } } + if (IS_ENABLED(PHYTEC_SOM_AM335X_OF_AUTOENABLE)) { + /* Enable NAND */ + of_autoenable_device_by_path("/ocp/gpmc@50000000"); + /* Enable eMMC */ + of_autoenable_device_by_path("/ocp/mmc@481d8000"); + /* Enable SPI NOR */ + of_autoenable_device_by_path("/ocp/spi@48030000/m25p80@0"); + + of_autoenable_i2c_by_component("/ocp/i2c@44e0b000/temp@4b"); + of_autoenable_i2c_by_component("/ocp/i2c@44e0b000/eeprom@52"); + of_autoenable_i2c_by_component("/ocp/i2c@44e0b000/rtc@68"); + } + if (IS_ENABLED(CONFIG_SHELL_NONE)) return am33xx_of_register_bootdevice(); diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig index 9c41741..e8fc4b8 100644 --- a/arch/arm/mach-omap/Kconfig +++ b/arch/arm/mach-omap/Kconfig @@ -192,6 +192,8 @@ endif +source arch/arm/boards/phytec-som-am335x/Kconfig + choice prompt "Select OMAP board" depends on !OMAP_MULTI_BOARDS