TODO:
- remove the defined feature as kernel versions
- remove OS wrapper functions
- remove custom debug and tracing functions
- rework comments and function headers(also coding style)
- replace all semaphores with mutexes or completions
- make spi and sdio components coexist in one build
- turn compile-time platform configuration (BEAGLE_BOARD,
  PANDA_BOARD, PLAT_WMS8304, PLAT_RKXXXX, CUSTOMER_PLATFORM, ...)
  into run-time options that are read from DT
- support soft-ap and p2p mode
- support resume/suspend function
- replace SIOCDEVPRIVATE commands with generic API functions
- use wext-core handling instead of private SIOCSIWPRIV implementation