~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/mfd/ti_ssp.h

Version: ~ [ linux-5.1-rc5 ] ~ [ linux-5.0.7 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.34 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.111 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.168 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.178 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.138 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.65 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.39.4 ] ~ [ linux-2.6.38.8 ] ~ [ linux-2.6.37.6 ] ~ [ linux-2.6.36.4 ] ~ [ linux-2.6.35.14 ] ~ [ linux-2.6.34.15 ] ~ [ linux-2.6.33.20 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Sequencer Serial Port (SSP) driver for Texas Instruments' SoCs
  3  *
  4  * Copyright (C) 2010 Texas Instruments Inc
  5  *
  6  * This program is free software; you can redistribute it and/or modify
  7  * it under the terms of the GNU General Public License as published by
  8  * the Free Software Foundation; either version 2 of the License, or
  9  * (at your option) any later version.
 10  *
 11  * This program is distributed in the hope that it will be useful,
 12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 14  * GNU General Public License for more details.
 15  *
 16  * You should have received a copy of the GNU General Public License
 17  * along with this program; if not, write to the Free Software
 18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 19  */
 20 
 21 #ifndef __TI_SSP_H__
 22 #define __TI_SSP_H__
 23 
 24 struct ti_ssp_dev_data {
 25         const char      *dev_name;
 26         void            *pdata;
 27         size_t          pdata_size;
 28 };
 29 
 30 struct ti_ssp_data {
 31         unsigned long           out_clock;
 32         struct ti_ssp_dev_data  dev_data[2];
 33 };
 34 
 35 struct ti_ssp_spi_data {
 36         unsigned long   iosel;
 37         int             num_cs;
 38         void            (*select)(int cs);
 39 };
 40 
 41 /*
 42  * Sequencer port IO pin configuration bits.  These do not correlate 1-1 with
 43  * the hardware.  The iosel field in the port data combines iosel1 and iosel2,
 44  * and is therefore not a direct map to register space.  It is best to use the
 45  * macros below to construct iosel values.
 46  *
 47  * least significant 16 bits --> iosel1
 48  * most significant 16 bits  --> iosel2
 49  */
 50 
 51 #define SSP_IN                  0x0000
 52 #define SSP_DATA                0x0001
 53 #define SSP_CLOCK               0x0002
 54 #define SSP_CHIPSEL             0x0003
 55 #define SSP_OUT                 0x0004
 56 #define SSP_PIN_SEL(pin, v)     ((v) << ((pin) * 3))
 57 #define SSP_PIN_MASK(pin)       SSP_PIN_SEL(pin, 0x7)
 58 #define SSP_INPUT_SEL(pin)      ((pin) << 16)
 59 
 60 /* Sequencer port config bits */
 61 #define SSP_EARLY_DIN           BIT(8)
 62 #define SSP_DELAY_DOUT          BIT(9)
 63 
 64 /* Sequence map definitions */
 65 #define SSP_CLK_HIGH            BIT(0)
 66 #define SSP_CLK_LOW             0
 67 #define SSP_DATA_HIGH           BIT(1)
 68 #define SSP_DATA_LOW            0
 69 #define SSP_CS_HIGH             BIT(2)
 70 #define SSP_CS_LOW              0
 71 #define SSP_OUT_MODE            BIT(3)
 72 #define SSP_IN_MODE             0
 73 #define SSP_DATA_REG            BIT(4)
 74 #define SSP_ADDR_REG            0
 75 
 76 #define SSP_OPCODE_DIRECT       ((0x0) << 5)
 77 #define SSP_OPCODE_TOGGLE       ((0x1) << 5)
 78 #define SSP_OPCODE_SHIFT        ((0x2) << 5)
 79 #define SSP_OPCODE_BRANCH0      ((0x4) << 5)
 80 #define SSP_OPCODE_BRANCH1      ((0x5) << 5)
 81 #define SSP_OPCODE_BRANCH       ((0x6) << 5)
 82 #define SSP_OPCODE_STOP         ((0x7) << 5)
 83 #define SSP_BRANCH(addr)        ((addr) << 8)
 84 #define SSP_COUNT(cycles)       ((cycles) << 8)
 85 
 86 int ti_ssp_raw_read(struct device *dev);
 87 int ti_ssp_raw_write(struct device *dev, u32 val);
 88 int ti_ssp_load(struct device *dev, int offs, u32* prog, int len);
 89 int ti_ssp_run(struct device *dev, u32 pc, u32 input, u32 *output);
 90 int ti_ssp_set_mode(struct device *dev, int mode);
 91 int ti_ssp_set_iosel(struct device *dev, u32 iosel);
 92 
 93 #endif /* __TI_SSP_H__ */
 94 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp