# enable 1GB of RAM, not just 750 MB
CONFIG_HIGHMEM=y

# this is a part of the Clearfog Base carrier
CONFIG_SENSORS_MCP3021=y

# mvneta
CONFIG_MVNETA_BM_ENABLE=y
CONFIG_MVPP2=n

# Clearfog: enable interrupt signalling for the expander0
CONFIG_GPIO_PCA953X_IRQ=y

# PMBus for the PSUs
CONFIG_PMBUS=y
CONFIG_SENSORS_PMBUS=y

# SPI-to-Quad-UART
CONFIG_SERIAL_MAX310X=y

# Extra I2C bus for the PSUs
CONFIG_I2C_GPIO=y

# SPI GPIO expander
CONFIG_PINCTRL_MCP23S08=y

CONFIG_LEDS_TLC591XX=y

# For the Lumentum OCM
CONFIG_SPI_SPIDEV=y

CONFIG_SFP=y
CONFIG_IGB=y

# optoswitch PCB
CONFIG_IIO=y
CONFIG_AD5593R=y

CONFIG_MACH_ARMADA_370=n
CONFIG_MACH_ARMADA_375=n
CONFIG_MACH_ARMADA_39X=n
CONFIG_MACH_ARMADA_XP=n
CONFIG_MACH_DOVE=n
CONFIG_NR_CPUS=2
CONFIG_HIGHMEM=n
CONFIG_MV643XX_ETH=n
CONFIG_KEYBOARD_ATKBD=N
CONFIG_INPUT_MOUSE=N

CONFIG_LOCALVERSION="-cla-cfb"
