Blame view

include/sound/sh_fsi.h 1.75 KB
a4d7d550a   Kuninori Morimoto   ASoC: Add SuperH ...
1
2
3
4
5
6
7
8
9
10
11
12
13
  #ifndef __SOUND_FSI_H
  #define __SOUND_FSI_H
  
  /*
   * Fifo-attached Serial Interface (FSI) support for SH7724
   *
   * Copyright (C) 2009 Renesas Solutions Corp.
   * Kuninori Morimoto <morimoto.kuninori@renesas.com>
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License version 2 as
   * published by the Free Software Foundation.
   */
3c2ef841c   Kuninori Morimoto   ASoC: fsi: Add sp...
14
15
  #define FSI_PORT_A	0
  #define FSI_PORT_B	1
a4d7d550a   Kuninori Morimoto   ASoC: Add SuperH ...
16
17
  #include <linux/clk.h>
  #include <sound/soc.h>
f17c13ca5   Kuninori Morimoto   ASoC: sh: fsi: mo...
18
19
20
21
22
23
24
25
  /*
   * flags format
   *
   * 0x000000BA
   *
   * A:  inversion
   * B:  format mode
   */
a4d7d550a   Kuninori Morimoto   ASoC: Add SuperH ...
26

f17c13ca5   Kuninori Morimoto   ASoC: sh: fsi: mo...
27
28
29
30
31
32
33
34
35
36
37
  /* A: clock inversion */
  #define SH_FSI_INVERSION_MASK	0x0000000F
  #define SH_FSI_LRM_INV		(1 << 0)
  #define SH_FSI_BRM_INV		(1 << 1)
  #define SH_FSI_LRS_INV		(1 << 2)
  #define SH_FSI_BRS_INV		(1 << 3)
  
  /* B: format mode */
  #define SH_FSI_FMT_MASK		0x000000F0
  #define SH_FSI_FMT_DAI		(0 << 4)
  #define SH_FSI_FMT_SPDIF	(1 << 4)
a4d7d550a   Kuninori Morimoto   ASoC: Add SuperH ...
38

ccad7b44c   Kuninori Morimoto   ASoC: fsi: Fixup ...
39
40
41
42
43
44
45
46
  
  /*
   * set_rate return value
   *
   * see ACKMD/BPFMD on
   *     ACK_MD (FSI2)
   *     CKG1   (FSI)
   *
d4bc99b97   Kuninori Morimoto   ARM: mach-shmobil...
47
48
49
   * err		: return value <  0
   * no change	: return value == 0
   * change xMD	: return value >  0
ccad7b44c   Kuninori Morimoto   ASoC: fsi: Fixup ...
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
   *
   * 0x-00000AB
   *
   * A:  ACKMD value
   * B:  BPFMD value
   */
  
  #define SH_FSI_ACKMD_MASK	(0xF << 0)
  #define SH_FSI_ACKMD_512	(1 << 0)
  #define SH_FSI_ACKMD_256	(2 << 0)
  #define SH_FSI_ACKMD_128	(3 << 0)
  #define SH_FSI_ACKMD_64		(4 << 0)
  #define SH_FSI_ACKMD_32		(5 << 0)
  
  #define SH_FSI_BPFMD_MASK	(0xF << 4)
  #define SH_FSI_BPFMD_512	(1 << 4)
  #define SH_FSI_BPFMD_256	(2 << 4)
  #define SH_FSI_BPFMD_128	(3 << 4)
  #define SH_FSI_BPFMD_64		(4 << 4)
  #define SH_FSI_BPFMD_32		(5 << 4)
  #define SH_FSI_BPFMD_16		(6 << 4)
a4d7d550a   Kuninori Morimoto   ASoC: Add SuperH ...
71
72
73
  struct sh_fsi_platform_info {
  	unsigned long porta_flags;
  	unsigned long portb_flags;
d4bc99b97   Kuninori Morimoto   ARM: mach-shmobil...
74
  	int (*set_rate)(struct device *dev, int is_porta, int rate, int enable);
a4d7d550a   Kuninori Morimoto   ASoC: Add SuperH ...
75
  };
a4d7d550a   Kuninori Morimoto   ASoC: Add SuperH ...
76
  #endif /* __SOUND_FSI_H */