// IWYU pragma: private

#include "platforms/arm/is_arm.h"

// ok no namespace fl
#ifndef __INC_LED_SYSDEFS_ARM_GIGA_H
#define __INC_LED_SYSDEFS_ARM_GIGA_H

#ifndef FL_IS_ARM
#error "FL_IS_ARM must be defined before including this header. Ensure platforms/arm/is_arm.h is included first."
#endif

#ifndef FASTLED_USE_PROGMEM
#define FASTLED_USE_PROGMEM 0
#endif

#ifndef INTERRUPT_THRESHOLD
#define INTERRUPT_THRESHOLD 1
#endif

// Default to allowing interrupts
#ifndef FASTLED_ALLOW_INTERRUPTS
#define FASTLED_ALLOW_INTERRUPTS 1
#endif

#if FASTLED_ALLOW_INTERRUPTS == 1
#define FASTLED_ACCURATE_CLOCK
#endif

// reusing/abusing cli/sei defs for due
#define cli()  __disable_irq();
#define sei() __enable_irq();

#define FASTLED_NO_PINMAP

typedef volatile fl::u32 RoReg;
typedef volatile fl::u32 RwReg;

// Mbed-on-STM32H7 toolchains often supply `F_CPU` on the command line; only
// define it here when the build environment hasn't already.
#ifndef F_CPU
#define F_CPU 480000000
#endif

#endif
