<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><font face="굴림체">Dear Sir. <br>
      </font></p>
    <p><font face="굴림체"><br>
        I want to control the GPIO pin that pin number is 12, 13, 14</font></p>
    <p><font face="굴림체"><br>
        DataSheet(P 1909) and coreboot source
        code(src/southbridge/intel/fsp_rangeley/gpio.c, gpio.h) is said
        to me that "It is very easy"</font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체">If i want to set the HIGH to 12, 13, 14</font></p>
    <p><font face="굴림체">Just setup the some register, is see below.<br>
      </font></p>
    <p><font face="굴림체">  SC_USE_SEL = 0x7000(b0111 0000 0000 0000)<br>
      </font></p>
    <p><font face="굴림체">    Is mean, the 12, 13, 14 is config to GPIO
        mode.(enable GPIO)<br>
      </font></p>
    <p><font face="굴림체">  SC_IO_SEL = 0x00(b0000 0000 0000 0000)<br>
      </font></p>
    <p><font face="굴림체">    Is mean, the 12, 13, 14 is output mode<br>
      </font></p>
    <p><font face="굴림체">  SC_GP_LVL = 0x7000</font><font face="굴림체">(b0111
        0000 0000 0000)</font></p>
    <p><font face="굴림체">    Is mean, the 12, 13, 14 is set to HIGH
        level(1)</font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체">src/southbridge/intel/fsp_rangeley/gpio.h</font></p>
    <p><font face="굴림체">  /* Core GPIO */<br>
          const struct soc_gpio soc_gpio_mode = {<br>
            .gpio12 = GPIO_MODE_GPIO, /* Board ID GPIO */<br>
            .gpio13 = GPIO_MODE_GPIO, /* Board ID GPIO */<br>
            .gpio14 = GPIO_MODE_GPIO, /* Board ID GPIO */<br>
          };</font></p>
    <p><font face="굴림체">  const struct soc_gpio soc_gpio_direction = {<br>
            .gpio12 = GPIO_DIR_OUTPUT,<br>
            .gpio13 = GPIO_DIR_OUTPUT,<br>
            .gpio14 = GPIO_DIR_OUTPUT,<br>
          };<br>
      </font></p>
    <p><font face="굴림체">  const struct soc_gpio soc_gpio_level = {<br>
            .gpio12 = GPIO_LEVEL_HIGH,<br>
            .gpio13 = GPIO_LEVEL_HIGH,<br>
            .gpio14 = GPIO_LEVEL_HIGH,<br>
          };<br>
        <br>
      </font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체">Yes, It is perfectley running.</font></p>
    <p><font face="굴림체">The 12, 13, 14 PIN is goto active-HIGH.(I was
        check this pin use by oscilloscope.)<br>
      </font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체">And I'm try to read the SC_GP_LVL register for
        check current status/config of gpio pins</font></p>
    <p><font face="굴림체">I was <b>respected</b> the read value is <b>0x7000</b>,
        because i was writed the <b>0x7000</b> to SC_GP_LVL.</font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체">But, every time readed the <b>0x00</b> from
        SC_GP_LVL register.</font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><u><font face="굴림체">When write 0x7000 write to SC_USE_SEL, Can
          read the 0x7000 from SC_USE_SEL.</font></u></p>
    <p><u><font face="굴림체">When write 0x00 write to SC_IO_SEL, Can read
          the 0x00 from SC_IO_SEL.</font></u></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체">But,</font></p>
    <p><br>
      <b><u><font face="굴림체">When write 0x7000 write to SC_GP_LVL, Can
            read the 0x00 from SC_GP_LVL. everytime.</font></u></b></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체">I don't understand this sistuation.<br>
      </font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체">Please advise to me. <br>
      </font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체">Thank you. </font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체"><br>
      </font></p>
    <p><font face="굴림체"><br>
      </font></p>
  </body>
</html>