source "drivers/devfreq/Kconfig"
 
+source "drivers/iio/Kconfig"
+
 endmenu
 
 obj-$(CONFIG_HYPERV)           += hv/
 
 obj-$(CONFIG_PM_DEVFREQ)       += devfreq/
+obj-$(CONFIG_IIO)              += iio/
 
--- /dev/null
+#
+# Industrial I/O subsytem configuration
+#
+
+menuconfig IIO
+       tristate "Industrial I/O support"
+       depends on GENERIC_HARDIRQS
+       help
+         The industrial I/O subsystem provides a unified framework for
+         drivers for many different types of embedded sensors using a
+         number of different physical interfaces (i2c, spi, etc). See
+         Documentation/iio for more information.
+
+if IIO
+
+config IIO_BUFFER
+       bool "Enable buffer support within IIO"
+       help
+         Provide core support for various buffer based data
+         acquisition methods.
+
+if IIO_BUFFER
+
+config IIO_KFIFO_BUF
+       select IIO_TRIGGER
+       tristate "Industrial I/O buffering based on kfifo"
+       help
+         A simple fifo based on kfifo.  Use this if you want a fifo
+         rather than a ring buffer. Note that this currently provides
+         no buffer events so it is up to userspace to work out how
+         often to read from the buffer.
+
+endif # IIO_BUFFER
+
+config IIO_TRIGGER
+       boolean "Enable triggered sampling support"
+       help
+         Provides IIO core support for triggers.  Currently these
+         are used to initialize capture of samples to push into
+         ring buffers.  The triggers are effectively a 'capture
+         data now' interrupt.
+
+config IIO_CONSUMERS_PER_TRIGGER
+       int "Maximum number of consumers per trigger"
+       depends on IIO_TRIGGER
+       default "2"
+       help
+       This value controls the maximum number of consumers that a
+       given trigger may handle. Default is 2.
+
+endif # IIO
 
--- /dev/null
+#
+# Makefile for the industrial I/O core.
+#
+
+obj-$(CONFIG_IIO) += industrialio.o
+industrialio-y := industrialio-core.o industrialio-event.o inkern.o
+industrialio-$(CONFIG_IIO_BUFFER) += industrialio-buffer.o
+industrialio-$(CONFIG_IIO_TRIGGER) += industrialio-trigger.o
+
+obj-$(CONFIG_IIO_KFIFO_BUF) += kfifo_buf.o
 
 #
 # Industrial I/O subsytem configuration
 #
+menu "IIO staging drivers"
+       depends on IIO
 
-menuconfig IIO
-       tristate "Industrial I/O support"
-       depends on GENERIC_HARDIRQS
-       help
-         The industrial I/O subsystem provides a unified framework for
-         drivers for many different types of embedded sensors using a
-         number of different physical interfaces (i2c, spi, etc). See
-         drivers/staging/iio/Documentation for more information.
-if IIO
 config IIO_ST_HWMON
        tristate "Hwmon driver that uses channels specified via iio maps"
        depends on HWMON
          map allows IIO devices to provide  basic hwmon functionality
          for those channels specified in the map.
 
-config IIO_BUFFER
-       bool "Enable buffer support within IIO"
-       help
-         Provide core support for various buffer based data
-         acquisition methods.
-
 if IIO_BUFFER
 
 config IIO_SW_RING
          with the intention that some devices would be able to write
          in interrupt context.
 
-config IIO_KFIFO_BUF
-       select IIO_TRIGGER
-       tristate "Industrial I/O buffering based on kfifo"
-       help
-         A simple fifo based on kfifo.  Use this if you want a fifo
-         rather than a ring buffer. Note that this currently provides
-         no buffer events so it is up to userspace to work out how
-         often to read from the buffer.
-
 endif # IIO_BUFFER
 
-config IIO_TRIGGER
-       boolean "Enable triggered sampling support"
-       help
-         Provides IIO core support for triggers.  Currently these
-         are used to initialize capture of samples to push into
-         ring buffers.  The triggers are effectively a 'capture
-         data now' interrupt.
-
-config IIO_CONSUMERS_PER_TRIGGER
-       int "Maximum number of consumers per trigger"
-       depends on IIO_TRIGGER
-       default "2"
-       help
-       This value controls the maximum number of consumers that a
-       given trigger may handle. Default is 2.
-
 source "drivers/staging/iio/accel/Kconfig"
 source "drivers/staging/iio/adc/Kconfig"
 source "drivers/staging/iio/addac/Kconfig"
 
 endif # IIO_SIMPLE_DUMMY
 
-endif # IIO
+endmenu
 
 # Makefile for the industrial I/O core.
 #
 
-obj-$(CONFIG_IIO) += industrialio.o
-industrialio-y := industrialio-core.o industrialio-event.o inkern.o
-industrialio-$(CONFIG_IIO_BUFFER) += industrialio-buffer.o
-industrialio-$(CONFIG_IIO_TRIGGER) += industrialio-trigger.o
-
 obj-$(CONFIG_IIO_SW_RING) += ring_sw.o
-obj-$(CONFIG_IIO_KFIFO_BUF) += kfifo_buf.o
 
 obj-$(CONFIG_IIO_SIMPLE_DUMMY) += iio_dummy.o
 iio_dummy-y := iio_simple_dummy.o