summaryrefslogtreecommitdiff
path: root/tcl/chip/atmel/at91/sam9_smc.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'tcl/chip/atmel/at91/sam9_smc.cfg')
-rw-r--r--tcl/chip/atmel/at91/sam9_smc.cfg55
1 files changed, 55 insertions, 0 deletions
diff --git a/tcl/chip/atmel/at91/sam9_smc.cfg b/tcl/chip/atmel/at91/sam9_smc.cfg
new file mode 100644
index 00000000..db943cb2
--- /dev/null
+++ b/tcl/chip/atmel/at91/sam9_smc.cfg
@@ -0,0 +1,55 @@
+# Setup register
+#
+# ncs_read_setup
+# nrd_setup
+# ncs_write_setup
+# set nwe_setup
+#
+#
+# Pulse register
+#
+# ncs_read_pulse
+# nrd_pulse
+# ncs_write_pulse
+# nwe_pulse
+#
+#
+# Cycle register
+#
+# read_cycle 0
+# write_cycle 0
+#
+#
+# Mode register
+#
+# mode
+# tdf_cycles
+proc sam9_smc_config { cs smc_config } {
+ ;# Setup Register for CS n
+ set AT91_SMC_SETUP [expr ($::AT91_SMC + 0x00 + ((cs)*0x10))]
+ set val [expr ($smc_config(nwe_setup) << 0)]
+ set val [expr ($val | $smc_config(ncs_write_setup) << 8]
+ set val [expr ($val | $smc_config(nrd_setup)) << 16]
+ set val [expr ($val | $smc_config(ncs_read_setup) << 24]
+ mww $AT91_SMC_SETUP $val
+
+ ;# Pulse Register for CS n
+ set AT91_SMC_PULSE [expr ($::AT91_SMC + 0x04 + ((cs)*0x10))]
+ set val [expr ($smc_config(nwe_pulse) << 0)]
+ set val [expr ($val | $smc_config(ncs_write_pulse) << 8]
+ set val [expr ($val | $smc_config(nrd_pulse) << 16]
+ set val [expr ($val | $smc_config(ncs_read_pulse) << 24]
+ mww $AT91_SMC_PULSE $val
+
+ ;# Cycle Register for CS n
+ set AT91_SMC_CYCLE [expr ($::AT91_SMC + 0x08 + ((cs)*0x10))]
+ set val [expr ($smc_config(write_cycle) << 0)]
+ set val [expr ($val | $smc_config(read_cycle) << 16]
+ mww $AT91_SMC_CYCLE $val
+
+ ;# Mode Register for CS n
+ set AT91_SMC_MODE [expr ($::AT91_SMC + 0x0c + ((cs)*0x10))]
+ set val [expr ($smc_config(mode) << 0)]
+ set val [expr ($val | $smc_config(tdf_cycles) << 16]
+ mww $AT91_SMC_MODE $val
+}