linux/drivers/input/keyboard/nomadik-ske-keypad.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) ST-Ericsson SA 2010
 *
 * Author: Naveen Kumar G <[email protected]> for ST-Ericsson
 * Author: Sundar Iyer <[email protected]> for ST-Ericsson
 *
 * Keypad controller driver for the SKE (Scroll Key Encoder) module used in
 * the Nomadik 8815 and Ux500 platforms.
 */

#include <linux/platform_device.h>
#include <linux/interrupt.h>
#include <linux/spinlock.h>
#include <linux/io.h>
#include <linux/delay.h>
#include <linux/input.h>
#include <linux/slab.h>
#include <linux/clk.h>
#include <linux/module.h>

#include <linux/platform_data/keypad-nomadik-ske.h>

/* SKE_CR bits */
#define SKE_KPMLT
#define SKE_KPCN
#define SKE_KPASEN
#define SKE_KPASON

/* SKE_IMSC bits */
#define SKE_KPIMA

/* SKE_ICR bits */
#define SKE_KPICS
#define SKE_KPICA

/* SKE_RIS bits */
#define SKE_KPRISA

#define SKE_KEYPAD_ROW_SHIFT
#define SKE_KPD_NUM_ROWS
#define SKE_KPD_NUM_COLS

/* keypad auto scan registers */
#define SKE_ASR0
#define SKE_ASR1
#define SKE_ASR2
#define SKE_ASR3

#define SKE_NUM_ASRX_REGISTERS
#define KEY_PRESSED_DELAY

/**
 * struct ske_keypad  - data structure used by keypad driver
 * @irq:	irq no
 * @reg_base:	ske registers base address
 * @input:	pointer to input device object
 * @board:	keypad platform device
 * @keymap:	matrix scan code table for keycodes
 * @clk:	clock structure pointer
 * @pclk:	clock structure pointer
 * @ske_keypad_lock: spinlock protecting the keypad read/writes
 */
struct ske_keypad {};

static void ske_keypad_set_bits(struct ske_keypad *keypad, u16 addr,
		u8 mask, u8 data)
{}

/*
 * ske_keypad_chip_init: init keypad controller configuration
 *
 * Enable Multi key press detection, auto scan mode
 */
static int __init ske_keypad_chip_init(struct ske_keypad *keypad)
{}

static void ske_keypad_report(struct ske_keypad *keypad, u8 status, int col)
{}

static void ske_keypad_read_data(struct ske_keypad *keypad)
{}

static irqreturn_t ske_keypad_irq(int irq, void *dev_id)
{}

static void ske_keypad_board_exit(void *data)
{}

static int __init ske_keypad_probe(struct platform_device *pdev)
{}

static int ske_keypad_suspend(struct device *dev)
{}

static int ske_keypad_resume(struct device *dev)
{}

static DEFINE_SIMPLE_DEV_PM_OPS(ske_keypad_dev_pm_ops,
				ske_keypad_suspend, ske_keypad_resume);

static struct platform_driver ske_keypad_driver =;

module_platform_driver_probe();

MODULE_LICENSE();
MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_ALIAS();