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
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef __HSI_CHAR_H
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define __HSI_CHAR_H
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSI_CHAR_MAGIC		'k'
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_IOW(num, dtype)	_IOW(HSI_CHAR_MAGIC, num, dtype)
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_IOR(num, dtype)	_IOR(HSI_CHAR_MAGIC, num, dtype)
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_IOWR(num, dtype)	_IOWR(HSI_CHAR_MAGIC, num, dtype)
3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_IO(num)		_IO(HSI_CHAR_MAGIC, num)
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_RESET		HSC_IO(16)
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_SET_PM		HSC_IO(17)
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_SEND_BREAK		HSC_IO(18)
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_SET_RX		HSC_IOW(19, struct hsc_rx_config)
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_GET_RX		HSC_IOW(20, struct hsc_rx_config)
3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_SET_TX		HSC_IOW(21, struct hsc_tx_config)
3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_GET_TX		HSC_IOW(22, struct hsc_tx_config)
4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_PM_DISABLE		0
4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_PM_ENABLE		1
4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_MODE_STREAM		1
4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_MODE_FRAME		2
4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_FLOW_SYNC		0
4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_ARB_RR		0
4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HSC_ARB_PRIO		1
4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
5030692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct hsc_rx_config {
5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	uint32_t mode;
5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	uint32_t flow;
5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	uint32_t channels;
5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
5630692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct hsc_tx_config {
5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	uint32_t mode;
5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	uint32_t channels;
5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	uint32_t speed;
6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	uint32_t arb_mode;
6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* __HSI_CHAR_H */
64