/*
 *  for MB9BF618T on FRK-FM3
 * 
 *   Copyright (C) by Y.Ishioka.
 */
#include <tk/tkernel.h>

#include <tk/sysdef.h>


/***********************************************************/
/*
 * IO port initialize
 */
void  io_port_init( void )
{
    /* for PB0 */
    out_w( GPIO_PFRB, in_w(GPIO_PFRB) |  0x0001 ) ;  /* set External to bit0 */
    out_w( GPIO_PCRB, in_w(GPIO_PCRB) & ~0x0001 ) ;  /* off pull-up to bit0 */
    out_w( GPIO_DDRB, in_w(GPIO_DDRB) & ~0x0001 ) ;  /* set input mode to bit0 */

    out_w( GPIO_ADE,  in_w(GPIO_ADE)  |  0x00010000 ) ;  /* set AN16 to bit16 */

    /* for PC9 */
    out_w( GPIO_PFRC, in_w(GPIO_PFRC) & ~0x0200 ) ;  /* set GPIO to bit9 */
    out_w( GPIO_PCRC, in_w(GPIO_PCRC) & ~0x0200 ) ;  /* off pull-up to bit9 */
    out_w( GPIO_DDRC, in_w(GPIO_DDRC) |  0x0200 ) ;  /* set output mode to bit9 */

    out_w( GPIO_PDORC, (in_w(GPIO_PDORC)& ~0x00000200) ) ; /* set LOW */
}


/*
 * bit : 0 : LOW
 *       1 : HIGH
 */
void  io_port_c9( unsigned int bit )
{
    if( bit != 0 ) {
        /* HIGH */
        out_w( GPIO_PDORC, in_w(GPIO_PDORC) | 0x00000200 ) ;
    } else {
        /* LOW */
        out_w( GPIO_PDORC, (in_w(GPIO_PDORC)& ~0x00000200) ) ;
    }
}

