/* * (C) Copyright 2006 * Atmel Nordic AB * Ulf Samuelsson * * (C) Copyright 2010 * Andreas Bießmann * * SPDX-License-Identifier: GPL-2.0+ */ #include #include #include #include #include #include /* bit mask in PIO port B */ #define GREEN_LED (1<<0) #define YELLOW_LED (1<<1) #define RED_LED (1<<2) void green_led_on(void) { at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; writel(GREEN_LED, &pio->piob.codr); } void yellow_led_on(void) { at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; writel(YELLOW_LED, &pio->piob.codr); } void red_led_on(void) { at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; writel(RED_LED, &pio->piob.codr); } void green_led_off(void) { at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; writel(GREEN_LED, &pio->piob.sodr); } void yellow_led_off(void) { at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; writel(YELLOW_LED, &pio->piob.sodr); } void red_led_off(void) { at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; writel(RED_LED, &pio->piob.sodr); } void coloured_LED_init (void) { at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; at91_periph_clk_enable(ATMEL_ID_PIOB); /* Disable peripherals on LEDs */ writel(GREEN_LED | YELLOW_LED | RED_LED, &pio->piob.per); /* Enable pins as outputs */ writel(GREEN_LED | YELLOW_LED | RED_LED, &pio->piob.oer); /* Turn all LEDs OFF */ writel(GREEN_LED | YELLOW_LED | RED_LED, &pio->piob.sodr); }