tp3780i.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. *
  3. * tp3780i.h -- declarations for tp3780i.c
  4. *
  5. *
  6. * Written By: Mike Sullivan IBM Corporation
  7. *
  8. * Copyright (C) 1999 IBM Corporation
  9. *
  10. * This program is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License as published by
  12. * the Free Software Foundation; either version 2 of the License, or
  13. * (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU General Public License for more details.
  19. *
  20. * NO WARRANTY
  21. * THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
  22. * CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
  23. * LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
  24. * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
  25. * solely responsible for determining the appropriateness of using and
  26. * distributing the Program and assumes all risks associated with its
  27. * exercise of rights under this Agreement, including but not limited to
  28. * the risks and costs of program errors, damage to or loss of data,
  29. * programs or equipment, and unavailability or interruption of operations.
  30. *
  31. * DISCLAIMER OF LIABILITY
  32. * NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
  33. * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  34. * DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND
  35. * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
  36. * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
  37. * USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
  38. * HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES
  39. *
  40. * You should have received a copy of the GNU General Public License
  41. * along with this program; if not, write to the Free Software
  42. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  43. *
  44. *
  45. * 10/23/2000 - Alpha Release
  46. * First release to the public
  47. */
  48. #ifndef _LINUX_TP3780I_H
  49. #define _LINUX_TP3780I_H
  50. #include <asm/io.h>
  51. #include "mwavepub.h"
  52. /* DSP abilities constants for 3780i based Thinkpads */
  53. #define TP_ABILITIES_INTS_PER_SEC 39160800
  54. #define TP_ABILITIES_DATA_SIZE 32768
  55. #define TP_ABILITIES_INST_SIZE 32768
  56. #define TP_ABILITIES_MWAVEOS_NAME "mwaveos0700.dsp"
  57. #define TP_ABILITIES_BIOSTASK_NAME "mwbio701.dsp"
  58. /* DSP configuration values for 3780i based Thinkpads */
  59. #define TP_CFG_NumTransfers 3 /* 16 transfers */
  60. #define TP_CFG_RerequestTimer 1 /* 2 usec */
  61. #define TP_CFG_MEMCS16 0 /* Disabled, 16-bit memory assumed */
  62. #define TP_CFG_IsaMemCmdWidth 3 /* 295 nsec (16-bit) */
  63. #define TP_CFG_GateIOCHRDY 0 /* No IOCHRDY gating */
  64. #define TP_CFG_EnablePwrMgmt 1 /* Enable low poser suspend/resume */
  65. #define TP_CFG_HBusTimerValue 255 /* HBus timer load value */
  66. #define TP_CFG_DisableLBusTimeout 0 /* Enable LBus timeout */
  67. #define TP_CFG_N_Divisor 32 /* Clock = 39.1608 Mhz */
  68. #define TP_CFG_M_Multiplier 37 /* " */
  69. #define TP_CFG_PllBypass 0 /* don't bypass */
  70. #define TP_CFG_ChipletEnable 0xFFFF /* Enable all chiplets */
  71. typedef struct {
  72. int bDSPEnabled;
  73. int bShareDspIrq;
  74. int bShareUartIrq;
  75. DSP_3780I_CONFIG_SETTINGS rDspSettings;
  76. } THINKPAD_BD_DATA;
  77. int tp3780I_InitializeBoardData(THINKPAD_BD_DATA * pBDData);
  78. int tp3780I_CalcResources(THINKPAD_BD_DATA * pBDData);
  79. int tp3780I_ClaimResources(THINKPAD_BD_DATA * pBDData);
  80. int tp3780I_ReleaseResources(THINKPAD_BD_DATA * pBDData);
  81. int tp3780I_EnableDSP(THINKPAD_BD_DATA * pBDData);
  82. int tp3780I_DisableDSP(THINKPAD_BD_DATA * pBDData);
  83. int tp3780I_ResetDSP(THINKPAD_BD_DATA * pBDData);
  84. int tp3780I_StartDSP(THINKPAD_BD_DATA * pBDData);
  85. int tp3780I_QueryAbilities(THINKPAD_BD_DATA * pBDData, MW_ABILITIES * pAbilities);
  86. int tp3780I_Cleanup(THINKPAD_BD_DATA * pBDData);
  87. int tp3780I_ReadWriteDspDStore(THINKPAD_BD_DATA * pBDData, unsigned int uOpcode,
  88. void __user *pvBuffer, unsigned int uCount,
  89. unsigned long ulDSPAddr);
  90. int tp3780I_ReadWriteDspIStore(THINKPAD_BD_DATA * pBDData, unsigned int uOpcode,
  91. void __user *pvBuffer, unsigned int uCount,
  92. unsigned long ulDSPAddr);
  93. #endif