linux/arch/m68k/include/asm/mcfqspi.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Definitions for Freescale Coldfire QSPI module
   4 *
   5 * Copyright 2010 Steven King <sfking@fdwdc.com>
   6*/
   7
   8#ifndef mcfqspi_h
   9#define mcfqspi_h
  10
  11/**
  12 * struct mcfqspi_cs_control - chip select control for the coldfire qspi driver
  13 * @setup: setup the control; allocate gpio's, etc. May be NULL.
  14 * @teardown: finish with the control; free gpio's, etc. May be NULL.
  15 * @select: output the signals to select the device.  Can not be NULL.
  16 * @deselect: output the signals to deselect the device. Can not be NULL.
  17 *
  18 * The QSPI module has 4 hardware chip selects.  We don't use them.  Instead
  19 * platforms are required to supply a mcfqspi_cs_control as a part of the
  20 * platform data for each QSPI master controller.  Only the select and
  21 * deselect functions are required.
  22*/
  23struct mcfqspi_cs_control {
  24        int     (*setup)(struct mcfqspi_cs_control *);
  25        void    (*teardown)(struct mcfqspi_cs_control *);
  26        void    (*select)(struct mcfqspi_cs_control *, u8, bool);
  27        void    (*deselect)(struct mcfqspi_cs_control *, u8, bool);
  28};
  29
  30/**
  31 * struct mcfqspi_platform_data - platform data for the coldfire qspi driver
  32 * @bus_num: board specific identifier for this qspi driver.
  33 * @num_chipselects: number of chip selects supported by this qspi driver.
  34 * @cs_control: platform dependent chip select control.
  35*/
  36struct mcfqspi_platform_data {
  37        s16     bus_num;
  38        u16     num_chipselect;
  39        struct mcfqspi_cs_control *cs_control;
  40};
  41
  42#endif /* mcfqspi_h */
  43