1cb82a532SUlf Samuelsson /* 2cb82a532SUlf Samuelsson * (C) Copyright 2006 3cb82a532SUlf Samuelsson * Atmel Nordic AB <www.atmel.com> 4cb82a532SUlf Samuelsson * Ulf Samuelsson <ulf@atmel.com> 5cb82a532SUlf Samuelsson * 699fa97e9SAndreas Bießmann * (C) Copyright 2010 7*09c2b8f3SAndreas Bießmann * Andreas Bießmann <andreas@biessmann.org> 899fa97e9SAndreas Bießmann * 91a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 10cb82a532SUlf Samuelsson */ 11cb82a532SUlf Samuelsson 12cb82a532SUlf Samuelsson #include <common.h> 1380733994SJens Scharsig #include <asm/io.h> 1480733994SJens Scharsig #include <asm/arch/hardware.h> 1570341e2eSWenyou Yang #include <asm/arch/clk.h> 1680733994SJens Scharsig #include <asm/arch/at91_pio.h> 1752422e37SJeroen Hofstee #include <status_led.h> 18cb82a532SUlf Samuelsson 1999fa97e9SAndreas Bießmann /* bit mask in PIO port B */ 2099fa97e9SAndreas Bießmann #define GREEN_LED (1<<0) 2199fa97e9SAndreas Bießmann #define YELLOW_LED (1<<1) 2299fa97e9SAndreas Bießmann #define RED_LED (1<<2) 23cb82a532SUlf Samuelsson green_led_on(void)242d3be7c4SJason Kridnervoid green_led_on(void) 25cb82a532SUlf Samuelsson { 2680733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 2799fa97e9SAndreas Bießmann writel(GREEN_LED, &pio->piob.codr); 28cb82a532SUlf Samuelsson } 29cb82a532SUlf Samuelsson yellow_led_on(void)302d3be7c4SJason Kridnervoid yellow_led_on(void) 31cb82a532SUlf Samuelsson { 3280733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 3399fa97e9SAndreas Bießmann writel(YELLOW_LED, &pio->piob.codr); 34cb82a532SUlf Samuelsson } 35cb82a532SUlf Samuelsson red_led_on(void)362d3be7c4SJason Kridnervoid red_led_on(void) 37cb82a532SUlf Samuelsson { 3880733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 3999fa97e9SAndreas Bießmann writel(RED_LED, &pio->piob.codr); 40cb82a532SUlf Samuelsson } 41cb82a532SUlf Samuelsson green_led_off(void)422d3be7c4SJason Kridnervoid green_led_off(void) 43cb82a532SUlf Samuelsson { 4480733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 4599fa97e9SAndreas Bießmann writel(GREEN_LED, &pio->piob.sodr); 46cb82a532SUlf Samuelsson } 47cb82a532SUlf Samuelsson yellow_led_off(void)482d3be7c4SJason Kridnervoid yellow_led_off(void) 49cb82a532SUlf Samuelsson { 5080733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 5199fa97e9SAndreas Bießmann writel(YELLOW_LED, &pio->piob.sodr); 52cb82a532SUlf Samuelsson } 53cb82a532SUlf Samuelsson red_led_off(void)542d3be7c4SJason Kridnervoid red_led_off(void) 55cb82a532SUlf Samuelsson { 5680733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 5799fa97e9SAndreas Bießmann writel(RED_LED, &pio->piob.sodr); 58cb82a532SUlf Samuelsson } 59cb82a532SUlf Samuelsson coloured_LED_init(void)60cb82a532SUlf Samuelssonvoid coloured_LED_init (void) 61cb82a532SUlf Samuelsson { 6280733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 63cb82a532SUlf Samuelsson 6470341e2eSWenyou Yang at91_periph_clk_enable(ATMEL_ID_PIOB); 6599fa97e9SAndreas Bießmann 66cb82a532SUlf Samuelsson /* Disable peripherals on LEDs */ 6799fa97e9SAndreas Bießmann writel(GREEN_LED | YELLOW_LED | RED_LED, &pio->piob.per); 68cb82a532SUlf Samuelsson /* Enable pins as outputs */ 6999fa97e9SAndreas Bießmann writel(GREEN_LED | YELLOW_LED | RED_LED, &pio->piob.oer); 70cb82a532SUlf Samuelsson /* Turn all LEDs OFF */ 7199fa97e9SAndreas Bießmann writel(GREEN_LED | YELLOW_LED | RED_LED, &pio->piob.sodr); 72cb82a532SUlf Samuelsson } 73