Linux Audio

Check our new training course

Loading...
/*
 * Copyright (c) 2020 Linaro Limited
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef PINCTRL_ATMEL_SAM_H_
#define PINCTRL_ATMEL_SAM_H_

#define PERIPH_a	0
#define PERIPH_b	1
#define PERIPH_c	2
#define PERIPH_d	3
#define PERIPH_e	4
#define PERIPH_f	5
#define PERIPH_g	6
#define PERIPH_h	7

/* Create a pincfg device tree node:
 *
 * The node name and nodelabel will be of the form:
 *
 * NODE = p<port><pin><periph>_<inst>_<signal>
 *
 * NODE: NODE {
 *     atmel,pins = < &pio<port> <pin> PERIPH_<perip> >;
 * }
 *
 * So for example:
 *
 * DT_ATMEL_PIN(uart, urxd, a, 8, a);
 *
 * Will become:
 *
 * pa8a_uart_urxd: pa8a_uart_urxd {
 *    atmel,pins = <&pioa 8 PERIPH_a>;
 * }
 *
 */
#define DT_ATMEL_PIN(inst, signal, port, pin, periph) \
	p##port##pin##periph##_##inst##_##signal: \
	p##port##pin##periph##_##inst##_##signal { \
	atmel,pins = < &pio##port pin PERIPH_##periph >; }

#define DT_ATMEL_GPIO(inst, signal, port, pin, periph) \
	p##port##pin##periph##_##inst##_##signal: \
	p##port##pin##periph##_##inst##_##signal { \
	atmel,pins = < &gpio##port pin PERIPH_##periph >; }

#endif /* PINCTRL_ATMEL_SAM_H_ */