source "drivers/thunderbolt/Kconfig"
 
+source "drivers/android/Kconfig"
+
 endmenu
 
 obj-$(CONFIG_MCB)              += mcb/
 obj-$(CONFIG_RAS)              += ras/
 obj-$(CONFIG_THUNDERBOLT)      += thunderbolt/
+obj-$(CONFIG_ANDROID)          += android/
 
--- /dev/null
+menu "Android"
+
+config ANDROID
+       bool "Android Drivers"
+       ---help---
+         Enable support for various drivers needed on the Android platform
+
+if ANDROID
+
+config ANDROID_BINDER_IPC
+       bool "Android Binder IPC Driver"
+       depends on MMU
+       default n
+       ---help---
+         Binder is used in Android for both communication between processes,
+         and remote method invocation.
+
+         This means one Android process can call a method/routine in another
+         Android process, using Binder to identify, invoke and pass arguments
+         between said processes.
+
+config ANDROID_BINDER_IPC_32BIT
+       bool
+       depends on !64BIT && ANDROID_BINDER_IPC
+       default y
+       ---help---
+         The Binder API has been changed to support both 32 and 64bit
+         applications in a mixed environment.
+
+         Enable this to support an old 32-bit Android user-space (v4.4 and
+         earlier).
+
+         Note that enabling this will break newer Android user-space.
+
+endif # if ANDROID
+
+endmenu
 
--- /dev/null
+ccflags-y += -I$(src)                  # needed for trace events
+
+obj-$(CONFIG_ANDROID_BINDER_IPC)       += binder.o
 
 #define BINDER_IPC_32BIT 1
 #endif
 
-#include "uapi/binder.h"
+#include <uapi/linux/android/binder.h>
 
 #endif /* _LINUX_BINDER_H */
 
 
 menu "Android"
 
-config ANDROID
-       bool "Android Drivers"
-       ---help---
-         Enable support for various drivers needed on the Android platform
-
 if ANDROID
 
-config ANDROID_BINDER_IPC
-       bool "Android Binder IPC Driver"
-       depends on MMU
-       default n
-       ---help---
-         Binder is used in Android for both communication between processes,
-         and remote method invocation.
-
-         This means one Android process can call a method/routine in another
-         Android process, using Binder to identify, invoke and pass arguments
-         between said processes.
-
-config ANDROID_BINDER_IPC_32BIT
-       bool
-       depends on !64BIT && ANDROID_BINDER_IPC
-       default y
-       ---help---
-         The Binder API has been changed to support both 32 and 64bit
-         applications in a mixed environment.
-
-         Enable this to support an old 32-bit Android user-space (v4.4 and
-         earlier).
-
-         Note that enabling this will break newer Android user-space.
-
 config ASHMEM
        bool "Enable the Anonymous Shared Memory Subsystem"
        default n
 
 
 obj-y                                  += ion/
 
-obj-$(CONFIG_ANDROID_BINDER_IPC)       += binder.o
 obj-$(CONFIG_ASHMEM)                   += ashmem.o
 obj-$(CONFIG_ANDROID_LOGGER)           += logger.o
 obj-$(CONFIG_ANDROID_TIMED_OUTPUT)     += timed_output.o
 
 # UAPI Header export list
+header-y += android/
 header-y += byteorder/
 header-y += can/
 header-y += caif/
 
--- /dev/null
+# UAPI Header export list
+header-y += binder.h