# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

# Autogen ADC Control Interface DIF library
sw_lib_dif_autogen_adc_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_adc_ctrl',
    sources: [
      hw_ip_adc_ctrl_reg_h,
      'dif_adc_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen AES DIF library
sw_lib_dif_autogen_aes = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_aes',
    sources: [
      hw_ip_aes_reg_h,
      'dif_aes_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Alert Handler DIF library
sw_lib_dif_autogen_alert_handler = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_alert_handler',
    sources: [
      hw_ip_alert_handler_reg_h,
      'dif_alert_handler_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Always-On Timer DIF library
sw_lib_dif_autogen_aon_timer = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_aon_timer',
    sources: [
      hw_ip_aon_timer_reg_h,
      'dif_aon_timer_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Clock Manager DIF library
sw_lib_dif_autogen_clkmgr = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_clkmgr',
    sources: [
      hw_ip_clkmgr_reg_h,
      'dif_clkmgr_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen CSRNG DIF library
sw_lib_dif_autogen_csrng = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_csrng',
    sources: [
      hw_ip_csrng_reg_h,
      'dif_csrng_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen EDN DIF library
sw_lib_dif_autogen_edn = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_edn',
    sources: [
      hw_ip_edn_reg_h,
      'dif_edn_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Entropy Source DIF library
sw_lib_dif_autogen_entropy_src = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_entropy_src',
    sources: [
      hw_ip_entropy_src_reg_h,
      'dif_entropy_src_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Flash Controller DIF library
sw_lib_dif_autogen_flash_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_flash_ctrl',
    sources: [
      hw_ip_flash_ctrl_reg_h,
      'dif_flash_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen GPIO DIF library
sw_lib_dif_autogen_gpio = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_gpio',
    sources: [
      hw_ip_gpio_reg_h,
      'dif_gpio_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen HMAC DIF library
sw_lib_dif_autogen_hmac = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_hmac',
    sources: [
      hw_ip_hmac_reg_h,
      'dif_hmac_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen I2C DIF library
sw_lib_dif_autogen_i2c = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_i2c',
    sources: [
      hw_ip_i2c_reg_h,
      'dif_i2c_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Key Manager DIF library
sw_lib_dif_autogen_keymgr = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_keymgr',
    sources: [
      hw_ip_keymgr_reg_h,
      'dif_keymgr_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen KMAC DIF library
sw_lib_dif_autogen_kmac = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_kmac',
    sources: [
      hw_ip_kmac_reg_h,
      'dif_kmac_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Lifecycle Controller DIF library
sw_lib_dif_autogen_lc_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_lc_ctrl',
    sources: [
      hw_ip_lc_ctrl_reg_h,
      'dif_lc_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen OTBN DIF library
sw_lib_dif_autogen_otbn = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_otbn',
    sources: [
      hw_ip_otbn_reg_h,
      'dif_otbn_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen OTP Controller DIF library
sw_lib_dif_autogen_otp_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_otp_ctrl',
    sources: [
      hw_ip_otp_ctrl_reg_h,
      'dif_otp_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen PATTGEN DIF library
sw_lib_dif_autogen_pattgen = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_pattgen',
    sources: [
      hw_ip_pattgen_reg_h,
      'dif_pattgen_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Pin Multiplexer DIF library
sw_lib_dif_autogen_pinmux = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_pinmux',
    sources: [
      hw_top_earlgrey_pinmux_reg_h,
      'dif_pinmux_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Power Manager DIF library
sw_lib_dif_autogen_pwrmgr = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_pwrmgr',
    sources: [
      hw_ip_pwrmgr_reg_h,
      'dif_pwrmgr_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen Reset Manager DIF library
sw_lib_dif_autogen_rstmgr = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_rstmgr',
    sources: [
      hw_ip_rstmgr_reg_h,
      'dif_rstmgr_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen ROM Controller DIF library
sw_lib_dif_autogen_rom_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_rom_ctrl',
    sources: [
      hw_ip_rom_ctrl_reg_h,
      'dif_rom_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen RV PLIC DIF library
sw_lib_dif_autogen_rv_plic = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_rv_plic',
    sources: [
      hw_top_earlgrey_rv_plic_reg_h,
      'dif_rv_plic_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen RV Timer DIF library
sw_lib_dif_autogen_rv_timer = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_rv_timer',
    sources: [
      hw_ip_rv_timer_reg_h,
      'dif_rv_timer_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen SPI Device DIF library
sw_lib_dif_autogen_spi_device = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_spi_device',
    sources: [
      hw_ip_spi_device_reg_h,
      'dif_spi_device_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen SPI Host DIF library
sw_lib_dif_autogen_spi_host = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_spi_host',
    sources: [
      hw_ip_spi_host_reg_h,
      'dif_spi_host_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen SRAM Controller DIF library
sw_lib_dif_autogen_sram_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_sram_ctrl',
    sources: [
      hw_ip_sram_ctrl_reg_h,
      'dif_sram_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen System Reset Control DIF library
sw_lib_dif_autogen_sysrst_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_sysrst_ctrl',
    sources: [
      hw_ip_sysrst_ctrl_reg_h,
      'dif_sysrst_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen USB Device DIF library
sw_lib_dif_autogen_usbdev = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_usbdev',
    sources: [
      hw_ip_usbdev_reg_h,
      'dif_usbdev_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)

# Autogen UART DIF library
sw_lib_dif_autogen_uart = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_uart',
    sources: [
      hw_ip_uart_reg_h,
      'dif_uart_autogen.c',
    ],
    dependencies: [
      sw_lib_dif_base,
      sw_lib_mmio,
    ],
  )
)
