uboot/drivers/misc/ns87308.c
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2000
   3 * Rob Taylor, Flying Pig Systems. robt@flyingpig.com.
   4 *
   5 * SPDX-License-Identifier:     GPL-2.0+
   6 */
   7
   8#include <config.h>
   9
  10#include <ns87308.h>
  11
  12void initialise_ns87308 (void)
  13{
  14#ifdef CONFIG_SYS_NS87308_PS2MOD
  15        unsigned char data;
  16
  17        /*
  18         * Switch floppy drive to PS/2 mode.
  19         */
  20        read_pnp_config(SUPOERIO_CONF1, &data);
  21        data &= 0xFB;
  22        write_pnp_config(SUPOERIO_CONF1, data);
  23#endif
  24
  25#if (CONFIG_SYS_NS87308_DEVS & CONFIG_SYS_NS87308_KBC1)
  26        PNP_SET_DEVICE_BASE(LDEV_KBC1, CONFIG_SYS_NS87308_KBC1_BASE);
  27        write_pnp_config(LUN_CONFIG_REG, 0);
  28        write_pnp_config(CBASE_HIGH, 0x00);
  29        write_pnp_config(CBASE_LOW, 0x64);
  30#endif
  31
  32#if (CONFIG_SYS_NS87308_DEVS & CONFIG_SYS_NS87308_MOUSE)
  33        PNP_ACTIVATE_DEVICE(LDEV_MOUSE);
  34#endif
  35
  36#if (CONFIG_SYS_NS87308_DEVS & CONFIG_SYS_NS87308_RTC_APC)
  37        PNP_SET_DEVICE_BASE(LDEV_RTC_APC, CONFIG_SYS_NS87308_RTC_BASE);
  38#endif
  39
  40#if (CONFIG_SYS_NS87308_DEVS & CONFIG_SYS_NS87308_FDC)
  41        PNP_SET_DEVICE_BASE(LDEV_FDC, CONFIG_SYS_NS87308_FDC_BASE);
  42        write_pnp_config(LUN_CONFIG_REG, 0x40);
  43#endif
  44
  45#if (CONFIG_SYS_NS87308_DEVS & CONFIG_SYS_NS87308_RARP)
  46        PNP_SET_DEVICE_BASE(LDEV_PARP, CONFIG_SYS_NS87308_LPT_BASE);
  47#endif
  48
  49#if (CONFIG_SYS_NS87308_DEVS & CONFIG_SYS_NS87308_UART1)
  50        PNP_SET_DEVICE_BASE(LDEV_UART1, CONFIG_SYS_NS87308_UART1_BASE);
  51#endif
  52
  53#if (CONFIG_SYS_NS87308_DEVS & CONFIG_SYS_NS87308_UART2)
  54        PNP_SET_DEVICE_BASE(LDEV_UART2, CONFIG_SYS_NS87308_UART2_BASE);
  55#endif
  56
  57#if (CONFIG_SYS_NS87308_DEVS & CONFIG_SYS_NS87308_GPIO)
  58        PNP_SET_DEVICE_BASE(LDEV_GPIO, CONFIG_SYS_NS87308_GPIO_BASE);
  59#endif
  60
  61#if (CONFIG_SYS_NS87308_DEVS & CONFIG_SYS_NS87308_POWRMAN)
  62#ifndef CONFIG_SYS_NS87308_PWMAN_BASE
  63        PNP_ACTIVATE_DEVICE(LDEV_POWRMAN);
  64#else
  65        PNP_SET_DEVICE_BASE(LDEV_POWRMAN, CONFIG_SYS_NS87308_PWMAN_BASE);
  66
  67        /*
  68         * Enable all units
  69         */
  70        write_pm_reg(CONFIG_SYS_NS87308_PWMAN_BASE, PWM_FER1, 0x7d);
  71        write_pm_reg(CONFIG_SYS_NS87308_PWMAN_BASE, PWM_FER2, 0x87);
  72
  73#ifdef CONFIG_SYS_NS87308_PMC1
  74        write_pm_reg(CONFIG_SYS_NS87308_PWMAN_BASE, PWM_PMC1, CONFIG_SYS_NS87308_PMC1);
  75#endif
  76
  77#ifdef CONFIG_SYS_NS87308_PMC2
  78        write_pm_reg(CONFIG_SYS_NS87308_PWMAN_BASE, PWM_PMC2, CONFIG_SYS_NS87308_PMC2);
  79#endif
  80
  81#ifdef CONFIG_SYS_NS87308_PMC3
  82        write_pm_reg(CONFIG_SYS_NS87308_PWMAN_BASE, PWM_PMC3, CONFIG_SYS_NS87308_PMC3);
  83#endif
  84#endif
  85#endif
  86
  87#ifdef CONFIG_SYS_NS87308_CS0_BASE
  88        PNP_PGCS_CSLINE_BASE(0, CONFIG_SYS_NS87308_CS0_BASE);
  89        PNP_PGCS_CSLINE_CONF(0, CONFIG_SYS_NS87308_CS0_CONF);
  90#endif
  91
  92#ifdef CONFIG_SYS_NS87308_CS1_BASE
  93        PNP_PGCS_CSLINE_BASE(1, CONFIG_SYS_NS87308_CS1_BASE);
  94        PNP_PGCS_CSLINE_CONF(1, CONFIG_SYS_NS87308_CS1_CONF);
  95#endif
  96
  97#ifdef CONFIG_SYS_NS87308_CS2_BASE
  98        PNP_PGCS_CSLINE_BASE(2, CONFIG_SYS_NS87308_CS2_BASE);
  99        PNP_PGCS_CSLINE_CONF(2, CONFIG_SYS_NS87308_CS2_CONF);
 100#endif
 101}
 102