Subject: Re: AW: Does anyone port m8xx_pcmcia driver to Linux Kernel successfully?

From: Matthew Locke <[email-masked]>
Date: Thu, 25 Apr 2002 09:13:43 -0700

Sven Boehringer wrote:

>Hi all,
>
>i tried your patch, but it seems to me that there are some #defines
>missing?
>I try to use the source/kernel on a FADS board, an in that section there
>is
>"BCSR1_PCCVPP1". But i can't find this value. I tried to copy some
>values from ppcboot,
>but these particular are not there. Are there some special includes?
>
>I have the actual linuxppc_2_4_devel source-tree, but i can't find these
>values.
>
The BCSR1_* in the  CONFIG_FADS areas are register addresses specific to
the FADS board.
It seems some FADS stuff still hasn't made it into _devel.  Here are the
defines I have:
/* Bits of interest in the BCSRs.
 */
#define BCSR1_ETHEN             ((uint)0x20000000)
#define BCSR1_RS232EN_1         ((uint)0x01000000)
#define BCSR1_PCCEN             ((uint)0x00800000)
#define BCSR1_PCCVCC0           ((uint)0x00400000)
#define BCSR1_PCCVPP_MASK       ((uint)0x00300000)
#define BCSR1_PCCVPP0           ((uint)0x00200000)
#define BCSR1_PCCVPP1           ((uint)0x00100000)
#define BCSR1_RS232EN_2         ((uint)0x00040000)
#define BCSR1_PCCVCC1           ((uint)0x00010000)
#define BCSR1_PCCVCC_MASK       (BCSR1_PCCVCC0 | BCSR1_PCCVCC1)
#define BCSR4_ETHLOOP           ((uint)0x80000000)      /* EEST Loopback */
#define BCSR4_EEFDX             ((uint)0x40000000)      /* EEST FDX
enable */
#define BCSR4_FETH_EN           ((uint)0x08000000)      /* PHY enable */
#define BCSR4_FETHCFG0          ((uint)0x04000000)      /* PHY autoneg
mode */
#define BCSR4_FETHCFG1          ((uint)0x00400000)      /* PHY autoneg
mode */
#define BCSR4_FETHFDE           ((uint)0x02000000)      /* PHY FDX
advertise */
#define BCSR4_FETHRST           ((uint)0x00200000)      /* PHY Reset */

>
>
>regards
>	Sven
>
>Matthew Locke wrote:
>
>>here is the patch to add the 8xx pcmcia socket driver to the kernel.
>>
>>Fend, Matthias wrote:
>>
>>>hello Matthew,
>>>
>>>i also tried to do this work - without the desired success
>>>
>>>i don't know exactly if my hardware is faulty or my m8xx port ... :-(
>>>
>>>so if i could have your version of the pcmcia stuff i would be very glad.
>>>
>>>thanks matthias
>>>
>>>>-----Ursprüngliche Nachricht-----
>>>>Von:  Matthew Locke [SMTP:[email-masked]]
>>>>Gesendet am:  Dienstag, 16. April 2002 18:50
>>>>An:   Jacky Wang
>>>>Cc:   [email-masked]
>>>>Betreff:      Re: Does anyone port m8xx_pcmcia driver to Linux Kernel
>>>>successfully?
>>>>
>>>>
>>>>Jacky Wang wrote:
>>>>
>>>>>Hi everyone,
>>>>>
>>>>>I am interesting about how to port m8xx_pcmcia driver to linux kernel w/
>>>>>
>>>>MPC850.
>>>>
>>>>>Would you mind to share your successful experience with me?
>>>>>
>>>>I did (w/ the help of others). It is on its way upstream now. If you
>>>>need it soon, let me know and I can make it available.
>>>>
>>>>>Best Regards
>>>>>Jacky Wang
>>>>>
>>>>>
>>>>** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org
>>>>
>>>/
>>>
>
>>+/* ------------------------------------------------------------------------- */
>>+/* FADS Boards from Motorola                                               */
>>+
>>+#if defined(CONFIG_FADS)
>>+
>>+#define PCMCIA_BOARD_MSG "FADS"
>>+
>>+static int voltage_set(int slot, int vcc, int vpp)
>>+{
>>+       uint reg = 0;
>>+
>>+       switch(vcc) {
>>+               case 0: break;
>>+               case 33: reg |= BCSR1_PCCVCC0; break;
>>+               case 50: reg |= BCSR1_PCCVCC1; break;
>>+               default: return 1;
>>+       }
>>+
>>+       switch(vpp) {
>>+               case 0: break;
>>+               case 33:
>>+               case 50:
>>+                       if(vcc == vpp)
>>+                               reg |= BCSR1_PCCVPP1;
>>+                       else
>>+                               return 1;
>>+                       break;
>>+               case 120:
>>+                       if ((vcc == 33) || (vcc == 50))
>>+                               reg |= BCSR1_PCCVPP0;
>>+                       else
>>+                               return 1;
>>+               default: return 1;
>>+       }
>>+
>>+       /* first, turn off all power */
>>+       *((uint *)BCSR1) &= ~(BCSR1_PCCVCC_MASK | BCSR1_PCCVPP_MASK);
>>+
>>+       /* enable new powersettings */
>>+       *((uint *)BCSR1) |= reg;
>>+
>>+       return 0;
>>+}
>>+
>>+#define socket_get(_slot_) PCMCIA_SOCKET_KEY_5V
>>+
>>+static void hardware_enable(int slot)
>>+{
>>+       *((uint *)BCSR1) &= ~BCSR1_PCCEN;
>>+}
>>+
>>+static void hardware_disable(int slot)
>>+{
>>+       *((uint *)BCSR1) |=  BCSR1_PCCEN;
>>+}
>>+
>>+#endif
>>
>+
>

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/