/*
 * module_amba_driver() - Helper macro for drivers that don't do anything
 * special in module init/exit.  This eliminates a lot of boilerplate.  Each
 * module may only use this macro once, and calling it replaces module_init()
 * and module_exit()
 */
#define module_amba_driver(__amba_drv) \
        module_driver(__amba_drv, amba_driver_register, amba_driver_unregister)

 

#define module_driver(__driver, __register, __unregister, ...) \
static int __init __driver##_init(void) \
{ \
        return __register(&(__driver) , ##__VA_ARGS__); \
} 
 ARM_AMBA

 

drivers/amba/Kconfig:2:config ARM_AMBA

root@ubuntu:~/linux_arm64/linux-5.14# grep ARM64  .config
CONFIG_ARM64=y

 

root@ubuntu:~/linux_arm64/linux-5.14# grep ARM_AMBA  .config
CONFIG_ARM_AMBA=y

 

drivers/amba/Makefile:2:obj-$(CONFIG_ARM_AMBA)          += bus.o
include/linux/amba/bus.h:108:#ifdef CONFIG_ARM_AMBA

 

drivers/amba/bus.c

 

EXPORT_SYMBOL(amba_driver_register);
EXPORT_SYMBOL(amba_driver_unregister);
EXPORT_SYMBOL(amba_device_register);
EXPORT_SYMBOL(amba_device_unregister);
EXPORT_SYMBOL(amba_find_device);
EXPORT_SYMBOL(amba_request_regions);
EXPORT_SYMBOL(amba_release_regions);

 


 watchdog module_amba_driver_#ifdef

 

 

watchdog module_amba_driver_#define_02

 

 watchdog module_amba_driver_linux_03

 

 

 

root@ubuntu:~/linux_arm64/linux-5.14# grep ARM_SP805_WATCHDOG .config
CONFIG_ARM_SP805_WATCHDOG=m
root@ubuntu:~/linux_arm64/linux-5.14# lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              64
On-line CPU(s) list: 0-63
Thread(s) per core:  1
Core(s) per socket:  32
Socket(s):           2
NUMA node(s):        4
Vendor ID:           ARM
Model:               2
Model name:          Cortex-A72
Stepping:            r0p2
BogoMIPS:            100.00
L1d cache:           32K
L1i cache:           48K
L2 cache:            1024K
L3 cache:            16384K
NUMA node0 CPU(s):   0-15
NUMA node1 CPU(s):   16-31
NUMA node2 CPU(s):   32-47
NUMA node3 CPU(s):   48-63
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
root@ubuntu:~/linux_arm64/linux-5.14# 

 

 

riscv SP805
# ALPHA Architecture

# ARM Architecture

config ARM_SP805_WATCHDOG
        tristate "ARM SP805 Watchdog"
        depends on (ARM || ARM64 || COMPILE_TEST) && ARM_AMBA
        select WATCHDOG_CORE
        help
          ARM Primecell SP805 Watchdog timer. This will reboot your system when
          the timeout is reached.

 

 

watchdog module_amba_driver_#ifdef_04

 

 

 

[root@centos7 linux-5.14]# grep SP805  .config
CONFIG_ARM_SP805_WATCHDOG=y
[root@centos7 linux-5.14]#