############################################################################
# Helper script: /load_kernel_modules.scr/platform/aarch64/baseline_chrome
# Purpose......: Set the Kernel modules for chrome based Hardware Models
#                within the Slackware initial RAM disk ('OS initrd')
#                and the Slackware Installer.
#                This script is sourced from '/load_kernel_modules'
############################################################################

############################################################################
# Author.......: William Burlamachi <william.armbit@outlook.com>
# Upstream repo: https://gitlab.com/w.slk-hw/cros-slk-aarch64
# Date.........: 08-Jul-2026
# Maintainer...: William Burlamachi <william.armbit@outlook.com>
############################################################################

# define these at the individual board loaders
# cros_ec_keyb cros-ec-anx7688 leds-cros_ec cros-ec-cec rtc-cros-ec
# cros_ec_sensors cros-ec-sensors-core cros-ec-sensorhub 
# cros_ec_baro cros_ec_light_prox cros_ec_lid_angle
# cros_ec_lightbar cros_ec_ucsi cros_typec_switch cros_kbd_led_backlight

modloader_chromebook=0

# Use lower case $hwm here to match on the actual Hardware Model name, since
# these modules are only required for Chromebooks.
case $hwm in
   # MediaTek MT8195
   "Acer Tomato "*)
      modloader_chromebook=1
      ;;
   # MediaTek MT8192
   "Google Hayato rev1"|"Google Spherion (rev0 - 3)")
      modloader_chromebook=1
      ;;
   # MediaTek MT8188
   "Google Ciri sku"*)
      modloader_chromebook=1
      ;;
   # MediaTek MT8186
   "Google Magneton board"|"Google Tentacruel board"|"Google Tentacool board"|"Google Steelix board"|"Google Rusty board")
      modloader_chromebook=1
      ;;
   # MediaTek MT8183 (krane)
   "MediaTek krane sku0 board"|"MediaTek krane sku176 board"|PLATWALK)
      modloader_chromebook=1
      MOD_BASE+="     cros_ec_sensors cros-ec-sensors-core cros-ec-sensorhub"
      MOD_HWM+="      hid-google-hammer hid-vivaldi-common"
      ;;
   # MediaTek MT8183 (jacuzzi)
   "Google burnet board"|"Google cozmo board"|"Google damu board"|"Google kappa board"|"Google makomo sku"*|"Google pico board"|"Google pico6 board"|"Google willow board sku"*)
      modloader_chromebook=1
      ;;
   # Rockchip RK3399
   "Google Scarlet")
      modloader_chromebook=1
      ;;
   # Qualcomm
   "Google CoachZ"*|"Google Evoker"*|"Google Herobrine "*|"Google Homestar "*|"Google Kingoftown"|"Google Lazor "*|"Google Pazquel "*|"Google Pompom *"|"Google Quackingstick "*|"Google Trogdor "*|"Google Villagner "*|"Google Wormdingler "*|"Google Zombie"*)
      modloader_chromebook=1
      ;;
esac

# Note that at runtime the lower case version of $hwm will never = PLATWALK
# This will only be set from the validation script during development.
if [ "$modloader_chromebook" -eq 1 ] || [ "$hwm" = "PLATWALK" ]; then
      MOD_CROS_EC="   cros-ec pwm-cros-ec i2c-cros-ec-tunnel cros_ec_activity cros-ec-regulator cros_ec_rpmsg cros_ec_sysfs cros_ec_chardev cros_ec_uart cros_ec_debugfs cros_ec_vbc cros-ec-typec cros_ec_hwmon"
      MOD_CROS_PSU="  cros_charge-control cros_usbpd-charger cros_peripheral_charger" 
      MOD_BASE+="     ${MOD_CROS_EC} ${MOD_CROS_PSU} cros_hps_i2c cros_usbpd_logger \
                      cros_usbpd_notify cros-ec-proto dm-thin-pool dm-snapshot dm-bufio dm-mod"
      MOD_GPIO+="     gpio-cros-ec"
      MOD_MFD+="      cros_ec_dev"
fi
