Currently, modules/Makefile is a tangled mess of .if sections that attempt to build the right set of modules for the current arch, kernel config, and MK_xxxx options in effect. Some of the .if blocks are clumped by functionality, some by arch, some by MK_xxxx option. In general, it's nearly impossible to figure out what might actually get built for a given configuration. It's even harder to figure out where to add the conditional logic for some new module that needs to be excluded from some builds.
The new design is to automatically search for and build all modules except those filtered out. It provides a filtering mechanism based on setting variables to indicate lists of architectures and options based on module/dir name. If there are no variables set for a given module name, that module gets built. If the variables are set, then the module is built as long as the current build architecture and options match the entries in the module's variables.
Rather then restating the list of variables and how they control the filtering here, I'll just mention that a comment block at the top of the Makefile has that info.