# SPDX-License-Identifier: GPL-2.0
if CRIS_MACH_ARTPEC3

menu "Artpec-3 options"
       depends on CRIS_MACH_ARTPEC3

config ETRAX_DRAM_VIRTUAL_BASE
	hex
	default "c0000000"

config ETRAX_L2CACHE
       bool
       default y

config ETRAX_SERIAL_PORTS
       int
       default 5

config ETRAX_DDR2_MRS
	hex "DDR2 MRS"
	default "0"

config ETRAX_DDR2_TIMING
	hex "DDR2 SDRAM timing"
	default "0"
	help
	  SDRAM timing parameters.

config ETRAX_DDR2_CONFIG
	hex "DDR2 config"
	default "0"

config ETRAX_DDR2_LATENCY
	hex "DDR2 latency"
	default "0"

config ETRAX_PIO_CE0_CFG
       hex "PIO CE0 configuration"
       default "0"

config ETRAX_PIO_CE1_CFG
       hex "PIO CE1 configuration"
       default "0"

config ETRAX_PIO_CE2_CFG
       hex "PIO CE2 configuration"
       default "0"

config ETRAX_DEF_GIO_PA_OE
	hex "GIO_PA_OE"
	default "00000000"
	help
	  Configures the direction of general port A bits.  1 is out, 0 is in.
	  This is often totally different depending on the product used.
	  There are some guidelines though - if you know that only LED's are
	  connected to port PA, then they are usually connected to bits 2-4
	  and you can therefore use 1c.  On other boards which don't have the
	  LED's at the general ports, these bits are used for all kinds of
	  stuff.  If you don't know what to use, it is always safe to put all
	  as inputs, although floating inputs isn't good.

config ETRAX_DEF_GIO_PA_OUT
	hex "GIO_PA_OUT"
	default "00000000"
	help
	  Configures the initial data for the general port A bits.  Most
	  products should use 00 here.

config ETRAX_DEF_GIO_PB_OE
	hex "GIO_PB_OE"
	default "000000000"
	help
	  Configures the direction of general port B bits.  1 is out, 0 is in.
	  This is often totally different depending on the product used.
	  There are some guidelines though - if you know that only LED's are
	  connected to port PA, then they are usually connected to bits 2-4
	  and you can therefore use 1c.  On other boards which don't have the
	  LED's at the general ports, these bits are used for all kinds of
	  stuff.  If you don't know what to use, it is always safe to put all
	  as inputs, although floating inputs isn't good.

config ETRAX_DEF_GIO_PB_OUT
	hex "GIO_PB_OUT"
	default "000000000"
	help
	  Configures the initial data for the general port B bits.  Most
	  products should use 00000 here.

config ETRAX_DEF_GIO_PC_OE
	hex "GIO_PC_OE"
	default "00000"
	help
	  Configures the direction of general port C bits.  1 is out, 0 is in.
	  This is often totally different depending on the product used.
	  There are some guidelines though - if you know that only LED's are
	  connected to port PA, then they are usually connected to bits 2-4
	  and you can therefore use 1c.  On other boards which don't have the
	  LED's at the general ports, these bits are used for all kinds of
	  stuff.  If you don't know what to use, it is always safe to put all
	  as inputs, although floating inputs isn't good.

config ETRAX_DEF_GIO_PC_OUT
	hex "GIO_PC_OUT"
	default "00000"
	help
	  Configures the initial data for the general port C bits.  Most
	  products should use 00000 here.

endmenu

endif
