boards: riscv: longan_nano: Add LED and button configuration
Add configuration to support onboard LED and button. - LED_R: PC13 (active low/output) - LED_G: PA1 (active low/output) - LED_B: PA2 (active low/output) - BOOT0: PA8 (active high/input) And enable timer1 to control LED_G and LED_B with PWM. Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
This commit is contained in:
parent
0cae1d8928
commit
c72b75fc45
4 changed files with 106 additions and 40 deletions
98
boards/riscv/longan_nano/longan_nano-common.dtsi
Normal file
98
boards/riscv/longan_nano/longan_nano-common.dtsi
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2021 Tokita, Hiroshi <tokita.hiroshi@gmail.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
chosen {
|
||||||
|
zephyr,console = &usart0;
|
||||||
|
zephyr,shell-uart = &usart0;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
led_red: led_red {
|
||||||
|
gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
|
||||||
|
label = "LED_R";
|
||||||
|
};
|
||||||
|
led_green: led_green {
|
||||||
|
gpios = <&gpioa 1 GPIO_ACTIVE_LOW>;
|
||||||
|
label = "LED_G";
|
||||||
|
};
|
||||||
|
led_blue: led_blue {
|
||||||
|
gpios = <&gpioa 2 GPIO_ACTIVE_LOW>;
|
||||||
|
label = "LED_B";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
button_boot0: button_boot0 {
|
||||||
|
label = "BUTTON_BOOT0";
|
||||||
|
gpios = <&gpioa 8 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pwmleds {
|
||||||
|
compatible = "pwm-leds";
|
||||||
|
|
||||||
|
/* NOTE: bridge TIMER1_CH1 and LED_GREEN (PA1) */
|
||||||
|
pwm_led_green: pwm_led_green {
|
||||||
|
pwms = <&pwm1 1 PWM_POLARITY_NORMAL>;
|
||||||
|
label = "PWM_LED_G";
|
||||||
|
};
|
||||||
|
/* NOTE: bridge TIMER1_CH2 and LED_BLUE (PA2) */
|
||||||
|
pwm_led_blue: pwm_led_blue {
|
||||||
|
pwms = <&pwm1 2 PWM_POLARITY_NORMAL>;
|
||||||
|
label = "PWM_LED_B";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
led0 = &led_red;
|
||||||
|
led1 = &led_green;
|
||||||
|
led2 = &led_blue;
|
||||||
|
pwm-led0 = &pwm_led_green;
|
||||||
|
pwm-led1 = &pwm_led_blue;
|
||||||
|
sw0 = &button_boot0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpioa {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiob {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpioc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usart0 {
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
pinctrl-0 = <&usart0_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
|
||||||
|
&timer1 {
|
||||||
|
status = "okay";
|
||||||
|
prescaler = <4096>;
|
||||||
|
|
||||||
|
pwm1: pwm {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&pwm1_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&dac {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&dac_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
|
@ -12,6 +12,12 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pwm1_default: pwm1_default {
|
||||||
|
group1 {
|
||||||
|
pinmux = <TIMER1_CH1_PA1_OUT_NORMP>, <TIMER1_CH2_PA2_OUT_NORMP>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
dac_default: dac_default {
|
dac_default: dac_default {
|
||||||
group1 {
|
group1 {
|
||||||
pinmux = <DAC_OUT0_PA4>;
|
pinmux = <DAC_OUT0_PA4>;
|
||||||
|
|
|
@ -7,28 +7,9 @@
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include <gigadevice/gd32vf103Xb.dtsi>
|
#include <gigadevice/gd32vf103Xb.dtsi>
|
||||||
#include "longan_nano-pinctrl.dtsi"
|
#include "longan_nano-pinctrl.dtsi"
|
||||||
|
#include "longan_nano-common.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Sipeed Longan Nano";
|
model = "Sipeed Longan Nano";
|
||||||
compatible = "sipeed,longan_nano";
|
compatible = "sipeed,longan_nano";
|
||||||
|
|
||||||
chosen {
|
|
||||||
zephyr,console = &usart0;
|
|
||||||
zephyr,shell-uart = &usart0;
|
|
||||||
zephyr,sram = &sram0;
|
|
||||||
zephyr,flash = &flash0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&usart0 {
|
|
||||||
status = "okay";
|
|
||||||
current-speed = <115200>;
|
|
||||||
pinctrl-0 = <&usart0_default>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
};
|
|
||||||
|
|
||||||
&dac {
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-0 = <&dac_default>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,28 +7,9 @@
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include <gigadevice/gd32vf103X8.dtsi>
|
#include <gigadevice/gd32vf103X8.dtsi>
|
||||||
#include "longan_nano-pinctrl.dtsi"
|
#include "longan_nano-pinctrl.dtsi"
|
||||||
|
#include "longan_nano-common.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Sipeed Longan Nano Lite";
|
model = "Sipeed Longan Nano Lite";
|
||||||
compatible = "sipeed,longan_nano_lite";
|
compatible = "sipeed,longan_nano_lite";
|
||||||
|
|
||||||
chosen {
|
|
||||||
zephyr,console = &usart0;
|
|
||||||
zephyr,shell-uart = &usart0;
|
|
||||||
zephyr,sram = &sram0;
|
|
||||||
zephyr,flash = &flash0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&usart0 {
|
|
||||||
status = "okay";
|
|
||||||
current-speed = <115200>;
|
|
||||||
pinctrl-0 = <&usart0_default>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
};
|
|
||||||
|
|
||||||
&dac {
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-0 = <&dac_default>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue