diff options
Diffstat (limited to 'cpu/mpc824x/drivers/i2c/i2c2.S')
-rw-r--r-- | cpu/mpc824x/drivers/i2c/i2c2.S | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/cpu/mpc824x/drivers/i2c/i2c2.S b/cpu/mpc824x/drivers/i2c/i2c2.S new file mode 100644 index 0000000..5cc7c98 --- /dev/null +++ b/cpu/mpc824x/drivers/i2c/i2c2.S @@ -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 */ |