|
@@ -0,0 +1,54 @@
|
|
|
+/**************************************
|
|
|
+ *
|
|
|
+ * copyright @ Motorola, 1999
|
|
|
+ *
|
|
|
+ **************************************/
|
|
|
+
|
|
|
+#include <config.h>
|
|
|
+#ifdef CONFIG_HARD_I2C
|
|
|
+#include <ppc_asm.tmpl>
|
|
|
+#include <asm/mmu.h>
|
|
|
+/**********************************************************
|
|
|
+ * function: load_runtime_reg
|
|
|
+ *
|
|
|
+ * input: r3 - value of eumbbar
|
|
|
+ * r4 - register offset in embedded utility space
|
|
|
+ *
|
|
|
+ * output: r3 - register content
|
|
|
+ **********************************************************/
|
|
|
+ .text
|
|
|
+ .align 2
|
|
|
+ .global load_runtime_reg
|
|
|
+load_runtime_reg:
|
|
|
+
|
|
|
+/* xor r5,r5,r5
|
|
|
+* or r5,r5,r3
|
|
|
+*
|
|
|
+* lwbrx r3,r4,r5
|
|
|
+*/
|
|
|
+ lwbrx r3,r4,r3
|
|
|
+ sync
|
|
|
+
|
|
|
+ bclr 20, 0
|
|
|
+
|
|
|
+/****************************************************************
|
|
|
+ * function: store_runtime_reg
|
|
|
+ *
|
|
|
+ * input: r3 - value of eumbbar
|
|
|
+ * r4 - register offset in embedded utility space
|
|
|
+ * r5 - new value to be stored
|
|
|
+ *
|
|
|
+ ****************************************************************/
|
|
|
+ .text
|
|
|
+ .align 2
|
|
|
+ .global store_runtime_reg
|
|
|
+store_runtime_reg:
|
|
|
+
|
|
|
+ stwbrx r5, r4, r3
|
|
|
+ sync
|
|
|
+
|
|
|
+ bclr 20,0
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#endif /* CONFIG_HARD_I2C */
|