Subject: Re: PCMCIA on MBX860

From: Paul Ruhland <[email-masked]>
Date: Sun, 4 Feb 2001 14:27:50 -0500

On Sunday 04 February 2001 14:22, Paul Ruhland wrote:
> On Sunday 04 February 2001 13:49, Paul Ruhland wrote:
> > Steve,
> >
> > I will send you the changes for the MBX860 in another reply tomorrow (
> > 20010205 ).  All of that code is presently on my work machine.
>
> I managed to find an a patch for the pcmcia-cs-3.1.22 I made for the mbx...

I guess attaching the patch would have been a good idea...I need email
software that automatically attaches files I'm referring to...hahaha.

Don't forget to modify the config.in stuff to match your development layout.

-------------------------------
Paul Ruhland
Micrwave Data Systems Inc.
175 Science Parkway
Rochester, NY 14620
TEL: +1.716.242.8372
EMAIL: [email-masked]
Only in pcmcia-cs-3.1.22: .prereq.ok
diff -c --recursive tar/pcmcia-cs-3.1.22/Configure pcmcia-cs-3.1.22/Configure
*** tar/pcmcia-cs-3.1.22/Configure	Wed Nov  8 00:00:37 2000
--- pcmcia-cs-3.1.22/Configure	Fri Dec  8 14:24:37 2000
***************
*** 433,438 ****
--- 433,439 ----
      	printflag "MPC8xx architecture" CONFIG_8xx
      	printflag "Embedded Planet LITE platform" CONFIG_RPXLITE
      	printflag "Embedded Planet CLASSIC platfom" CONFIG_RPXCLASSIC
+         printflag "Motorola MBX platform" CONFIG_MBX
      	printflag "MPC823 processor" CONFIG_MPC823
      	printflag "MPC850 processor" CONFIG_MPC850
      	printflag "MPC860 processor" CONFIG_MPC860
***************
*** 573,578 ****
--- 574,580 ----
  	    configcheck CONFIG_8xx
  	    configcheck CONFIG_RPXLITE
  	    configcheck CONFIG_RPXCLASSIC
+             configcheck CONFIG_MBX
  	    configcheck CONFIG_MPC823
  	    configcheck CONFIG_MPC850
  	    configcheck CONFIG_MPC860

diff -c --recursive tar/pcmcia-cs-3.1.22/config.in pcmcia-cs-3.1.22/config.in
*** tar/pcmcia-cs-3.1.22/config.in	Thu Jun 15 23:23:48 2000
--- pcmcia-cs-3.1.22/config.in	Fri Dec  8 14:03:14 2000
***************
*** 1,17 ****
  #
  # config.in 1.16 2000/06/15 18:23:48 (David Hinds)
  #
! LINUX=/usr/src/linux
! PREFIX=
! MODDIR=
! CC=cc
! LD=ld
  PCDEBUG=
  KFLAGS=
  UFLAGS=
! ARCH=
  UNSAFE_TOOLS=n
! CONFIG_CARDBUS=y
  CONFIG_PNP=n
  USE_PM=y
  CONF_SRC=1
--- 1,17 ----
  #
  # config.in 1.16 2000/06/15 18:23:48 (David Hinds)
  #
! LINUX=/home/paulr/projects/nethop/linux
! PREFIX=/home/paulr/projects/nethop/target
! MODDIR=/lib/modules/2.2.14
! CC=ppc_8xx-gcc
! LD=ppc_8xx-ld
  PCDEBUG=
  KFLAGS=
  UFLAGS=
! ARCH=ppc
  UNSAFE_TOOLS=n
! CONFIG_CARDBUS=n
  CONFIG_PNP=n
  USE_PM=y
  CONF_SRC=1

diff -c --recursive tar/pcmcia-cs-3.1.22/modules/m8xx_pcmcia.c pcmcia-cs-3.1.22/modules/m8xx_pcmcia.c
*** tar/pcmcia-cs-3.1.22/modules/m8xx_pcmcia.c	Wed Oct 25 05:15:51 2000
--- pcmcia-cs-3.1.22/modules/m8xx_pcmcia.c	Mon Dec 11 10:44:36 2000
***************
*** 94,99 ****
--- 94,105 ----
  #endif
  #endif
  
+ /* The MBX uses SLOT_A */
+ #ifdef CONFIG_MBX
+ #define CONFIG_PCMCIA_SLOT_A
+ #define CONFIG_BD_IS_HZ
+ #endif
+ 
  #endif /* !defined(CONFIG_PCMCIA_SLOT_A) && !defined(CONFIG_PCMCIA_SLOT_B) */
  
  /* ------------------------------------------------------------------------- */
***************
*** 138,146 ****
  #endif
  
  #ifdef CONFIG_BD_IS_MHZ
! #define M8XX_BUSFREQ ((mpc8xx_bdinfo->bi_busfreq) * 1000000)
  #else
! #define M8XX_BUSFREQ (mpc8xx_bdinfo->bi_busfreq)
  #endif
  
  static int pcmcia_schlvl = PCMCIA_SCHLVL;
--- 144,154 ----
  #endif
  
  #ifdef CONFIG_BD_IS_MHZ
! //#define M8XX_BUSFREQ ((mpc8xx_bdinfo->bi_busfreq) * 1000000)
! #define M8XX_BUSFREQ ((50) * 1000000)
  #else
! //#define M8XX_BUSFREQ (mpc8xx_bdinfo->bi_busfreq)
! #define M8XX_BUSFREQ ((50) * 1000000)
  #endif
  
  static int pcmcia_schlvl = PCMCIA_SCHLVL;
***************
*** 396,401 ****
--- 404,461 ----
  }
  
  #endif
+ 
+ /* --------------------------------------------------------------------------*/
+ /* MBX Boards from Motorola */
+ 
+ #if defined(CONFIG_MBX)
+ 
+ #define PCMCIA_BOARD_MSG "MBX860"
+ 
+ static int voltage_set(int slot, int vcc, int vpp)
+ {
+ 	unsigned char reg = 0;
+ 
+ 	switch(vcc) {
+ 	case 0: break;
+ 	case 33: reg |= 0x80; break;
+ 	case 50: reg |= 0x40; break;
+ 	default: return 1;
+ 	}
+ 
+ 	switch(vpp) {
+ 	case 0: break;
+ 	case 33: 
+ 	case 50:
+ 		if(vcc == vpp)
+ 			reg |= 0x20;
+ 		else
+ 			return 1;
+ 		break;
+ 	case 120: 
+ 		reg |= 0x10;
+ 	default: return 1;
+ 	}
+ 
+ 	if(!((vcc == 50) || (vcc == 0)))
+ 	   return 1;
+ 
+ 	/* first, turn off all power */
+ 
+ 	*((unsigned char*)(MBX_CSR_ADDR + 1)) &= ~(0x80 | 0x40 | 0x20 | 0x10 );
+ 
+ 	/* enable new powersettings */
+ 
+ 	*((unsigned char*)(MBX_CSR_ADDR + 1)) |= reg;
+ 
+ 	return 0;
+ }
+ 
+ #define socket_get(_slot_) PCMCIA_SOCKET_KEY_5V
+ #define hardware_enable(_slot_)  /* No hardware to enable */
+ #define hardware_disable(_slot_) /* No hardware to disable */
+ 
+ #endif /* CONFIG_MBX */
  
  /* ------------------------------------------------------------------------- */