blob: 99d8dd029906a401407cddfa3ed870ad7de68d87 [file] [log] [blame]
Kuninori Morimoto1536a962013-07-21 21:35:52 -07001/*
2 * Renesas R-Car SRU/SCU/SSIU/SSI support
3 *
4 * Copyright (C) 2013 Renesas Solutions Corp.
5 * Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#ifndef RCAR_SND_H
13#define RCAR_SND_H
14
15#include <linux/sh_clk.h>
16
Kuninori Morimoto07539c12013-07-21 21:36:35 -070017#define RSND_GEN1_SRU 0
Kuninori Morimotodfc94032013-07-21 21:36:46 -070018#define RSND_GEN1_ADG 1
Kuninori Morimotoae5c3222013-07-21 21:36:57 -070019#define RSND_GEN1_SSI 2
Kuninori Morimoto1536a962013-07-21 21:35:52 -070020
Kuninori Morimoto07539c12013-07-21 21:36:35 -070021#define RSND_GEN2_SRU 0
Kuninori Morimotodfc94032013-07-21 21:36:46 -070022#define RSND_GEN2_ADG 1
Kuninori Morimotoae5c3222013-07-21 21:36:57 -070023#define RSND_GEN2_SSIU 2
24#define RSND_GEN2_SSI 3
Kuninori Morimoto07539c12013-07-21 21:36:35 -070025
Kuninori Morimotoae5c3222013-07-21 21:36:57 -070026#define RSND_BASE_MAX 4
27
28/*
29 * flags
30 *
31 * 0xA0000000
32 *
33 * A : clock sharing settings
34 */
35#define RSND_SSI_CLK_PIN_SHARE (1 << 31)
36#define RSND_SSI_CLK_FROM_ADG (1 << 30) /* clock parent is master */
37#define RSND_SSI_SYNC (1 << 29) /* SSI34_sync etc */
38
39struct rsnd_ssi_platform_info {
40 int pio_irq;
41 u32 flags;
42};
Kuninori Morimoto07539c12013-07-21 21:36:35 -070043
44struct rsnd_scu_platform_info {
45 u32 flags;
46};
Kuninori Morimoto1536a962013-07-21 21:35:52 -070047
48struct rsnd_dai_platform_info {
49 int ssi_id_playback;
50 int ssi_id_capture;
51};
52
Kuninori Morimoto33377442013-07-21 21:36:21 -070053/*
54 * flags
55 *
56 * 0x0000000A
57 *
58 * A : generation
59 */
60#define RSND_GEN1 (1 << 0) /* fixme */
61#define RSND_GEN2 (2 << 0) /* fixme */
62
Kuninori Morimoto1536a962013-07-21 21:35:52 -070063struct rcar_snd_info {
64 u32 flags;
Kuninori Morimotoae5c3222013-07-21 21:36:57 -070065 struct rsnd_ssi_platform_info *ssi_info;
66 int ssi_info_nr;
Kuninori Morimoto07539c12013-07-21 21:36:35 -070067 struct rsnd_scu_platform_info *scu_info;
68 int scu_info_nr;
Kuninori Morimoto1536a962013-07-21 21:35:52 -070069 struct rsnd_dai_platform_info *dai_info;
70 int dai_info_nr;
71 int (*start)(int id);
72 int (*stop)(int id);
73};
74
75#endif