Skip to content
Snippets Groups Projects
interrupts.c 583 B
Newer Older
  • Learn to ignore specific revisions
  • /*
     * Copyright (C) 2006 Atmel Corporation
     *
    
     * SPDX-License-Identifier:	GPL-2.0+
    
     */
    #include <common.h>
    
    #include <asm/sysreg.h>
    
    
    int interrupt_init(void)
    {
    	return 0;
    }
    
    
    void enable_interrupts(void)
    {
    	asm volatile("csrf	%0" : : "n"(SYSREG_GM_OFFSET));
    }
    
    int disable_interrupts(void)
    {
    	unsigned long sr;
    
    	sr = sysreg_read(SR);
    	asm volatile("ssrf	%0" : : "n"(SYSREG_GM_OFFSET));
    
    
    #ifdef CONFIG_AT32UC3A0xxx
    	/* Two NOPs are required after masking interrupts on the
    	 * AT32UC3A0512ES. See errata 41.4.5.5. */
    	asm("nop");
    	asm("nop");
    #endif
    
    
    	return !SYSREG_BFEXT(GM, sr);