130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/*
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Part of the HSI character device driver.
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Copyright (C) 2010 Nokia Corporation. All rights reserved.
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Contact: Andras Domokos <andras.domokos at nokia.com>
730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * This program is free software; you can redistribute it and/or
930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * modify it under the terms of the GNU General Public License
1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * version 2 as published by the Free Software Foundation.
1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * This program is distributed in the hope that it will be useful, but
1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * WITHOUT ANY WARRANTY; without even the implied warranty of
1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * General Public License for more details.
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * You should have received a copy of the GNU General Public License
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * along with this program; if not, write to the Free Software
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 02110-1301 USA
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef __HSI_CHAR_H
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define __HSI_CHAR_H
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
263318540b58f2d22ddaf211f3c8887785372e4e28Christopher Ferris#include <linux/types.h>
273318540b58f2d22ddaf211f3c8887785372e4e28Christopher Ferris
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSI_CHAR_MAGIC		'k'
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_IOW(num, dtype)	_IOW(HSI_CHAR_MAGIC, num, dtype)
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_IOR(num, dtype)	_IOR(HSI_CHAR_MAGIC, num, dtype)
3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_IOWR(num, dtype)	_IOWR(HSI_CHAR_MAGIC, num, dtype)
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_IO(num)		_IO(HSI_CHAR_MAGIC, num)
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_RESET		HSC_IO(16)
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_SET_PM		HSC_IO(17)
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_SEND_BREAK		HSC_IO(18)
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_SET_RX		HSC_IOW(19, struct hsc_rx_config)
3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_GET_RX		HSC_IOW(20, struct hsc_rx_config)
3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_SET_TX		HSC_IOW(21, struct hsc_tx_config)
4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_GET_TX		HSC_IOW(22, struct hsc_tx_config)
4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_PM_DISABLE		0
4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_PM_ENABLE		1
4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_MODE_STREAM		1
4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_MODE_FRAME		2
4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_FLOW_SYNC		0
4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_ARB_RR		0
4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_ARB_PRIO		1
5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
5130692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct hsc_rx_config {
523318540b58f2d22ddaf211f3c8887785372e4e28Christopher Ferris	__u32 mode;
533318540b58f2d22ddaf211f3c8887785372e4e28Christopher Ferris	__u32 flow;
543318540b58f2d22ddaf211f3c8887785372e4e28Christopher Ferris	__u32 channels;
5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
5730692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct hsc_tx_config {
583318540b58f2d22ddaf211f3c8887785372e4e28Christopher Ferris	__u32 mode;
593318540b58f2d22ddaf211f3c8887785372e4e28Christopher Ferris	__u32 channels;
603318540b58f2d22ddaf211f3c8887785372e4e28Christopher Ferris	__u32 speed;
613318540b58f2d22ddaf211f3c8887785372e4e28Christopher Ferris	__u32 arb_mode;
6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* __HSI_CHAR_H */
65