linux/drivers/leds/blink/leds-bcm63138.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2021 Rafał Miłecki <[email protected]>
 */
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/pinctrl/consumer.h>
#include <linux/platform_device.h>
#include <linux/spinlock.h>

#define BCM63138_MAX_LEDS
#define BCM63138_MAX_BRIGHTNESS

#define BCM63138_LED_BITS
#define BCM63138_LED_MASK
#define BCM63138_LEDS_PER_REG

#define BCM63138_GLB_CTRL
#define BCM63138_GLB_CTRL_SERIAL_LED_DATA_PPOL
#define BCM63138_GLB_CTRL_SERIAL_LED_EN_POL
#define BCM63138_MASK
#define BCM63138_HW_LED_EN
#define BCM63138_SERIAL_LED_SHIFT_SEL
#define BCM63138_FLASH_RATE_CTRL1
#define BCM63138_FLASH_RATE_CTRL2
#define BCM63138_FLASH_RATE_CTRL3
#define BCM63138_FLASH_RATE_CTRL4
#define BCM63138_BRIGHT_CTRL1
#define BCM63138_BRIGHT_CTRL2
#define BCM63138_BRIGHT_CTRL3
#define BCM63138_BRIGHT_CTRL4
#define BCM63138_POWER_LED_CFG
#define BCM63138_HW_POLARITY
#define BCM63138_SW_DATA
#define BCM63138_SW_POLARITY
#define BCM63138_PARALLEL_LED_POLARITY
#define BCM63138_SERIAL_LED_POLARITY
#define BCM63138_HW_LED_STATUS
#define BCM63138_FLASH_CTRL_STATUS
#define BCM63138_FLASH_BRT_CTRL
#define BCM63138_FLASH_P_LED_OUT_STATUS
#define BCM63138_FLASH_S_LED_OUT_STATUS

struct bcm63138_leds {};

struct bcm63138_led {};

/*
 * I/O access
 */

static void bcm63138_leds_write(struct bcm63138_leds *leds, unsigned int reg,
				u32 data)
{}

static unsigned long bcm63138_leds_read(struct bcm63138_leds *leds,
					unsigned int reg)
{}

static void bcm63138_leds_update_bits(struct bcm63138_leds *leds,
				      unsigned int reg, u32 mask, u32 val)
{}

/*
 * Helpers
 */

static void bcm63138_leds_set_flash_rate(struct bcm63138_leds *leds,
					 struct bcm63138_led *led,
					 u8 value)
{}

static void bcm63138_leds_set_bright(struct bcm63138_leds *leds,
				     struct bcm63138_led *led,
				     u8 value)
{}

static void bcm63138_leds_enable_led(struct bcm63138_leds *leds,
				     struct bcm63138_led *led,
				     enum led_brightness value)
{}

/*
 * API callbacks
 */

static void bcm63138_leds_brightness_set(struct led_classdev *led_cdev,
					 enum led_brightness value)
{}

static int bcm63138_leds_blink_set(struct led_classdev *led_cdev,
				   unsigned long *delay_on,
				   unsigned long *delay_off)
{}

/*
 * LED driver
 */

static void bcm63138_leds_create_led(struct bcm63138_leds *leds,
				     struct device_node *np)
{}

static int bcm63138_leds_probe(struct platform_device *pdev)
{}

static const struct of_device_id bcm63138_leds_of_match_table[] =;

static struct platform_driver bcm63138_leds_driver =;

module_platform_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_DEVICE_TABLE(of, bcm63138_leds_of_match_table);