18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2011-2016 Zhang, Keguang <keguang.zhang@gmail.com> 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <linux/leds.h> 78c2ecf20Sopenharmony_ci#include <linux/mtd/partitions.h> 88c2ecf20Sopenharmony_ci#include <linux/sizes.h> 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <loongson1.h> 118c2ecf20Sopenharmony_ci#include <dma.h> 128c2ecf20Sopenharmony_ci#include <nand.h> 138c2ecf20Sopenharmony_ci#include <platform.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cistatic const struct gpio_led ls1x_gpio_leds[] __initconst = { 168c2ecf20Sopenharmony_ci { 178c2ecf20Sopenharmony_ci .name = "LED9", 188c2ecf20Sopenharmony_ci .default_trigger = "heartbeat", 198c2ecf20Sopenharmony_ci .gpio = 38, 208c2ecf20Sopenharmony_ci .active_low = 1, 218c2ecf20Sopenharmony_ci .default_state = LEDS_GPIO_DEFSTATE_OFF, 228c2ecf20Sopenharmony_ci }, { 238c2ecf20Sopenharmony_ci .name = "LED6", 248c2ecf20Sopenharmony_ci .default_trigger = "nand-disk", 258c2ecf20Sopenharmony_ci .gpio = 39, 268c2ecf20Sopenharmony_ci .active_low = 1, 278c2ecf20Sopenharmony_ci .default_state = LEDS_GPIO_DEFSTATE_OFF, 288c2ecf20Sopenharmony_ci }, 298c2ecf20Sopenharmony_ci}; 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_cistatic const struct gpio_led_platform_data ls1x_led_pdata __initconst = { 328c2ecf20Sopenharmony_ci .num_leds = ARRAY_SIZE(ls1x_gpio_leds), 338c2ecf20Sopenharmony_ci .leds = ls1x_gpio_leds, 348c2ecf20Sopenharmony_ci}; 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_cistatic struct platform_device *ls1b_platform_devices[] __initdata = { 378c2ecf20Sopenharmony_ci &ls1x_uart_pdev, 388c2ecf20Sopenharmony_ci &ls1x_cpufreq_pdev, 398c2ecf20Sopenharmony_ci &ls1x_eth0_pdev, 408c2ecf20Sopenharmony_ci &ls1x_eth1_pdev, 418c2ecf20Sopenharmony_ci &ls1x_ehci_pdev, 428c2ecf20Sopenharmony_ci &ls1x_gpio0_pdev, 438c2ecf20Sopenharmony_ci &ls1x_gpio1_pdev, 448c2ecf20Sopenharmony_ci &ls1x_rtc_pdev, 458c2ecf20Sopenharmony_ci &ls1x_wdt_pdev, 468c2ecf20Sopenharmony_ci}; 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_cistatic int __init ls1b_platform_init(void) 498c2ecf20Sopenharmony_ci{ 508c2ecf20Sopenharmony_ci ls1x_serial_set_uartclk(&ls1x_uart_pdev); 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci gpio_led_register_device(-1, &ls1x_led_pdata); 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci return platform_add_devices(ls1b_platform_devices, 558c2ecf20Sopenharmony_ci ARRAY_SIZE(ls1b_platform_devices)); 568c2ecf20Sopenharmony_ci} 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciarch_initcall(ls1b_platform_init); 59