cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

leds-rb532.c (1516B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * LEDs driver for the "User LED" on Routerboard532
      4 *
      5 * Copyright (C) 2009 Phil Sutter <n0-1@freewrt.org>
      6 *
      7 * Based on leds-cobalt-qube.c by Florian Fainelly and
      8 * rb-diag.c (my own standalone driver for both LED and
      9 * button of Routerboard532).
     10 */
     11
     12#include <linux/leds.h>
     13#include <linux/module.h>
     14#include <linux/platform_device.h>
     15
     16#include <asm/mach-rc32434/gpio.h>
     17#include <asm/mach-rc32434/rb.h>
     18
     19static void rb532_led_set(struct led_classdev *cdev,
     20			  enum led_brightness brightness)
     21{
     22	if (brightness)
     23		set_latch_u5(LO_ULED, 0);
     24	else
     25		set_latch_u5(0, LO_ULED);
     26}
     27
     28static enum led_brightness rb532_led_get(struct led_classdev *cdev)
     29{
     30	return (get_latch_u5() & LO_ULED) ? LED_FULL : LED_OFF;
     31}
     32
     33static struct led_classdev rb532_uled = {
     34	.name = "uled",
     35	.brightness_set = rb532_led_set,
     36	.brightness_get = rb532_led_get,
     37	.default_trigger = "nand-disk",
     38};
     39
     40static int rb532_led_probe(struct platform_device *pdev)
     41{
     42	return led_classdev_register(&pdev->dev, &rb532_uled);
     43}
     44
     45static int rb532_led_remove(struct platform_device *pdev)
     46{
     47	led_classdev_unregister(&rb532_uled);
     48	return 0;
     49}
     50
     51static struct platform_driver rb532_led_driver = {
     52	.probe = rb532_led_probe,
     53	.remove = rb532_led_remove,
     54	.driver = {
     55		.name = "rb532-led",
     56	},
     57};
     58
     59module_platform_driver(rb532_led_driver);
     60
     61MODULE_LICENSE("GPL");
     62MODULE_DESCRIPTION("User LED support for Routerboard532");
     63MODULE_AUTHOR("Phil Sutter <n0-1@freewrt.org>");
     64MODULE_ALIAS("platform:rb532-led");