drivers/pinctrl/visconti/pinctrl-tmpv7700.c

Source file repositories/reference/linux-study-clean/drivers/pinctrl/visconti/pinctrl-tmpv7700.c

File Facts

System
Linux kernel
Corpus path
drivers/pinctrl/visconti/pinctrl-tmpv7700.c
Extension
.c
Size
14397 bytes
Lines
356
Domain
Driver Families
Bucket
drivers/pinctrl
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2020 TOSHIBA CORPORATION
 * Copyright (c) 2020 Toshiba Electronic Devices & Storage Corporation
 * Copyright (c) 2020 Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
 */

#include <linux/init.h>
#include <linux/io.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pinctrl/pinctrl.h>
#include "pinctrl-common.h"

#define tmpv7700_MAGIC_NUM 0x4932f70e

/* register offset */
#define REG_KEY_CTRL	0x0000
#define REG_KEY_CMD	0x0004
#define REG_PINMUX1	0x3000
#define REG_PINMUX2	0x3004
#define REG_PINMUX3	0x3008
#define REG_PINMUX4	0x300c
#define REG_PINMUX5	0x3010
#define REG_IOSET	0x3014
#define REG_IO_VSEL	0x3018
#define REG_IO_DSEL1	0x301c
#define REG_IO_DSEL2	0x3020
#define REG_IO_DSEL3	0x3024
#define REG_IO_DSEL4	0x3028
#define REG_IO_DSEL5	0x302c
#define REG_IO_DSEL6	0x3030
#define REG_IO_DSEL7	0x3034
#define REG_IO_DSEL8	0x3038
#define REG_IO_PUDE1	0x303c
#define REG_IO_PUDE2	0x3040
#define REG_IO_PUDSEL1	0x3044
#define REG_IO_PUDSEL2	0x3048

/* PIN */
static const struct visconti_desc_pin pins_tmpv7700[] = {
	VISCONTI_PIN(PINCTRL_PIN(0, "gpio0"), REG_IO_DSEL4, 24,
		    REG_IO_PUDE1, REG_IO_PUDSEL1, 30),
	VISCONTI_PIN(PINCTRL_PIN(1, "gpio1"), REG_IO_DSEL4, 28,
		    REG_IO_PUDE1, REG_IO_PUDSEL1, 31),
	VISCONTI_PIN(PINCTRL_PIN(2, "gpio2"), REG_IO_DSEL5, 0,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 0),
	VISCONTI_PIN(PINCTRL_PIN(3, "gpio3"), REG_IO_DSEL5, 4,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 1),
	VISCONTI_PIN(PINCTRL_PIN(4, "gpio4"), REG_IO_DSEL5, 8,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 2),
	VISCONTI_PIN(PINCTRL_PIN(5, "gpio5"), REG_IO_DSEL5, 12,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 3),
	VISCONTI_PIN(PINCTRL_PIN(6, "gpio6"), REG_IO_DSEL5, 16,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 4),
	VISCONTI_PIN(PINCTRL_PIN(7, "gpio7"), REG_IO_DSEL5, 20,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 5),
	VISCONTI_PIN(PINCTRL_PIN(8, "gpio8"), REG_IO_DSEL5, 24,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 6),
	VISCONTI_PIN(PINCTRL_PIN(9, "gpio9"), REG_IO_DSEL5, 28,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 7),
	VISCONTI_PIN(PINCTRL_PIN(10, "gpio10"), REG_IO_DSEL6, 0,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 8),
	VISCONTI_PIN(PINCTRL_PIN(11, "gpio11"), REG_IO_DSEL6, 4,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 9),
	VISCONTI_PIN(PINCTRL_PIN(12, "gpio12"), REG_IO_DSEL6, 8,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 10),
	VISCONTI_PIN(PINCTRL_PIN(13, "gpio13"), REG_IO_DSEL6, 12,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 11),
	VISCONTI_PIN(PINCTRL_PIN(14, "gpio14"), REG_IO_DSEL6, 16,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 12),
	VISCONTI_PIN(PINCTRL_PIN(15, "gpio15"), REG_IO_DSEL6, 20,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 13),
	VISCONTI_PIN(PINCTRL_PIN(16, "gpio16"), REG_IO_DSEL6, 24,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 14),
	VISCONTI_PIN(PINCTRL_PIN(17, "gpio17"), REG_IO_DSEL6, 28,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 15),
	VISCONTI_PIN(PINCTRL_PIN(18, "gpio18"), REG_IO_DSEL7, 0,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 16),
	VISCONTI_PIN(PINCTRL_PIN(19, "gpio19"), REG_IO_DSEL7, 4,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 17),
	VISCONTI_PIN(PINCTRL_PIN(20, "gpio20"), REG_IO_DSEL7, 8,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 18),
	VISCONTI_PIN(PINCTRL_PIN(21, "gpio21"), REG_IO_DSEL7, 12,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 19),
	VISCONTI_PIN(PINCTRL_PIN(22, "gpio22"), REG_IO_DSEL7, 16,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 20),
	VISCONTI_PIN(PINCTRL_PIN(23, "gpio23"), REG_IO_DSEL7, 20,
		    REG_IO_PUDE2, REG_IO_PUDSEL2, 21),
	VISCONTI_PIN(PINCTRL_PIN(24, "gpio24"), REG_IO_DSEL7, 24,

Annotation

Implementation Notes