1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+ 2cb82a532SUlf Samuelsson /* 3cb82a532SUlf Samuelsson * (C) Copyright 2006 4cb82a532SUlf Samuelsson * Atmel Nordic AB <www.atmel.com> 5cb82a532SUlf Samuelsson * Ulf Samuelsson <ulf@atmel.com> 6cb82a532SUlf Samuelsson * 799fa97e9SAndreas Bießmann * (C) Copyright 2010 809c2b8f3SAndreas Bießmann * Andreas Bießmann <andreas@biessmann.org> 9cb82a532SUlf Samuelsson */ 10cb82a532SUlf Samuelsson 11cb82a532SUlf Samuelsson #include <common.h> 1280733994SJens Scharsig #include <asm/io.h> 1380733994SJens Scharsig #include <asm/arch/hardware.h> 1470341e2eSWenyou Yang #include <asm/arch/clk.h> 1580733994SJens Scharsig #include <asm/arch/at91_pio.h> 1652422e37SJeroen Hofstee #include <status_led.h> 17cb82a532SUlf Samuelsson 1899fa97e9SAndreas Bießmann /* bit mask in PIO port B */ 1999fa97e9SAndreas Bießmann #define GREEN_LED (1<<0) 2099fa97e9SAndreas Bießmann #define YELLOW_LED (1<<1) 2199fa97e9SAndreas Bießmann #define RED_LED (1<<2) 22cb82a532SUlf Samuelsson green_led_on(void)232d3be7c4SJason Kridnervoid green_led_on(void) 24cb82a532SUlf Samuelsson { 2580733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 2699fa97e9SAndreas Bießmann writel(GREEN_LED, &pio->piob.codr); 27cb82a532SUlf Samuelsson } 28cb82a532SUlf Samuelsson yellow_led_on(void)292d3be7c4SJason Kridnervoid yellow_led_on(void) 30cb82a532SUlf Samuelsson { 3180733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 3299fa97e9SAndreas Bießmann writel(YELLOW_LED, &pio->piob.codr); 33cb82a532SUlf Samuelsson } 34cb82a532SUlf Samuelsson red_led_on(void)352d3be7c4SJason Kridnervoid red_led_on(void) 36cb82a532SUlf Samuelsson { 3780733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 3899fa97e9SAndreas Bießmann writel(RED_LED, &pio->piob.codr); 39cb82a532SUlf Samuelsson } 40cb82a532SUlf Samuelsson green_led_off(void)412d3be7c4SJason Kridnervoid green_led_off(void) 42cb82a532SUlf Samuelsson { 4380733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 4499fa97e9SAndreas Bießmann writel(GREEN_LED, &pio->piob.sodr); 45cb82a532SUlf Samuelsson } 46cb82a532SUlf Samuelsson yellow_led_off(void)472d3be7c4SJason Kridnervoid yellow_led_off(void) 48cb82a532SUlf Samuelsson { 4980733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 5099fa97e9SAndreas Bießmann writel(YELLOW_LED, &pio->piob.sodr); 51cb82a532SUlf Samuelsson } 52cb82a532SUlf Samuelsson red_led_off(void)532d3be7c4SJason Kridnervoid red_led_off(void) 54cb82a532SUlf Samuelsson { 5580733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 5699fa97e9SAndreas Bießmann writel(RED_LED, &pio->piob.sodr); 57cb82a532SUlf Samuelsson } 58cb82a532SUlf Samuelsson coloured_LED_init(void)59cb82a532SUlf Samuelssonvoid coloured_LED_init (void) 60cb82a532SUlf Samuelsson { 6180733994SJens Scharsig at91_pio_t *pio = (at91_pio_t *)ATMEL_BASE_PIO; 62cb82a532SUlf Samuelsson 6370341e2eSWenyou Yang at91_periph_clk_enable(ATMEL_ID_PIOB); 6499fa97e9SAndreas Bießmann 65cb82a532SUlf Samuelsson /* Disable peripherals on LEDs */ 6699fa97e9SAndreas Bießmann writel(GREEN_LED | YELLOW_LED | RED_LED, &pio->piob.per); 67cb82a532SUlf Samuelsson /* Enable pins as outputs */ 6899fa97e9SAndreas Bießmann writel(GREEN_LED | YELLOW_LED | RED_LED, &pio->piob.oer); 69cb82a532SUlf Samuelsson /* Turn all LEDs OFF */ 7099fa97e9SAndreas Bießmann writel(GREEN_LED | YELLOW_LED | RED_LED, &pio->piob.sodr); 71cb82a532SUlf Samuelsson } 72