blob: cc81977600153e9214dbeea2bc7bfbf2e22c50e7 [file] [log] [blame]
Thomas Gleixner1a59d1b82019-05-27 08:55:05 +02001/* SPDX-License-Identifier: GPL-2.0-or-later */
Russell Kinga09e64f2008-08-05 16:14:15 +01002/*
Russell Kinga09e64f2008-08-05 16:14:15 +01003 * Defines for Multi-Channel Buffered Serial Port
4 *
5 * Copyright (C) 2002 RidgeRun, Inc.
6 * Author: Steve Johnson
Russell Kinga09e64f2008-08-05 16:14:15 +01007 */
Sachin Kamat8cb7a362013-12-30 10:37:48 +05308#ifndef __ASOC_TI_MCBSP_H
9#define __ASOC_TI_MCBSP_H
Russell Kinga09e64f2008-08-05 16:14:15 +010010
Russell Kinga09e64f2008-08-05 16:14:15 +010011#include <linux/spinlock.h>
Jarkko Nikula51672552011-09-26 10:45:46 +030012#include <linux/clk.h>
Russell Kinga09e64f2008-08-05 16:14:15 +010013
Russell Kinga09e64f2008-08-05 16:14:15 +010014/* Platform specific configuration */
15struct omap_mcbsp_ops {
16 void (*request)(unsigned int);
17 void (*free)(unsigned int);
Russell Kinga09e64f2008-08-05 16:14:15 +010018};
19
20struct omap_mcbsp_platform_data {
Russell Kinga09e64f2008-08-05 16:14:15 +010021 struct omap_mcbsp_ops *ops;
Kishon Vijay Abraham I64bcbd32011-02-24 15:16:52 +053022 u16 buffer_size;
Jarkko Nikulacdc715142011-09-26 10:45:39 +030023 u8 reg_size;
24 u8 reg_step;
Jarkko Nikula1a645882011-09-26 10:45:40 +030025
26 /* McBSP platform and instance specific features */
27 bool has_wakeup; /* Wakeup capability */
Jarkko Nikula88408232011-09-26 10:45:41 +030028 bool has_ccr; /* Transceiver has configuration control registers */
Peter Ujfalusi53ae95f2016-05-30 11:23:46 +030029 int (*force_ick_on)(struct clk *clk, bool force_on);
Russell Kinga09e64f2008-08-05 16:14:15 +010030};
31
Peter Ujfalusic26c84c2016-05-30 11:23:47 +030032void omap3_mcbsp_init_pdata_callback(struct omap_mcbsp_platform_data *pdata);
33
Russell Kinga09e64f2008-08-05 16:14:15 +010034#endif