# SPDX-License-Identifier: Apache-2.0

if BOARD_GALILEO

config BUILD_OUTPUT_STRIPPED
	default y

config BOARD
	default "galileo"

config I2C
	default y

config GPIO
	default y

config PWM
	default y

config SPI
	default y

config SHARED_IRQ
	default y

config PCI_ENUMERATION
	default y

if GPIO && I2C

config GPIO_PCAL9535A
	default y

if GPIO_PCAL9535A

config GPIO_PCAL9535A_0
	default y

if GPIO_PCAL9535A_0

config GPIO_PCAL9535A_0_DEV_NAME
	default "EXP0"
config GPIO_PCAL9535A_0_I2C_ADDR
	default 0x25
config GPIO_PCAL9535A_0_I2C_MASTER_DEV_NAME
	default "$(dt_str_val,DT_SNPS_DESIGNWARE_I2C_90007000_LABEL)"

endif # GPIO_PCAL9535A_0

config GPIO_PCAL9535A_1
	default y

if GPIO_PCAL9535A_1

config GPIO_PCAL9535A_1_DEV_NAME
	default "EXP1"
config GPIO_PCAL9535A_1_I2C_ADDR
	default 0x26
config GPIO_PCAL9535A_1_I2C_MASTER_DEV_NAME
	default "$(dt_str_val,DT_SNPS_DESIGNWARE_I2C_90007000_LABEL)"

endif # GPIO_PCAL9535A_1

config GPIO_PCAL9535A_2
	default y

if GPIO_PCAL9535A_2

config GPIO_PCAL9535A_2_DEV_NAME
	default "EXP2"
config GPIO_PCAL9535A_2_I2C_ADDR
	default 0x27
config GPIO_PCAL9535A_2_I2C_MASTER_DEV_NAME
	default "$(dt_str_val,DT_SNPS_DESIGNWARE_I2C_90007000_LABEL)"

endif # GPIO_PCAL9535A_2

endif # GPIO_PCAL9535A

endif # GPIO && I2C

if PWM && I2C

config PWM_PCA9685
	default y

if PWM_PCA9685

config PWM_PCA9685_0
	default y

if PWM_PCA9685_0

config PWM_PCA9685_0_DEV_NAME
	default "PWM0"
config PWM_PCA9685_0_I2C_ADDR
	default 0x47
config PWM_PCA9685_0_I2C_MASTER_DEV_NAME
	default "$(dt_str_val,DT_SNPS_DESIGNWARE_I2C_90007000_LABEL)"

endif # PWM_PCA9685_0
endif # PWM_PCA9685
endif # PWM && I2C

# SPI uses GPIO pin for CS, so it needs to be initialized after
# the gpio_dw driver ( and the pinmux driver for port 1)
config SPI_INIT_PRIORITY
	default 90 if SPI_INTEL

# Pin multiplexer uses PCAL9535A, needs to be initialized after it
config PINMUX_INIT_PRIORITY
	default 80 if PINMUX

endif # BOARD_GALILEO
