linux/Documentation/zh_CN/gpio.txt
<<
>>
Prefs
   1Chinese translated version of Documentation/gpio.txt
   2
   3If you have any comment or update to the content, please contact the
   4original document maintainer directly.  However, if you have a problem
   5communicating in English you can also ask the Chinese maintainer for
   6help.  Contact the Chinese maintainer if this translation is outdated
   7or if there is a problem with the translation.
   8
   9Maintainer: Grant Likely <grant.likely@secretlab.ca>
  10                Linus Walleij <linus.walleij@linaro.org>
  11Chinese maintainer: Fu Wei <tekkamanninja@gmail.com>
  12---------------------------------------------------------------------
  13Documentation/gpio.txt \xE7\x9A\x84\xE4\xB8\xAD\xE6\x96\x87\xE7\xBF\xBB\xE8\xAF\x91
  14
  15\xE5\xA6\x82\xE6\x9E\x9C\xE6\x83\xB3\xE8\xAF\x84\xE8\xAE\xBA\xE6\x88\x96\xE6\x9B\xB4\xE6\x96\xB0\xE6\x9C\xAC\xE6\x96\x87\xE7\x9A\x84\xE5\x86\x85\xE5\xAE\xB9\xEF\xBC\x8C\xE8\xAF\xB7\xE7\x9B\xB4\xE6\x8E\xA5\xE8\x81\x94\xE7\xB3\xBB\xE5\x8E\x9F\xE6\x96\x87\xE6\xA1\xA3\xE7\x9A\x84\xE7\xBB\xB4\xE6\x8A\xA4\xE8\x80\x85\xE3\x80\x82\xE5\xA6\x82\xE6\x9E\x9C\xE4\xBD\xA0\xE4\xBD\xBF\xE7\x94\xA8\xE8\x8B\xB1\xE6\x96\x87
  16\xE4\xBA\xA4\xE6\xB5\x81\xE6\x9C\x89\xE5\x9B\xB0\xE9\x9A\xBE\xE7\x9A\x84\xE8\xAF\x9D\xEF\xBC\x8C\xE4\xB9\x9F\xE5\x8F\xAF\xE4\xBB\xA5\xE5\x90\x91\xE4\xB8\xAD\xE6\x96\x87\xE7\x89\x88\xE7\xBB\xB4\xE6\x8A\xA4\xE8\x80\x85\xE6\xB1\x82\xE5\x8A\xA9\xE3\x80\x82\xE5\xA6\x82\xE6\x9E\x9C\xE6\x9C\xAC\xE7\xBF\xBB\xE8\xAF\x91\xE6\x9B\xB4\xE6\x96\xB0\xE4\xB8\x8D\xE5\x8F\x8A\xE6\x97\xB6\xE6\x88\x96\xE8\x80\x85\xE7\xBF\xBB
  17\xE8\xAF\x91\xE5\xAD\x98\xE5\x9C\xA8\xE9\x97\xAE\xE9\xA2\x98\xEF\xBC\x8C\xE8\xAF\xB7\xE8\x81\x94\xE7\xB3\xBB\xE4\xB8\xAD\xE6\x96\x87\xE7\x89\x88\xE7\xBB\xB4\xE6\x8A\xA4\xE8\x80\x85\xE3\x80\x82
  18\xE8\x8B\xB1\xE6\x96\x87\xE7\x89\x88\xE7\xBB\xB4\xE6\x8A\xA4\xE8\x80\x85\xEF\xBC\x9A Grant Likely <grant.likely@secretlab.ca>
  19                Linus Walleij <linus.walleij@linaro.org>
  20\xE4\xB8\xAD\xE6\x96\x87\xE7\x89\x88\xE7\xBB\xB4\xE6\x8A\xA4\xE8\x80\x85\xEF\xBC\x9A \xE5\x82\x85\xE7\x82\x9C Fu Wei <tekkamanninja@gmail.com>
  21\xE4\xB8\xAD\xE6\x96\x87\xE7\x89\x88\xE7\xBF\xBB\xE8\xAF\x91\xE8\x80\x85\xEF\xBC\x9A \xE5\x82\x85\xE7\x82\x9C Fu Wei <tekkamanninja@gmail.com>
  22\xE4\xB8\xAD\xE6\x96\x87\xE7\x89\x88\xE6\xA0\xA1\xE8\xAF\x91\xE8\x80\x85\xEF\xBC\x9A \xE5\x82\x85\xE7\x82\x9C Fu Wei <tekkamanninja@gmail.com>
  23
  24
  25\xE4\xBB\xA5\xE4\xB8\x8B\xE4\xB8\xBA\xE6\xAD\xA3\xE6\x96\x87
  26---------------------------------------------------------------------
  27GPIO \xE6\x8E\xA5\xE5\x8F\xA3
  28
  29\xE6\x9C\xAC\xE6\x96\x87\xE6\xA1\xA3\xE6\x8F\x90\xE4\xBE\x9B\xE4\xBA\x86\xE4\xB8\x80\xE4\xB8\xAA\xE5\x9C\xA8Linux\xE4\xB8\x8B\xE8\xAE\xBF\xE9\x97\xAEGPIO\xE7\x9A\x84\xE5\x85\xAC\xE7\xBA\xA6\xE6\xA6\x82\xE8\xBF\xB0\xE3\x80\x82
  30
  31\xE8\xBF\x99\xE4\xBA\x9B\xE5\x87\xBD\xE6\x95\xB0\xE4\xBB\xA5 gpio_* \xE4\xBD\x9C\xE4\xB8\xBA\xE5\x89\x8D\xE7\xBC\x80\xE3\x80\x82\xE5\x85\xB6\xE4\xBB\x96\xE7\x9A\x84\xE5\x87\xBD\xE6\x95\xB0\xE4\xB8\x8D\xE5\x85\x81\xE8\xAE\xB8\xE4\xBD\xBF\xE7\x94\xA8\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE5\x89\x8D\xE7\xBC\x80\xE6\x88\x96\xE7\x9B\xB8\xE5\x85\xB3\xE7\x9A\x84
  32__gpio_* \xE5\x89\x8D\xE7\xBC\x80\xE3\x80\x82
  33
  34
  35\xE4\xBB\x80\xE4\xB9\x88\xE6\x98\xAFGPIO?
  36==========
  37"\xE9\x80\x9A\xE7\x94\xA8\xE8\xBE\x93\xE5\x85\xA5/\xE8\xBE\x93\xE5\x87\xBA\xE5\x8F\xA3"(GPIO)\xE6\x98\xAF\xE4\xB8\x80\xE4\xB8\xAA\xE7\x81\xB5\xE6\xB4\xBB\xE7\x9A\x84\xE7\x94\xB1\xE8\xBD\xAF\xE4\xBB\xB6\xE6\x8E\xA7\xE5\x88\xB6\xE7\x9A\x84\xE6\x95\xB0\xE5\xAD\x97\xE4\xBF\xA1\xE5\x8F\xB7\xE3\x80\x82\xE4\xBB\x96\xE4\xBB\xAC\xE5\x8F\xAF
  38\xE7\x94\xB1\xE5\xA4\x9A\xE7\xA7\x8D\xE8\x8A\xAF\xE7\x89\x87\xE6\x8F\x90\xE4\xBE\x9B,\xE4\xB8\x94\xE5\xAF\xB9\xE4\xBA\x8E\xE4\xBB\x8E\xE4\xBA\x8B\xE5\xB5\x8C\xE5\x85\xA5\xE5\xBC\x8F\xE5\x92\x8C\xE5\xAE\x9A\xE5\x88\xB6\xE7\xA1\xAC\xE4\xBB\xB6\xE7\x9A\x84 Linux \xE5\xBC\x80\xE5\x8F\x91\xE8\x80\x85\xE6\x9D\xA5\xE8\xAF\xB4\xE6\x98\xAF
  39\xE6\xAF\x94\xE8\xBE\x83\xE7\x86\x9F\xE6\x82\x89\xE3\x80\x82\xE6\xAF\x8F\xE4\xB8\xAAGPIO \xE9\x83\xBD\xE4\xBB\xA3\xE8\xA1\xA8\xE4\xB8\x80\xE4\xB8\xAA\xE8\xBF\x9E\xE6\x8E\xA5\xE5\x88\xB0\xE7\x89\xB9\xE5\xAE\x9A\xE5\xBC\x95\xE8\x84\x9A\xE6\x88\x96\xE7\x90\x83\xE6\xA0\x85\xE9\x98\xB5\xE5\x88\x97(BGA)\xE5\xB0\x81\xE8\xA3\x85\xE4\xB8\xAD
  40\xE2\x80\x9C\xE7\x90\x83\xE7\x8F\xA0\xE2\x80\x9D\xE7\x9A\x84\xE4\xB8\x80\xE4\xB8\xAA\xE4\xBD\x8D\xE3\x80\x82\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF\xE5\x8E\x9F\xE7\x90\x86\xE5\x9B\xBE\xE6\x98\xBE\xE7\xA4\xBA\xE4\xBA\x86 GPIO \xE4\xB8\x8E\xE5\xA4\x96\xE9\x83\xA8\xE7\xA1\xAC\xE4\xBB\xB6\xE7\x9A\x84\xE8\xBF\x9E\xE6\x8E\xA5\xE5\x85\xB3\xE7\xB3\xBB\xE3\x80\x82
  41\xE9\xA9\xB1\xE5\x8A\xA8\xE5\x8F\xAF\xE4\xBB\xA5\xE7\xBC\x96\xE5\x86\x99\xE6\x88\x90\xE9\x80\x9A\xE7\x94\xA8\xE4\xBB\xA3\xE7\xA0\x81\xEF\xBC\x8C\xE4\xBB\xA5\xE4\xBD\xBF\xE6\x9D\xBF\xE7\xBA\xA7\xE5\x90\xAF\xE5\x8A\xA8\xE4\xBB\xA3\xE7\xA0\x81\xE5\x8F\xAF\xE4\xBC\xA0\xE9\x80\x92\xE5\xBC\x95\xE8\x84\x9A\xE9\x85\x8D\xE7\xBD\xAE\xE6\x95\xB0\xE6\x8D\xAE\xE7\xBB\x99\xE9\xA9\xB1\xE5\x8A\xA8\xE3\x80\x82
  42
  43\xE7\x89\x87\xE4\xB8\x8A\xE7\xB3\xBB\xE7\xBB\x9F (SOC) \xE5\xA4\x84\xE7\x90\x86\xE5\x99\xA8\xE5\xAF\xB9 GPIO \xE6\x9C\x89\xE5\xBE\x88\xE5\xA4\xA7\xE7\x9A\x84\xE4\xBE\x9D\xE8\xB5\x96\xE3\x80\x82\xE5\x9C\xA8\xE6\x9F\x90\xE4\xBA\x9B\xE6\x83\x85\xE5\x86\xB5\xE4\xB8\x8B,\xE6\xAF\x8F\xE4\xB8\xAA
  44\xE9\x9D\x9E\xE4\xB8\x93\xE7\x94\xA8\xE5\xBC\x95\xE8\x84\x9A\xE9\x83\xBD\xE5\x8F\xAF\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA GPIO,\xE4\xB8\x94\xE5\xA4\xA7\xE5\xA4\x9A\xE6\x95\xB0\xE8\x8A\xAF\xE7\x89\x87\xE9\x83\xBD\xE6\x9C\x80\xE5\xB0\x91\xE6\x9C\x89\xE4\xB8\x80\xE4\xBA\x9B GPIO\xE3\x80\x82
  45\xE5\x8F\xAF\xE7\xBC\x96\xE7\xA8\x8B\xE9\x80\xBB\xE8\xBE\x91\xE5\x99\xA8\xE4\xBB\xB6(\xE7\xB1\xBB\xE4\xBC\xBC FPGA) \xE5\x8F\xAF\xE4\xBB\xA5\xE6\x96\xB9\xE4\xBE\xBF\xE5\x9C\xB0\xE6\x8F\x90\xE4\xBE\x9B GPIO\xE3\x80\x82\xE5\x83\x8F\xE7\x94\xB5\xE6\xBA\x90\xE7\xAE\xA1\xE7\x90\x86\xE5\x92\x8C
  46\xE9\x9F\xB3\xE9\xA2\x91\xE7\xBC\x96\xE8\xA7\xA3\xE7\xA0\x81\xE5\x99\xA8\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE5\xA4\x9A\xE5\x8A\x9F\xE8\x83\xBD\xE8\x8A\xAF\xE7\x89\x87\xE7\xBB\x8F\xE5\xB8\xB8\xE7\x95\x99\xE6\x9C\x89\xE4\xB8\x80\xE4\xBA\x9B\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xE6\x9D\xA5\xE5\xB8\xAE\xE5\x8A\xA9\xE9\x82\xA3\xE4\xBA\x9B\xE5\xBC\x95\xE8\x84\x9A
  47\xE5\x8C\xAE\xE4\xB9\x8F\xE7\x9A\x84 SOC\xE3\x80\x82\xE5\x90\x8C\xE6\x97\xB6\xE8\xBF\x98\xE6\x9C\x89\xE9\x80\x9A\xE8\xBF\x87 I2C \xE6\x88\x96 SPI \xE4\xB8\xB2\xE8\xA1\x8C\xE6\x80\xBB\xE7\xBA\xBF\xE8\xBF\x9E\xE6\x8E\xA5\xE7\x9A\x84\xE2\x80\x9CGPIO\xE6\x89\xA9\xE5\xB1\x95\xE5\x99\xA8\xE2\x80\x9D
  48\xE8\x8A\xAF\xE7\x89\x87\xE3\x80\x82\xE5\xA4\xA7\xE5\xA4\x9A\xE6\x95\xB0 PC \xE7\x9A\x84\xE5\x8D\x97\xE6\xA1\xA5\xE6\x9C\x89\xE4\xB8\x80\xE4\xBA\x9B\xE6\x8B\xA5\xE6\x9C\x89 GPIO \xE8\x83\xBD\xE5\x8A\x9B\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A (\xE5\x8F\xAA\xE6\x9C\x89BIOS
  49\xE5\x9B\xBA\xE4\xBB\xB6\xE6\x89\x8D\xE7\x9F\xA5\xE9\x81\x93\xE5\xA6\x82\xE4\xBD\x95\xE4\xBD\xBF\xE7\x94\xA8\xE4\xBB\x96\xE4\xBB\xAC)\xE3\x80\x82
  50
  51GPIO \xE7\x9A\x84\xE5\xAE\x9E\xE9\x99\x85\xE5\x8A\x9F\xE8\x83\xBD\xE5\x9B\xA0\xE7\xB3\xBB\xE7\xBB\x9F\xE8\x80\x8C\xE5\xBC\x82\xE3\x80\x82\xE9\x80\x9A\xE5\xB8\xB8\xE7\x94\xA8\xE6\xB3\x95\xE6\x9C\x89:
  52
  53  - \xE8\xBE\x93\xE5\x87\xBA\xE5\x80\xBC\xE5\x8F\xAF\xE5\x86\x99 (\xE9\xAB\x98\xE7\x94\xB5\xE5\xB9\xB3=1\xEF\xBC\x8C\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3=0)\xE3\x80\x82\xE4\xB8\x80\xE4\xBA\x9B\xE8\x8A\xAF\xE7\x89\x87\xE4\xB9\x9F\xE6\x9C\x89\xE5\xA6\x82\xE4\xBD\x95\xE9\xA9\xB1\xE5\x8A\xA8\xE8\xBF\x99\xE4\xBA\x9B\xE5\x80\xBC\xE7\x9A\x84\xE9\x80\x89\xE9\xA1\xB9,
  54    \xE4\xBE\x8B\xE5\xA6\x82\xE5\x8F\xAA\xE5\x85\x81\xE8\xAE\xB8\xE8\xBE\x93\xE5\x87\xBA\xE4\xB8\x80\xE4\xB8\xAA\xE5\x80\xBC\xE3\x80\x81\xE6\x94\xAF\xE6\x8C\x81\xE2\x80\x9C\xE7\xBA\xBF\xE4\xB8\x8E\xE2\x80\x9D\xE5\x8F\x8A\xE5\x85\xB6\xE4\xBB\x96\xE5\x8F\x96\xE5\x80\xBC\xE7\xB1\xBB\xE4\xBC\xBC\xE7\x9A\x84\xE6\xA8\xA1\xE5\xBC\x8F(\xE5\x80\xBC\xE5\xBE\x97\xE6\xB3\xA8\xE6\x84\x8F\xE7\x9A\x84\xE6\x98\xAF
  55    \xE2\x80\x9C\xE5\xBC\x80\xE6\xBC\x8F\xE2\x80\x9D\xE4\xBF\xA1\xE5\x8F\xB7)
  56
  57  - \xE8\xBE\x93\xE5\x85\xA5\xE5\x80\xBC\xE5\x8F\xAF\xE8\xAF\xBB(1\xE3\x80\x810)\xE3\x80\x82\xE4\xB8\x80\xE4\xBA\x9B\xE8\x8A\xAF\xE7\x89\x87\xE6\x94\xAF\xE6\x8C\x81\xE5\xBC\x95\xE8\x84\x9A\xE5\x9C\xA8\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE2\x80\x9C\xE8\xBE\x93\xE5\x87\xBA\xE2\x80\x9D\xE6\x97\xB6\xE5\x9B\x9E\xE8\xAF\xBB\xEF\xBC\x8C\xE8\xBF\x99\xE5\xAF\xB9\xE4\xBA\x8E\xE7\xB1\xBB\xE4\xBC\xBC
  58    \xE2\x80\x9C\xE7\xBA\xBF\xE4\xB8\x8E\xE2\x80\x9D\xE7\x9A\x84\xE6\x83\x85\xE5\x86\xB5(\xE4\xBB\xA5\xE6\x94\xAF\xE6\x8C\x81\xE5\x8F\x8C\xE5\x90\x91\xE4\xBF\xA1\xE5\x8F\xB7)\xE6\x98\xAF\xE9\x9D\x9E\xE5\xB8\xB8\xE6\x9C\x89\xE7\x94\xA8\xE7\x9A\x84\xE3\x80\x82GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE5\x8F\xAF\xE8\x83\xBD\xE6\x9C\x89\xE8\xBE\x93\xE5\x85\xA5
  59    \xE5\x8E\xBB\xE6\xAF\x9B\xE5\x88\xBA/\xE6\xB6\x88\xE6\x8A\x96\xE9\x80\xBB\xE8\xBE\x91,\xE8\xBF\x99\xE6\x9C\x89\xE6\x97\xB6\xE9\x9C\x80\xE8\xA6\x81\xE8\xBD\xAF\xE4\xBB\xB6\xE6\x8E\xA7\xE5\x88\xB6\xE3\x80\x82
  60
  61  - \xE8\xBE\x93\xE5\x85\xA5\xE9\x80\x9A\xE5\xB8\xB8\xE5\x8F\xAF\xE4\xBD\x9C\xE4\xB8\xBA IRQ \xE4\xBF\xA1\xE5\x8F\xB7,\xE4\xB8\x80\xE8\x88\xAC\xE6\x98\xAF\xE6\xB2\xBF\xE8\xA7\xA6\xE5\x8F\x91,\xE4\xBD\x86\xE6\x9C\x89\xE6\x97\xB6\xE6\x98\xAF\xE7\x94\xB5\xE5\xB9\xB3\xE8\xA7\xA6\xE5\x8F\x91\xE3\x80\x82\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84 IRQ
  62    \xE5\x8F\xAF\xE8\x83\xBD\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE7\xB3\xBB\xE7\xBB\x9F\xE5\x94\xA4\xE9\x86\x92\xE4\xBA\x8B\xE4\xBB\xB6,\xE4\xBB\xA5\xE5\xB0\x86\xE7\xB3\xBB\xE7\xBB\x9F\xE4\xBB\x8E\xE4\xBD\x8E\xE5\x8A\x9F\xE8\x80\x97\xE7\x8A\xB6\xE6\x80\x81\xE4\xB8\x8B\xE5\x94\xA4\xE9\x86\x92\xE3\x80\x82
  63
  64  - \xE9\x80\x9A\xE5\xB8\xB8\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE6\xA0\xB9\xE6\x8D\xAE\xE4\xB8\x8D\xE5\x90\x8C\xE4\xBA\xA7\xE5\x93\x81\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF\xE7\x9A\x84\xE9\x9C\x80\xE6\xB1\x82,\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE8\xBE\x93\xE5\x85\xA5\xE6\x88\x96\xE8\xBE\x93\xE5\x87\xBA,\xE4\xB9\x9F\xE6\x9C\x89\xE4\xBB\x85
  65    \xE6\x94\xAF\xE6\x8C\x81\xE5\x8D\x95\xE5\x90\x91\xE7\x9A\x84\xE3\x80\x82
  66
  67  - \xE5\xA4\xA7\xE9\x83\xA8\xE5\x88\x86 GPIO \xE5\x8F\xAF\xE4\xBB\xA5\xE5\x9C\xA8\xE6\x8C\x81\xE6\x9C\x89\xE8\x87\xAA\xE6\x97\x8B\xE9\x94\x81\xE6\x97\xB6\xE8\xAE\xBF\xE9\x97\xAE,\xE4\xBD\x86\xE6\x98\xAF\xE9\x80\x9A\xE5\xB8\xB8\xE7\x94\xB1\xE4\xB8\xB2\xE8\xA1\x8C\xE6\x80\xBB\xE7\xBA\xBF\xE6\x89\xA9\xE5\xB1\x95\xE7\x9A\x84 GPIO
  68    \xE4\xB8\x8D\xE5\x85\x81\xE8\xAE\xB8\xE6\x8C\x81\xE6\x9C\x89\xE8\x87\xAA\xE6\x97\x8B\xE9\x94\x81\xE3\x80\x82\xE4\xBD\x86\xE6\x9F\x90\xE4\xBA\x9B\xE7\xB3\xBB\xE7\xBB\x9F\xE4\xB9\x9F\xE6\x94\xAF\xE6\x8C\x81\xE8\xBF\x99\xE7\xA7\x8D\xE7\xB1\xBB\xE5\x9E\x8B\xE3\x80\x82
  69
  70\xE5\xAF\xB9\xE4\xBA\x8E\xE7\xBB\x99\xE5\xAE\x9A\xE7\x9A\x84\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF,\xE6\xAF\x8F\xE4\xB8\xAA GPIO \xE9\x83\xBD\xE7\x94\xA8\xE4\xBA\x8E\xE6\x9F\x90\xE4\xB8\xAA\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE7\x9B\xAE\xE7\x9A\x84,\xE5\xA6\x82\xE7\x9B\x91\xE6\x8E\xA7 MMC/SD \xE5\x8D\xA1\xE7\x9A\x84
  71\xE6\x8F\x92\xE5\x85\xA5/\xE7\xA7\xBB\xE9\x99\xA4\xE3\x80\x81\xE6\xA3\x80\xE6\xB5\x8B\xE5\x8D\xA1\xE7\x9A\x84\xE5\x86\x99\xE4\xBF\x9D\xE6\x8A\xA4\xE7\x8A\xB6\xE6\x80\x81\xE3\x80\x81\xE9\xA9\xB1\xE5\x8A\xA8 LED\xE3\x80\x81\xE9\x85\x8D\xE7\xBD\xAE\xE6\x94\xB6\xE5\x8F\x91\xE5\x99\xA8\xE3\x80\x81\xE6\xA8\xA1\xE6\x8B\x9F\xE4\xB8\xB2\xE8\xA1\x8C\xE6\x80\xBB\xE7\xBA\xBF\xE3\x80\x81
  72\xE5\xA4\x8D\xE4\xBD\x8D\xE7\xA1\xAC\xE4\xBB\xB6\xE7\x9C\x8B\xE9\x97\xA8\xE7\x8B\x97\xE3\x80\x81\xE6\x84\x9F\xE7\x9F\xA5\xE5\xBC\x80\xE5\x85\xB3\xE7\x8A\xB6\xE6\x80\x81\xE7\xAD\x89\xE7\xAD\x89\xE3\x80\x82
  73
  74
  75GPIO \xE5\x85\xAC\xE7\xBA\xA6
  76=========
  77\xE6\xB3\xA8\xE6\x84\x8F,\xE8\xBF\x99\xE4\xB8\xAA\xE5\x8F\xAB\xE5\x81\x9A\xE2\x80\x9C\xE5\x85\xAC\xE7\xBA\xA6\xE2\x80\x9D\xEF\xBC\x8C\xE5\x9B\xA0\xE4\xB8\xBA\xE8\xBF\x99\xE4\xB8\x8D\xE6\x98\xAF\xE5\xBC\xBA\xE5\x88\xB6\xE6\x80\xA7\xE7\x9A\x84\xEF\xBC\x8C\xE4\xB8\x8D\xE9\x81\xB5\xE5\xBE\xAA\xE8\xBF\x99\xE4\xB8\xAA\xE5\x85\xAC\xE7\xBA\xA6\xE6\x98\xAF\xE6\x97\xA0\xE4\xBC\xA4\xE5\xA4\xA7\xE9\x9B\x85\xE7\x9A\x84\xEF\xBC\x8C
  78\xE5\x9B\xA0\xE4\xB8\xBA\xE6\xAD\xA4\xE6\x97\xB6\xE5\x8F\xAF\xE7\xA7\xBB\xE6\xA4\x8D\xE6\x80\xA7\xE5\xB9\xB6\xE4\xB8\x8D\xE9\x87\x8D\xE8\xA6\x81\xE3\x80\x82GPIO \xE5\xB8\xB8\xE7\x94\xA8\xE4\xBA\x8E\xE6\x9D\xBF\xE7\xBA\xA7\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE7\x94\xB5\xE8\xB7\xAF\xE9\x80\xBB\xE8\xBE\x91,\xE7\x94\x9A\xE8\x87\xB3\xE5\x8F\xAF\xE8\x83\xBD
  79\xE9\x9A\x8F\xE7\x9D\x80\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF\xE7\x9A\x84\xE7\x89\x88\xE6\x9C\xAC\xE8\x80\x8C\xE6\x94\xB9\xE5\x8F\x98\xEF\xBC\x8C\xE4\xB8\x94\xE4\xB8\x8D\xE5\x8F\xAF\xE8\x83\xBD\xE5\x9C\xA8\xE4\xB8\x8D\xE5\x90\x8C\xE8\xB5\xB0\xE7\xBA\xBF\xE7\x9A\x84\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF\xE4\xB8\x8A\xE4\xBD\xBF\xE7\x94\xA8\xE3\x80\x82\xE4\xBB\x85\xE6\x9C\x89\xE5\x9C\xA8\xE5\xB0\x91\xE6\x95\xB0
  80\xE5\x8A\x9F\xE8\x83\xBD\xE4\xB8\x8A\xE6\x89\x8D\xE5\x85\xB7\xE6\x9C\x89\xE5\x8F\xAF\xE7\xA7\xBB\xE6\xA4\x8D\xE6\x80\xA7\xEF\xBC\x8C\xE5\x85\xB6\xE4\xBB\x96\xE5\x8A\x9F\xE8\x83\xBD\xE6\x98\xAF\xE5\xB9\xB3\xE5\x8F\xB0\xE7\x89\xB9\xE5\xAE\x9A\xE3\x80\x82\xE8\xBF\x99\xE4\xB9\x9F\xE6\x98\xAF\xE7\x94\xB1\xE4\xBA\x8E\xE2\x80\x9C\xE8\x83\xB6\xE5\x90\x88\xE2\x80\x9D\xE7\x9A\x84\xE9\x80\xBB\xE8\xBE\x91\xE9\x80\xA0\xE6\x88\x90\xE7\x9A\x84\xE3\x80\x82
  81
  82\xE6\xAD\xA4\xE5\xA4\x96\xEF\xBC\x8C\xE8\xBF\x99\xE4\xB8\x8D\xE9\x9C\x80\xE8\xA6\x81\xE4\xBB\xBB\xE4\xBD\x95\xE7\x9A\x84\xE6\x89\xA7\xE8\xA1\x8C\xE6\xA1\x86\xE6\x9E\xB6\xEF\xBC\x8C\xE5\x8F\xAA\xE6\x98\xAF\xE4\xB8\x80\xE4\xB8\xAA\xE6\x8E\xA5\xE5\x8F\xA3\xE3\x80\x82\xE6\x9F\x90\xE4\xB8\xAA\xE5\xB9\xB3\xE5\x8F\xB0\xE5\x8F\xAF\xE8\x83\xBD\xE9\x80\x9A\xE8\xBF\x87\xE4\xB8\x80\xE4\xB8\xAA\xE7\xAE\x80\xE5\x8D\x95\xE5\x9C\xB0
  83\xE8\xAE\xBF\xE9\x97\xAE\xE8\x8A\xAF\xE7\x89\x87\xE5\xAF\x84\xE5\xAD\x98\xE5\x99\xA8\xE7\x9A\x84\xE5\x86\x85\xE8\x81\x94\xE5\x87\xBD\xE6\x95\xB0\xE6\x9D\xA5\xE5\xAE\x9E\xE7\x8E\xB0\xE5\xAE\x83\xEF\xBC\x8C\xE5\x85\xB6\xE4\xBB\x96\xE5\xB9\xB3\xE5\x8F\xB0\xE5\x8F\xAF\xE8\x83\xBD\xE9\x80\x9A\xE8\xBF\x87\xE5\xA7\x94\xE6\x89\x98\xE4\xB8\x80\xE7\xB3\xBB\xE5\x88\x97\xE4\xB8\x8D\xE5\x90\x8C\xE7\x9A\x84GPIO
  84\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE7\x9A\x84\xE6\x8A\xBD\xE8\xB1\xA1\xE5\x87\xBD\xE6\x95\xB0\xE6\x9D\xA5\xE5\xAE\x9E\xE7\x8E\xB0\xE5\xAE\x83\xE3\x80\x82(\xE6\x9C\x89\xE4\xB8\x80\xE4\xBA\x9B\xE5\x8F\xAF\xE9\x80\x89\xE7\x9A\x84\xE4\xBB\xA3\xE7\xA0\x81\xE8\x83\xBD\xE6\x94\xAF\xE6\x8C\x81\xE8\xBF\x99\xE7\xA7\x8D\xE7\xAD\x96\xE7\x95\xA5\xE7\x9A\x84\xE5\xAE\x9E\xE7\x8E\xB0,\xE6\x9C\xAC\xE6\x96\x87\xE6\xA1\xA3
  85\xE5\x90\x8E\xE9\x9D\xA2\xE4\xBC\x9A\xE4\xBB\x8B\xE7\xBB\x8D\xEF\xBC\x8C\xE4\xBD\x86\xE4\xBD\x9C\xE4\xB8\xBA GPIO \xE6\x8E\xA5\xE5\x8F\xA3\xE7\x9A\x84\xE5\xAE\xA2\xE6\x88\xB7\xE7\xAB\xAF\xE9\xA9\xB1\xE5\x8A\xA8\xE7\xA8\x8B\xE5\xBA\x8F\xE5\xBF\x85\xE9\xA1\xBB\xE4\xB8\x8E\xE5\xAE\x83\xE7\x9A\x84\xE5\xAE\x9E\xE7\x8E\xB0\xE6\x97\xA0\xE5\x85\xB3\xE3\x80\x82)
  86
  87\xE4\xB9\x9F\xE5\xB0\xB1\xE6\x98\xAF\xE8\xAF\xB4,\xE5\xA6\x82\xE6\x9E\x9C\xE5\x9C\xA8\xE4\xBB\x96\xE4\xBB\xAC\xE7\x9A\x84\xE5\xB9\xB3\xE5\x8F\xB0\xE4\xB8\x8A\xE6\x94\xAF\xE6\x8C\x81\xE8\xBF\x99\xE4\xB8\xAA\xE5\x85\xAC\xE7\xBA\xA6\xEF\xBC\x8C\xE9\xA9\xB1\xE5\x8A\xA8\xE5\xBA\x94\xE5\xB0\xBD\xE5\x8F\xAF\xE8\x83\xBD\xE7\x9A\x84\xE4\xBD\xBF\xE7\x94\xA8\xE5\xAE\x83\xE3\x80\x82\xE5\x90\x8C\xE6\x97\xB6\xEF\xBC\x8C\xE5\xB9\xB3\xE5\x8F\xB0
  88\xE5\xBF\x85\xE9\xA1\xBB\xE5\x9C\xA8 Kconfig \xE4\xB8\xAD\xE9\x80\x89\xE6\x8B\xA9 ARCH_REQUIRE_GPIOLIB \xE6\x88\x96\xE8\x80\x85 ARCH_WANT_OPTIONAL_GPIOLIB
  89\xE9\x80\x89\xE9\xA1\xB9\xE3\x80\x82\xE9\x82\xA3\xE4\xBA\x9B\xE8\xB0\x83\xE7\x94\xA8\xE6\xA0\x87\xE5\x87\x86 GPIO \xE5\x87\xBD\xE6\x95\xB0\xE7\x9A\x84\xE9\xA9\xB1\xE5\x8A\xA8\xE5\xBA\x94\xE8\xAF\xA5\xE5\x9C\xA8 Kconfig \xE5\x85\xA5\xE5\x8F\xA3\xE4\xB8\xAD\xE5\xA3\xB0\xE6\x98\x8E\xE4\xBE\x9D\xE8\xB5\x96GENERIC_GPIO\xE3\x80\x82
  90\xE5\xBD\x93\xE9\xA9\xB1\xE5\x8A\xA8\xE5\x8C\x85\xE5\x90\xAB\xE6\x96\x87\xE4\xBB\xB6:
  91
  92        #include <linux/gpio.h>
  93
  94\xE5\x88\x99 GPIO \xE5\x87\xBD\xE6\x95\xB0\xE6\x98\xAF\xE5\x8F\xAF\xE7\x94\xA8,\xE6\x97\xA0\xE8\xAE\xBA\xE6\x98\xAF\xE2\x80\x9C\xE7\x9C\x9F\xE5\xAE\x9E\xE4\xBB\xA3\xE7\xA0\x81\xE2\x80\x9D\xE8\xBF\x98\xE6\x98\xAF\xE7\xBB\x8F\xE4\xBC\x98\xE5\x8C\x96\xE8\xBF\x87\xE7\x9A\x84\xE8\xAF\xAD\xE5\x8F\xA5\xE3\x80\x82\xE5\xA6\x82\xE6\x9E\x9C\xE4\xBD\xA0\xE9\x81\xB5\xE5\xAE\x88
  95\xE8\xBF\x99\xE4\xB8\xAA\xE5\x85\xAC\xE7\xBA\xA6\xEF\xBC\x8C\xE5\xBD\x93\xE4\xBD\xA0\xE7\x9A\x84\xE4\xBB\xA3\xE7\xA0\x81\xE5\xAE\x8C\xE6\x88\x90\xE5\x90\x8E\xEF\xBC\x8C\xE5\xAF\xB9\xE5\x85\xB6\xE4\xBB\x96\xE7\x9A\x84\xE5\xBC\x80\xE5\x8F\x91\xE8\x80\x85\xE6\x9D\xA5\xE8\xAF\xB4\xE4\xBC\x9A\xE6\x9B\xB4\xE5\xAE\xB9\xE6\x98\x93\xE7\x9C\x8B\xE6\x87\x82\xE5\x92\x8C\xE7\xBB\xB4\xE6\x8A\xA4\xE3\x80\x82
  96
  97\xE6\xB3\xA8\xE6\x84\x8F\xEF\xBC\x8C\xE8\xBF\x99\xE4\xBA\x9B\xE6\x93\x8D\xE4\xBD\x9C\xE5\x8C\x85\xE5\x90\xAB\xE6\x89\x80\xE7\x94\xA8\xE5\xB9\xB3\xE5\x8F\xB0\xE7\x9A\x84 I/O \xE5\xB1\x8F\xE9\x9A\x9C\xE4\xBB\xA3\xE7\xA0\x81\xEF\xBC\x8C\xE9\xA9\xB1\xE5\x8A\xA8\xE6\x97\xA0\xE9\xA1\xBB\xE6\x98\xBE\xE5\xBC\x8F\xE5\x9C\xB0\xE8\xB0\x83\xE7\x94\xA8\xE4\xBB\x96\xE4\xBB\xAC\xE3\x80\x82
  98
  99
 100\xE6\xA0\x87\xE8\xAF\x86 GPIO
 101---------
 102GPIO \xE6\x98\xAF\xE9\x80\x9A\xE8\xBF\x87\xE6\x97\xA0\xE7\xAC\xA6\xE5\x8F\xB7\xE6\x95\xB4\xE5\x9E\x8B\xE6\x9D\xA5\xE6\xA0\x87\xE8\xAF\x86\xE7\x9A\x84,\xE8\x8C\x83\xE5\x9B\xB4\xE6\x98\xAF 0 \xE5\x88\xB0 MAX_INT\xE3\x80\x82\xE4\xBF\x9D\xE7\x95\x99\xE2\x80\x9C\xE8\xB4\x9F\xE2\x80\x9D\xE6\x95\xB0
 103\xE7\x94\xA8\xE4\xBA\x8E\xE5\x85\xB6\xE4\xBB\x96\xE7\x9B\xAE\xE7\x9A\x84,\xE4\xBE\x8B\xE5\xA6\x82\xE6\xA0\x87\xE8\xAF\x86\xE4\xBF\xA1\xE5\x8F\xB7\xE2\x80\x9C\xE5\x9C\xA8\xE8\xBF\x99\xE4\xB8\xAA\xE6\x9D\xBF\xE5\xAD\x90\xE4\xB8\x8A\xE4\xB8\x8D\xE5\x8F\xAF\xE7\x94\xA8\xE2\x80\x9D\xE6\x88\x96\xE6\x8C\x87\xE7\xA4\xBA\xE9\x94\x99\xE8\xAF\xAF\xE3\x80\x82\xE6\x9C\xAA\xE6\x8E\xA5\xE8\xA7\xA6\xE5\xBA\x95\xE5\xB1\x82
 104\xE7\xA1\xAC\xE4\xBB\xB6\xE7\x9A\x84\xE4\xBB\xA3\xE7\xA0\x81\xE4\xBC\x9A\xE5\xBF\xBD\xE7\x95\xA5\xE8\xBF\x99\xE4\xBA\x9B\xE6\x95\xB4\xE6\x95\xB0\xE3\x80\x82
 105
 106\xE5\xB9\xB3\xE5\x8F\xB0\xE4\xBC\x9A\xE5\xAE\x9A\xE4\xB9\x89\xE8\xBF\x99\xE4\xBA\x9B\xE6\x95\xB4\xE6\x95\xB0\xE7\x9A\x84\xE7\x94\xA8\xE6\xB3\x95,\xE4\xB8\x94\xE9\x80\x9A\xE5\xB8\xB8\xE4\xBD\xBF\xE7\x94\xA8 #define \xE6\x9D\xA5\xE5\xAE\x9A\xE4\xB9\x89 GPIO\xEF\xBC\x8C\xE8\xBF\x99\xE6\xA0\xB7
 107\xE6\x9D\xBF\xE7\xBA\xA7\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE5\x90\xAF\xE5\x8A\xA8\xE4\xBB\xA3\xE7\xA0\x81\xE5\x8F\xAF\xE4\xBB\xA5\xE7\x9B\xB4\xE6\x8E\xA5\xE5\x85\xB3\xE8\x81\x94\xE7\x9B\xB8\xE5\xBA\x94\xE7\x9A\x84\xE5\x8E\x9F\xE7\x90\x86\xE5\x9B\xBE\xE3\x80\x82\xE7\x9B\xB8\xE5\xAF\xB9\xE6\x9D\xA5\xE8\xAF\xB4\xEF\xBC\x8C\xE9\xA9\xB1\xE5\x8A\xA8\xE5\xBA\x94\xE8\xAF\xA5\xE4\xBB\x85\xE4\xBD\xBF\xE7\x94\xA8
 108\xE5\x90\xAF\xE5\x8A\xA8\xE4\xBB\xA3\xE7\xA0\x81\xE4\xBC\xA0\xE9\x80\x92\xE8\xBF\x87\xE6\x9D\xA5\xE7\x9A\x84 GPIO \xE7\xBC\x96\xE5\x8F\xB7\xEF\xBC\x8C\xE4\xBD\xBF\xE7\x94\xA8 platform_data \xE4\xBF\x9D\xE5\xAD\x98\xE6\x9D\xBF\xE7\xBA\xA7\xE7\x89\xB9\xE5\xAE\x9A
 109\xE5\xBC\x95\xE8\x84\x9A\xE9\x85\x8D\xE7\xBD\xAE\xE6\x95\xB0\xE6\x8D\xAE (\xE5\x90\x8C\xE6\x97\xB6\xE8\xBF\x98\xE6\x9C\x89\xE5\x85\xB6\xE4\xBB\x96\xE9\xA1\xBB\xE8\xA6\x81\xE7\x9A\x84\xE6\x9D\xBF\xE7\xBA\xA7\xE7\x89\xB9\xE5\xAE\x9A\xE6\x95\xB0\xE6\x8D\xAE)\xEF\xBC\x8C\xE9\x81\xBF\xE5\x85\x8D\xE5\x8F\xAF\xE8\x83\xBD\xE5\x87\xBA\xE7\x8E\xB0\xE7\x9A\x84\xE9\x97\xAE\xE9\xA2\x98\xE3\x80\x82
 110
 111\xE4\xBE\x8B\xE5\xA6\x82\xE4\xB8\x80\xE4\xB8\xAA\xE5\xB9\xB3\xE5\x8F\xB0\xE4\xBD\xBF\xE7\x94\xA8\xE7\xBC\x96\xE5\x8F\xB7 32-159 \xE6\x9D\xA5\xE6\xA0\x87\xE8\xAF\x86 GPIO,\xE8\x80\x8C\xE5\x9C\xA8\xE5\x8F\xA6\xE4\xB8\x80\xE4\xB8\xAA\xE5\xB9\xB3\xE5\x8F\xB0\xE4\xBD\xBF\xE7\x94\xA8\xE7\xBC\x96\xE5\x8F\xB70-63
 112\xE6\xA0\x87\xE8\xAF\x86\xE4\xB8\x80\xE7\xBB\x84 GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8,64-79\xE6\xA0\x87\xE8\xAF\x86\xE5\x8F\xA6\xE4\xB8\x80\xE7\xB1\xBB GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8,\xE4\xB8\x94\xE5\x9C\xA8\xE4\xB8\x80\xE4\xB8\xAA\xE5\x90\xAB\xE6\x9C\x89
 113FPGA \xE7\x9A\x84\xE7\x89\xB9\xE5\xAE\x9A\xE6\x9D\xBF\xE5\xAD\x90\xE4\xB8\x8A\xE4\xBD\xBF\xE7\x94\xA8 80-95\xE3\x80\x82\xE7\xBC\x96\xE5\x8F\xB7\xE4\xB8\x8D\xE4\xB8\x80\xE5\xAE\x9A\xE8\xA6\x81\xE8\xBF\x9E\xE7\xBB\xAD,\xE9\x82\xA3\xE4\xBA\x9B\xE5\xB9\xB3\xE5\x8F\xB0\xE4\xB8\xAD\xEF\xBC\x8C\xE4\xB9\x9F\xE5\x8F\xAF\xE4\xBB\xA5
 114\xE4\xBD\xBF\xE7\x94\xA8\xE7\xBC\x96\xE5\x8F\xB72000-2063\xE6\x9D\xA5\xE6\xA0\x87\xE8\xAF\x86\xE4\xB8\x80\xE4\xB8\xAA I2C \xE6\x8E\xA5\xE5\x8F\xA3\xE7\x9A\x84 GPIO \xE6\x89\xA9\xE5\xB1\x95\xE5\x99\xA8\xE4\xB8\xAD\xE7\x9A\x84 GPIO\xE3\x80\x82
 115
 116\xE5\xA6\x82\xE6\x9E\x9C\xE4\xBD\xA0\xE8\xA6\x81\xE5\x88\x9D\xE5\xA7\x8B\xE5\x8C\x96\xE4\xB8\x80\xE4\xB8\xAA\xE5\xB8\xA6\xE6\x9C\x89\xE6\x97\xA0\xE6\x95\x88 GPIO \xE7\xBC\x96\xE5\x8F\xB7\xE7\x9A\x84\xE7\xBB\x93\xE6\x9E\x84\xE4\xBD\x93,\xE5\x8F\xAF\xE4\xBB\xA5\xE4\xBD\xBF\xE7\x94\xA8\xE4\xB8\x80\xE4\xBA\x9B\xE8\xB4\x9F\xE7\xBC\x96\xE7\xA0\x81
 117(\xE5\xA6\x82"-EINVAL")\xEF\xBC\x8C\xE9\x82\xA3\xE5\xB0\x86\xE4\xBD\xBF\xE5\x85\xB6\xE6\xB0\xB8\xE8\xBF\x9C\xE4\xB8\x8D\xE4\xBC\x9A\xE6\x98\xAF\xE6\x9C\x89\xE6\x95\x88\xE3\x80\x82\xE6\x9D\xA5\xE6\xB5\x8B\xE8\xAF\x95\xE8\xBF\x99\xE6\xA0\xB7\xE4\xB8\x80\xE4\xB8\xAA\xE7\xBB\x93\xE6\x9E\x84\xE4\xBD\x93\xE4\xB8\xAD\xE7\x9A\x84\xE7\xBC\x96\xE5\x8F\xB7
 118\xE6\x98\xAF\xE5\x90\xA6\xE5\x85\xB3\xE8\x81\x94\xE4\xB8\x80\xE4\xB8\xAA GPIO\xEF\xBC\x8C\xE4\xBD\xA0\xE5\x8F\xAF\xE4\xBD\xBF\xE7\x94\xA8\xE4\xBB\xA5\xE4\xB8\x8B\xE6\x96\xAD\xE8\xA8\x80:
 119
 120        int gpio_is_valid(int number);
 121
 122\xE5\xA6\x82\xE6\x9E\x9C\xE7\xBC\x96\xE5\x8F\xB7\xE4\xB8\x8D\xE5\xAD\x98\xE5\x9C\xA8\xEF\xBC\x8C\xE5\x88\x99\xE8\xAF\xB7\xE6\xB1\x82\xE5\x92\x8C\xE9\x87\x8A\xE6\x94\xBE GPIO \xE7\x9A\x84\xE5\x87\xBD\xE6\x95\xB0\xE5\xB0\x86\xE6\x8B\x92\xE7\xBB\x9D\xE6\x89\xA7\xE8\xA1\x8C\xE7\x9B\xB8\xE5\x85\xB3\xE6\x93\x8D\xE4\xBD\x9C(\xE8\xA7\x81\xE4\xB8\x8B\xE6\x96\x87)\xE3\x80\x82
 123\xE5\x85\xB6\xE4\xBB\x96\xE7\xBC\x96\xE5\x8F\xB7\xE4\xB9\x9F\xE5\x8F\xAF\xE8\x83\xBD\xE8\xA2\xAB\xE6\x8B\x92\xE7\xBB\x9D,\xE6\xAF\x94\xE5\xA6\x82\xE4\xB8\x80\xE4\xB8\xAA\xE7\xBC\x96\xE5\x8F\xB7\xE5\x8F\xAF\xE8\x83\xBD\xE5\xAD\x98\xE5\x9C\xA8\xEF\xBC\x8C\xE4\xBD\x86\xE6\x9A\x82\xE6\x97\xB6\xE5\x9C\xA8\xE7\xBB\x99\xE5\xAE\x9A\xE7\x9A\x84\xE7\x94\xB5\xE8\xB7\xAF\xE4\xB8\x8A\xE4\xB8\x8D\xE5\x8F\xAF\xE7\x94\xA8\xE3\x80\x82
 124
 125\xE4\xB8\x80\xE4\xB8\xAA\xE5\xB9\xB3\xE5\x8F\xB0\xE6\x98\xAF\xE5\x90\xA6\xE6\x94\xAF\xE6\x8C\x81\xE5\xA4\x9A\xE4\xB8\xAA GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE4\xB8\xBA\xE5\xB9\xB3\xE5\x8F\xB0\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE5\xAE\x9E\xE7\x8E\xB0\xE9\x97\xAE\xE9\xA2\x98\xEF\xBC\x8C\xE5\xB0\xB1\xE5\x83\x8F\xE6\x98\xAF\xE5\x90\xA6\xE5\x8F\xAF\xE4\xBB\xA5
 126\xE5\x9C\xA8 GPIO \xE7\xBC\x96\xE5\x8F\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE4\xB8\xAD\xE6\x9C\x89\xE2\x80\x9C\xE7\xA9\xBA\xE6\xB4\x9E\xE2\x80\x9D\xE5\x92\x8C\xE6\x98\xAF\xE5\x90\xA6\xE5\x8F\xAF\xE4\xBB\xA5\xE5\x9C\xA8\xE8\xBF\x90\xE8\xA1\x8C\xE6\x97\xB6\xE6\xB7\xBB\xE5\x8A\xA0\xE6\x96\xB0\xE7\x9A\x84\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE4\xB8\x80\xE6\xA0\xB7\xE3\x80\x82
 127\xE8\xBF\x99\xE4\xBA\x9B\xE9\x97\xAE\xE9\xA2\x98\xE4\xBC\x9A\xE5\xBD\xB1\xE5\x93\x8D\xE5\x85\xB6\xE4\xBB\x96\xE4\xBA\x8B\xE6\x83\x85\xEF\xBC\x8C\xE5\x8C\x85\xE6\x8B\xAC\xE7\x9B\xB8\xE9\x82\xBB\xE7\x9A\x84 GPIO \xE7\xBC\x96\xE5\x8F\xB7\xE6\x98\xAF\xE5\x90\xA6\xE5\xAD\x98\xE5\x9C\xA8\xE7\xAD\x89\xE3\x80\x82
 128
 129\xE4\xBD\xBF\xE7\x94\xA8 GPIO
 130---------
 131\xE5\xAF\xB9\xE4\xBA\x8E\xE4\xB8\x80\xE4\xB8\xAA GPIO\xEF\xBC\x8C\xE7\xB3\xBB\xE7\xBB\x9F\xE5\xBA\x94\xE8\xAF\xA5\xE5\x81\x9A\xE7\x9A\x84\xE7\xAC\xAC\xE4\xB8\x80\xE4\xBB\xB6\xE4\xBA\x8B\xE6\x83\x85\xE5\xB0\xB1\xE6\x98\xAF\xE9\x80\x9A\xE8\xBF\x87 gpio_request()
 132\xE5\x87\xBD\xE6\x95\xB0\xE5\x88\x86\xE9\x85\x8D\xE5\xAE\x83\xEF\xBC\x8C\xE8\xA7\x81\xE4\xB8\x8B\xE6\x96\x87\xE3\x80\x82
 133
 134\xE6\x8E\xA5\xE4\xB8\x8B\xE6\x9D\xA5\xE6\x98\xAF\xE8\xAE\xBE\xE7\xBD\xAEI/O\xE6\x96\xB9\xE5\x90\x91\xEF\xBC\x8C\xE8\xBF\x99\xE9\x80\x9A\xE5\xB8\xB8\xE6\x98\xAF\xE5\x9C\xA8\xE6\x9D\xBF\xE7\xBA\xA7\xE5\x90\xAF\xE5\x8A\xA8\xE4\xBB\xA3\xE7\xA0\x81\xE4\xB8\xAD\xE4\xB8\xBA\xE6\x89\x80\xE4\xBD\xBF\xE7\x94\xA8\xE7\x9A\x84 GPIO \xE8\xAE\xBE\xE7\xBD\xAE
 135platform_device \xE6\x97\xB6\xE5\xAE\x8C\xE6\x88\x90\xE3\x80\x82
 136
 137        /* \xE8\xAE\xBE\xE7\xBD\xAE\xE4\xB8\xBA\xE8\xBE\x93\xE5\x85\xA5\xE6\x88\x96\xE8\xBE\x93\xE5\x87\xBA, \xE8\xBF\x94\xE5\x9B\x9E 0 \xE6\x88\x96\xE8\xB4\x9F\xE7\x9A\x84\xE9\x94\x99\xE8\xAF\xAF\xE4\xBB\xA3\xE7\xA0\x81 */
 138        int gpio_direction_input(unsigned gpio);
 139        int gpio_direction_output(unsigned gpio, int value);
 140
 141\xE8\xBF\x94\xE5\x9B\x9E\xE5\x80\xBC\xE4\xB8\xBA\xE9\x9B\xB6\xE4\xBB\xA3\xE8\xA1\xA8\xE6\x88\x90\xE5\x8A\x9F\xEF\xBC\x8C\xE5\x90\xA6\xE5\x88\x99\xE8\xBF\x94\xE5\x9B\x9E\xE4\xB8\x80\xE4\xB8\xAA\xE8\xB4\x9F\xE7\x9A\x84\xE9\x94\x99\xE8\xAF\xAF\xE4\xBB\xA3\xE7\xA0\x81\xE3\x80\x82\xE8\xBF\x99\xE4\xB8\xAA\xE8\xBF\x94\xE5\x9B\x9E\xE5\x80\xBC\xE9\x9C\x80\xE8\xA6\x81\xE6\xA3\x80\xE6\x9F\xA5\xEF\xBC\x8C\xE5\x9B\xA0\xE4\xB8\xBA
 142get/set(\xE8\x8E\xB7\xE5\x8F\x96/\xE8\xAE\xBE\xE7\xBD\xAE)\xE5\x87\xBD\xE6\x95\xB0\xE8\xB0\x83\xE7\x94\xA8\xE6\xB2\xA1\xE6\xB3\x95\xE8\xBF\x94\xE5\x9B\x9E\xE9\x94\x99\xE8\xAF\xAF,\xE4\xB8\x94\xE6\x9C\x89\xE5\x8F\xAF\xE8\x83\xBD\xE6\x98\xAF\xE9\x85\x8D\xE7\xBD\xAE\xE9\x94\x99\xE8\xAF\xAF\xE3\x80\x82\xE9\x80\x9A\xE5\xB8\xB8\xEF\xBC\x8C
 143\xE4\xBD\xA0\xE5\xBA\x94\xE8\xAF\xA5\xE5\x9C\xA8\xE8\xBF\x9B\xE7\xA8\x8B\xE4\xB8\x8A\xE4\xB8\x8B\xE6\x96\x87\xE4\xB8\xAD\xE8\xB0\x83\xE7\x94\xA8\xE8\xBF\x99\xE4\xBA\x9B\xE5\x87\xBD\xE6\x95\xB0\xE3\x80\x82\xE7\x84\xB6\xE8\x80\x8C,\xE5\xAF\xB9\xE4\xBA\x8E\xE8\x87\xAA\xE6\x97\x8B\xE9\x94\x81\xE5\xAE\x89\xE5\x85\xA8\xE7\x9A\x84 GPIO\xEF\xBC\x8C\xE5\x9C\xA8\xE6\x9D\xBF\xE5\xAD\x90
 144\xE5\x90\xAF\xE5\x8A\xA8\xE7\x9A\x84\xE6\x97\xA9\xE6\x9C\x9F\xE3\x80\x81\xE8\xBF\x9B\xE7\xA8\x8B\xE5\x90\xAF\xE5\x8A\xA8\xE5\x89\x8D\xE4\xBD\xBF\xE7\x94\xA8\xE4\xBB\x96\xE4\xBB\xAC\xE4\xB9\x9F\xE6\x98\xAF\xE5\x8F\xAF\xE4\xBB\xA5\xE7\x9A\x84\xE3\x80\x82
 145
 146\xE5\xAF\xB9\xE4\xBA\x8E\xE4\xBD\x9C\xE4\xB8\xBA\xE8\xBE\x93\xE5\x87\xBA\xE7\x9A\x84 GPIO\xEF\xBC\x8C\xE4\xB8\xBA\xE5\x85\xB6\xE6\x8F\x90\xE4\xBE\x9B\xE5\x88\x9D\xE5\xA7\x8B\xE8\xBE\x93\xE5\x87\xBA\xE5\x80\xBC\xEF\xBC\x8C\xE5\xAF\xB9\xE4\xBA\x8E\xE9\x81\xBF\xE5\x85\x8D\xE5\x9C\xA8\xE7\xB3\xBB\xE7\xBB\x9F\xE5\x90\xAF\xE5\x8A\xA8\xE6\x9C\x9F\xE9\x97\xB4\xE5\x87\xBA\xE7\x8E\xB0
 147\xE4\xBF\xA1\xE5\x8F\xB7\xE6\xAF\x9B\xE5\x88\xBA\xE6\x98\xAF\xE5\xBE\x88\xE6\x9C\x89\xE5\xB8\xAE\xE5\x8A\xA9\xE7\x9A\x84\xE3\x80\x82
 148
 149\xE4\xB8\xBA\xE4\xBA\x86\xE4\xB8\x8E\xE4\xBC\xA0\xE7\xBB\x9F\xE7\x9A\x84 GPIO \xE6\x8E\xA5\xE5\x8F\xA3\xE5\x85\xBC\xE5\xAE\xB9, \xE5\x9C\xA8\xE8\xAE\xBE\xE7\xBD\xAE\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE6\x96\xB9\xE5\x90\x91\xE6\x97\xB6\xEF\xBC\x8C\xE5\xA6\x82\xE6\x9E\x9C\xE5\xAE\x83\xE8\xBF\x98\xE6\x9C\xAA\xE8\xA2\xAB\xE7\x94\xB3\xE8\xAF\xB7\xEF\xBC\x8C
 150\xE5\x88\x99\xE9\x9A\x90\xE5\x90\xAB\xE4\xBA\x86\xE7\x94\xB3\xE8\xAF\xB7\xE9\x82\xA3\xE4\xB8\xAA GPIO \xE7\x9A\x84\xE6\x93\x8D\xE4\xBD\x9C(\xE8\xA7\x81\xE4\xB8\x8B\xE6\x96\x87)\xE3\x80\x82\xE8\xBF\x99\xE7\xA7\x8D\xE5\x85\xBC\xE5\xAE\xB9\xE6\x80\xA7\xE6\xAD\xA3\xE5\x9C\xA8\xE4\xBB\x8E\xE5\x8F\xAF\xE9\x80\x89\xE7\x9A\x84 gpiolib
 151\xE6\xA1\x86\xE6\x9E\xB6\xE4\xB8\xAD\xE7\xA7\xBB\xE9\x99\xA4\xE3\x80\x82
 152
 153\xE5\xA6\x82\xE6\x9E\x9C\xE8\xBF\x99\xE4\xB8\xAA GPIO \xE7\xBC\x96\xE7\xA0\x81\xE4\xB8\x8D\xE5\xAD\x98\xE5\x9C\xA8\xEF\xBC\x8C\xE6\x88\x96\xE8\x80\x85\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84 GPIO \xE4\xB8\x8D\xE8\x83\xBD\xE7\x94\xA8\xE4\xBA\x8E\xE9\x82\xA3\xE7\xA7\x8D\xE6\xA8\xA1\xE5\xBC\x8F\xEF\xBC\x8C\xE5\x88\x99\xE6\x96\xB9\xE5\x90\x91
 154\xE8\xAE\xBE\xE7\xBD\xAE\xE5\x8F\xAF\xE8\x83\xBD\xE5\xA4\xB1\xE8\xB4\xA5\xE3\x80\x82\xE4\xBE\x9D\xE8\xB5\x96\xE5\x90\xAF\xE5\x8A\xA8\xE5\x9B\xBA\xE4\xBB\xB6\xE6\x9D\xA5\xE6\xAD\xA3\xE7\xA1\xAE\xE5\x9C\xB0\xE8\xAE\xBE\xE7\xBD\xAE\xE6\x96\xB9\xE5\x90\x91\xE9\x80\x9A\xE5\xB8\xB8\xE6\x98\xAF\xE4\xB8\x80\xE4\xB8\xAA\xE5\x9D\x8F\xE4\xB8\xBB\xE6\x84\x8F\xEF\xBC\x8C\xE5\x9B\xA0\xE4\xB8\xBA\xE5\xAE\x83\xE5\x8F\xAF\xE8\x83\xBD
 155\xE9\x99\xA4\xE4\xBA\x86\xE5\x90\xAF\xE5\x8A\xA8Linux\xEF\xBC\x8C\xE5\xB9\xB6\xE6\xB2\xA1\xE6\x9C\x89\xE5\x81\x9A\xE6\x9B\xB4\xE5\xA4\x9A\xE7\x9A\x84\xE9\xAA\x8C\xE8\xAF\x81\xE5\xB7\xA5\xE4\xBD\x9C\xE3\x80\x82(\xE5\x90\x8C\xE7\x90\x86, \xE6\x9D\xBF\xE5\xAD\x90\xE7\x9A\x84\xE5\x90\xAF\xE5\x8A\xA8\xE4\xBB\xA3\xE7\xA0\x81\xE5\x8F\xAF\xE8\x83\xBD\xE9\x9C\x80\xE8\xA6\x81
 156\xE5\xB0\x86\xE8\xBF\x99\xE4\xB8\xAA\xE5\xA4\x8D\xE7\x94\xA8\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xE8\xAE\xBE\xE7\xBD\xAE\xE4\xB8\xBA GPIO\xEF\xBC\x8C\xE5\xB9\xB6\xE6\xAD\xA3\xE7\xA1\xAE\xE5\x9C\xB0\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\x8A\xE6\x8B\x89/\xE4\xB8\x8B\xE6\x8B\x89\xE7\x94\xB5\xE9\x98\xBB\xE3\x80\x82)
 157
 158
 159\xE8\xAE\xBF\xE9\x97\xAE\xE8\x87\xAA\xE6\x97\x8B\xE9\x94\x81\xE5\xAE\x89\xE5\x85\xA8\xE7\x9A\x84 GPIO
 160-------------------
 161\xE5\xA4\xA7\xE5\xA4\x9A\xE6\x95\xB0 GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x80\x9A\xE8\xBF\x87\xE5\x86\x85\xE5\xAD\x98\xE8\xAF\xBB/\xE5\x86\x99\xE6\x8C\x87\xE4\xBB\xA4\xE6\x9D\xA5\xE8\xAE\xBF\xE9\x97\xAE\xE3\x80\x82\xE8\xBF\x99\xE4\xBA\x9B\xE6\x8C\x87\xE4\xBB\xA4\xE4\xB8\x8D\xE4\xBC\x9A\xE4\xBC\x91\xE7\x9C\xA0,\xE5\x8F\xAF\xE4\xBB\xA5
 162\xE5\xAE\x89\xE5\x85\xA8\xE5\x9C\xB0\xE5\x9C\xA8\xE7\xA1\xAC(\xE9\x9D\x9E\xE7\xBA\xBF\xE7\xA8\x8B)\xE4\xB8\xAD\xE6\x96\xAD\xE4\xBE\x8B\xE7\xA8\x8B\xE5\x92\x8C\xE7\xB1\xBB\xE4\xBC\xBC\xE7\x9A\x84\xE4\xB8\x8A\xE4\xB8\x8B\xE6\x96\x87\xE4\xB8\xAD\xE5\xAE\x8C\xE6\x88\x90\xE3\x80\x82
 163
 164\xE5\xAF\xB9\xE4\xBA\x8E\xE9\x82\xA3\xE4\xBA\x9B\xE7\x94\xA8 gpio_cansleep()\xE6\xB5\x8B\xE8\xAF\x95\xE6\x80\xBB\xE6\x98\xAF\xE8\xBF\x94\xE5\x9B\x9E\xE5\xA4\xB1\xE8\xB4\xA5\xE7\x9A\x84 GPIO(\xE8\xA7\x81\xE4\xB8\x8B\xE6\x96\x87)\xEF\xBC\x8C\xE4\xBD\xBF\xE7\x94\xA8
 165\xE4\xBB\xA5\xE4\xB8\x8B\xE7\x9A\x84\xE5\x87\xBD\xE6\x95\xB0\xE8\xAE\xBF\xE9\x97\xAE:
 166
 167        /* GPIO \xE8\xBE\x93\xE5\x85\xA5:\xE8\xBF\x94\xE5\x9B\x9E\xE9\x9B\xB6\xE6\x88\x96\xE9\x9D\x9E\xE9\x9B\xB6 */
 168        int gpio_get_value(unsigned gpio);
 169
 170        /* GPIO \xE8\xBE\x93\xE5\x87\xBA */
 171        void gpio_set_value(unsigned gpio, int value);
 172
 173GPIO\xE5\x80\xBC\xE6\x98\xAF\xE5\xB8\x83\xE5\xB0\x94\xE5\x80\xBC\xEF\xBC\x8C\xE9\x9B\xB6\xE8\xA1\xA8\xE7\xA4\xBA\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3\xEF\xBC\x8C\xE9\x9D\x9E\xE9\x9B\xB6\xE8\xA1\xA8\xE7\xA4\xBA\xE9\xAB\x98\xE7\x94\xB5\xE5\xB9\xB3\xE3\x80\x82\xE5\xBD\x93\xE8\xAF\xBB\xE5\x8F\x96\xE4\xB8\x80\xE4\xB8\xAA\xE8\xBE\x93\xE5\x87\xBA\xE5\xBC\x95\xE8\x84\x9A\xE7\x9A\x84\xE5\x80\xBC\xE6\x97\xB6\xEF\xBC\x8C
 174\xE8\xBF\x94\xE5\x9B\x9E\xE5\x80\xBC\xE5\xBA\x94\xE8\xAF\xA5\xE6\x98\xAF\xE5\xBC\x95\xE8\x84\x9A\xE4\xB8\x8A\xE7\x9A\x84\xE5\x80\xBC\xE3\x80\x82\xE8\xBF\x99\xE4\xB8\xAA\xE5\x80\xBC\xE4\xB8\x8D\xE6\x80\xBB\xE6\x98\xAF\xE5\x92\x8C\xE8\xBE\x93\xE5\x87\xBA\xE5\x80\xBC\xE7\x9B\xB8\xE7\xAC\xA6\xEF\xBC\x8C\xE5\x9B\xA0\xE4\xB8\xBA\xE5\xAD\x98\xE5\x9C\xA8\xE5\xBC\x80\xE6\xBC\x8F\xE8\xBE\x93\xE5\x87\xBA\xE4\xBF\xA1\xE5\x8F\xB7\xE5\x92\x8C
 175\xE8\xBE\x93\xE5\x87\xBA\xE5\xBB\xB6\xE8\xBF\x9F\xE9\x97\xAE\xE9\xA2\x98\xE3\x80\x82
 176
 177\xE4\xBB\xA5\xE4\xB8\x8A\xE7\x9A\x84 get/set \xE5\x87\xBD\xE6\x95\xB0\xE6\x97\xA0\xE9\x94\x99\xE8\xAF\xAF\xE8\xBF\x94\xE5\x9B\x9E\xE5\x80\xBC\xEF\xBC\x8C\xE5\x9B\xA0\xE4\xB8\xBA\xE4\xB9\x8B\xE5\x89\x8D gpio_direction_*()\xE5\xBA\x94\xE5\xB7\xB2\xE6\xA3\x80\xE6\x9F\xA5\xE8\xBF\x87
 178\xE5\x85\xB6\xE6\x98\xAF\xE5\x90\xA6\xE4\xB8\xBA\xE2\x80\x9C\xE6\x97\xA0\xE6\x95\x88GPIO\xE2\x80\x9D\xE3\x80\x82\xE6\xAD\xA4\xE5\xA4\x96\xEF\xBC\x8C\xE8\xBF\x98\xE9\x9C\x80\xE8\xA6\x81\xE6\xB3\xA8\xE6\x84\x8F\xE7\x9A\x84\xE6\x98\xAF\xE5\xB9\xB6\xE4\xB8\x8D\xE6\x98\xAF\xE6\x89\x80\xE6\x9C\x89\xE5\xB9\xB3\xE5\x8F\xB0\xE9\x83\xBD\xE5\x8F\xAF\xE4\xBB\xA5\xE4\xBB\x8E\xE8\xBE\x93\xE5\x87\xBA\xE5\xBC\x95\xE8\x84\x9A
 179\xE4\xB8\xAD\xE8\xAF\xBB\xE5\x8F\x96\xE6\x95\xB0\xE6\x8D\xAE\xEF\xBC\x8C\xE5\xAF\xB9\xE4\xBA\x8E\xE4\xB8\x8D\xE8\x83\xBD\xE8\xAF\xBB\xE5\x8F\x96\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xE5\xBA\x94\xE6\x80\xBB\xE8\xBF\x94\xE5\x9B\x9E\xE9\x9B\xB6\xE3\x80\x82\xE5\x8F\xA6\xE5\xA4\x96\xEF\xBC\x8C\xE5\xAF\xB9\xE9\x82\xA3\xE4\xBA\x9B\xE5\x9C\xA8\xE5\x8E\x9F\xE5\xAD\x90\xE4\xB8\x8A\xE4\xB8\x8B\xE6\x96\x87\xE4\xB8\xAD\xE6\x97\xA0\xE6\xB3\x95
 180\xE5\xAE\x89\xE5\x85\xA8\xE8\xAE\xBF\xE9\x97\xAE\xE7\x9A\x84 GPIO (\xE8\xAF\x91\xE8\x80\x85\xE6\xB3\xA8\xEF\xBC\x9A\xE5\x9B\xA0\xE4\xB8\xBA\xE8\xAE\xBF\xE9\x97\xAE\xE5\x8F\xAF\xE8\x83\xBD\xE5\xAF\xBC\xE8\x87\xB4\xE4\xBC\x91\xE7\x9C\xA0)\xE4\xBD\xBF\xE7\x94\xA8\xE8\xBF\x99\xE4\xBA\x9B\xE5\x87\xBD\xE6\x95\xB0\xE6\x98\xAF\xE4\xB8\x8D\xE5\x90\x88\xE9\x80\x82\xE7\x9A\x84
 181(\xE8\xA7\x81\xE4\xB8\x8B\xE6\x96\x87)\xE3\x80\x82
 182
 183\xE5\x9C\xA8 GPIO \xE7\xBC\x96\xE5\x8F\xB7(\xE8\xBF\x98\xE6\x9C\x89\xE8\xBE\x93\xE5\x87\xBA\xE3\x80\x81\xE5\x80\xBC)\xE4\xB8\xBA\xE5\xB8\xB8\xE6\x95\xB0\xE7\x9A\x84\xE6\x83\x85\xE5\x86\xB5\xE4\xB8\x8B,\xE9\xBC\x93\xE5\x8A\xB1\xE9\x80\x9A\xE8\xBF\x87\xE5\xB9\xB3\xE5\x8F\xB0\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE5\xAE\x9E\xE7\x8E\xB0\xE6\x9D\xA5\xE4\xBC\x98\xE5\x8C\x96
 184\xE8\xBF\x99\xE4\xB8\xA4\xE4\xB8\xAA\xE5\x87\xBD\xE6\x95\xB0\xE6\x9D\xA5\xE8\xAE\xBF\xE9\x97\xAE GPIO \xE5\x80\xBC\xE3\x80\x82\xE8\xBF\x99\xE7\xA7\x8D\xE6\x83\x85\xE5\x86\xB5(\xE8\xAF\xBB\xE5\x86\x99\xE4\xB8\x80\xE4\xB8\xAA\xE7\xA1\xAC\xE4\xBB\xB6\xE5\xAF\x84\xE5\xAD\x98\xE5\x99\xA8)\xE4\xB8\x8B\xE5\x8F\xAA\xE9\x9C\x80\xE8\xA6\x81\xE5\x87\xA0\xE6\x9D\xA1\xE6\x8C\x87\xE4\xBB\xA4
 185\xE6\x98\xAF\xE5\xBE\x88\xE6\xAD\xA3\xE5\xB8\xB8\xE7\x9A\x84,\xE4\xB8\x94\xE6\x97\xA0\xE9\xA1\xBB\xE8\x87\xAA\xE6\x97\x8B\xE9\x94\x81\xE3\x80\x82\xE8\xBF\x99\xE7\xA7\x8D\xE4\xBC\x98\xE5\x8C\x96\xE5\x87\xBD\xE6\x95\xB0\xE6\xAF\x94\xE8\xB5\xB7\xE9\x82\xA3\xE4\xBA\x9B\xE5\x9C\xA8\xE5\xAD\x90\xE7\xA8\x8B\xE5\xBA\x8F\xE4\xB8\x8A\xE8\x8A\xB1\xE8\xB4\xB9\xE8\xAE\xB8\xE5\xA4\x9A\xE6\x8C\x87\xE4\xBB\xA4\xE7\x9A\x84
 186\xE5\x87\xBD\xE6\x95\xB0\xE5\x8F\xAF\xE4\xBB\xA5\xE4\xBD\xBF\xE5\xBE\x97\xE6\xA8\xA1\xE6\x8B\x9F\xE6\x8E\xA5\xE5\x8F\xA3(\xE8\xAF\x91\xE8\x80\x85\xE6\xB3\xA8:\xE4\xBE\x8B\xE5\xA6\x82 GPIO \xE6\xA8\xA1\xE6\x8B\x9F I2C\xE3\x80\x811-wire \xE6\x88\x96 SPI)\xE7\x9A\x84
 187\xE5\xBA\x94\xE7\x94\xA8(\xE5\x9C\xA8\xE7\xA9\xBA\xE9\x97\xB4\xE5\x92\x8C\xE6\x97\xB6\xE9\x97\xB4\xE4\xB8\x8A\xE9\x83\xBD)\xE6\x9B\xB4\xE5\x85\xB7\xE6\x95\x88\xE7\x8E\x87\xE3\x80\x82
 188
 189
 190\xE8\xAE\xBF\xE9\x97\xAE\xE5\x8F\xAF\xE8\x83\xBD\xE4\xBC\x91\xE7\x9C\xA0\xE7\x9A\x84 GPIO
 191-----------------
 192\xE6\x9F\x90\xE4\xBA\x9B GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE5\xBF\x85\xE9\xA1\xBB\xE9\x80\x9A\xE8\xBF\x87\xE5\x9F\xBA\xE4\xBA\x8E\xE6\x80\xBB\xE7\xBA\xBF(\xE5\xA6\x82 I2C \xE6\x88\x96 SPI)\xE7\x9A\x84\xE6\xB6\x88\xE6\x81\xAF\xE8\xAE\xBF\xE9\x97\xAE\xE3\x80\x82\xE8\xAF\xBB\xE6\x88\x96\xE5\x86\x99\xE8\xBF\x99\xE4\xBA\x9B
 193GPIO \xE5\x80\xBC\xE7\x9A\x84\xE5\x91\xBD\xE4\xBB\xA4\xE9\x9C\x80\xE8\xA6\x81\xE7\xAD\x89\xE5\xBE\x85\xE5\x85\xB6\xE4\xBF\xA1\xE6\x81\xAF\xE6\x8E\x92\xE5\x88\xB0\xE9\x98\x9F\xE9\xA6\x96\xE6\x89\x8D\xE5\x8F\x91\xE9\x80\x81\xE5\x91\xBD\xE4\xBB\xA4\xEF\xBC\x8C\xE5\x86\x8D\xE8\x8E\xB7\xE5\xBE\x97\xE5\x85\xB6\xE5\x8F\x8D\xE9\xA6\x88\xE3\x80\x82\xE6\x9C\x9F\xE9\x97\xB4\xE9\x9C\x80\xE8\xA6\x81
 194\xE4\xBC\x91\xE7\x9C\xA0\xEF\xBC\x8C\xE8\xBF\x99\xE4\xB8\x8D\xE8\x83\xBD\xE5\x9C\xA8 IRQ \xE4\xBE\x8B\xE7\xA8\x8B(\xE4\xB8\xAD\xE6\x96\xAD\xE4\xB8\x8A\xE4\xB8\x8B\xE6\x96\x87)\xE4\xB8\xAD\xE6\x89\xA7\xE8\xA1\x8C\xE3\x80\x82
 195
 196\xE6\x94\xAF\xE6\x8C\x81\xE6\xAD\xA4\xE7\xB1\xBB GPIO \xE7\x9A\x84\xE5\xB9\xB3\xE5\x8F\xB0\xE9\x80\x9A\xE8\xBF\x87\xE4\xBB\xA5\xE4\xB8\x8B\xE5\x87\xBD\xE6\x95\xB0\xE8\xBF\x94\xE5\x9B\x9E\xE9\x9D\x9E\xE9\x9B\xB6\xE5\x80\xBC\xE6\x9D\xA5\xE5\x8C\xBA\xE5\x88\x86\xE5\x87\xBA\xE8\xBF\x99\xE7\xA7\x8D GPIO\xE3\x80\x82(\xE6\xAD\xA4\xE5\x87\xBD\xE6\x95\xB0\xE9\x9C\x80\xE8\xA6\x81
 197\xE4\xB8\x80\xE4\xB8\xAA\xE4\xB9\x8B\xE5\x89\x8D\xE9\x80\x9A\xE8\xBF\x87 gpio_request \xE5\x88\x86\xE9\x85\x8D\xE5\x88\xB0\xE7\x9A\x84\xE6\x9C\x89\xE6\x95\x88 GPIO \xE7\xBC\x96\xE5\x8F\xB7):
 198
 199        int gpio_cansleep(unsigned gpio);
 200
 201\xE4\xB8\xBA\xE4\xBA\x86\xE8\xAE\xBF\xE9\x97\xAE\xE8\xBF\x99\xE7\xA7\x8D GPIO,\xE5\x86\x85\xE6\xA0\xB8\xE5\xAE\x9A\xE4\xB9\x89\xE4\xBA\x86\xE4\xB8\x80\xE5\xA5\x97\xE4\xB8\x8D\xE5\x90\x8C\xE7\x9A\x84\xE5\x87\xBD\xE6\x95\xB0:
 202
 203        /* GPIO \xE8\xBE\x93\xE5\x85\xA5:\xE8\xBF\x94\xE5\x9B\x9E\xE9\x9B\xB6\xE6\x88\x96\xE9\x9D\x9E\xE9\x9B\xB6 ,\xE5\x8F\xAF\xE8\x83\xBD\xE4\xBC\x9A\xE4\xBC\x91\xE7\x9C\xA0 */
 204        int gpio_get_value_cansleep(unsigned gpio);
 205
 206        /* GPIO \xE8\xBE\x93\xE5\x87\xBA,\xE5\x8F\xAF\xE8\x83\xBD\xE4\xBC\x9A\xE4\xBC\x91\xE7\x9C\xA0 */
 207        void gpio_set_value_cansleep(unsigned gpio, int value);
 208
 209
 210\xE8\xAE\xBF\xE9\x97\xAE\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84 GPIO \xE9\x9C\x80\xE8\xA6\x81\xE4\xB8\x80\xE4\xB8\xAA\xE5\x85\x81\xE8\xAE\xB8\xE4\xBC\x91\xE7\x9C\xA0\xE7\x9A\x84\xE4\xB8\x8A\xE4\xB8\x8B\xE6\x96\x87\xEF\xBC\x8C\xE4\xBE\x8B\xE5\xA6\x82\xE7\xBA\xBF\xE7\xA8\x8B IRQ \xE5\xA4\x84\xE7\x90\x86\xE4\xBE\x8B\xE7\xA8\x8B\xEF\xBC\x8C\xE5\xB9\xB6\xE7\x94\xA8\xE4\xBB\xA5\xE4\xB8\x8A\xE7\x9A\x84
 211\xE8\xAE\xBF\xE9\x97\xAE\xE5\x87\xBD\xE6\x95\xB0\xE6\x9B\xBF\xE6\x8D\xA2\xE9\x82\xA3\xE4\xBA\x9B\xE6\xB2\xA1\xE6\x9C\x89 cansleep()\xE5\x90\x8E\xE7\xBC\x80\xE7\x9A\x84\xE8\x87\xAA\xE6\x97\x8B\xE9\x94\x81\xE5\xAE\x89\xE5\x85\xA8\xE8\xAE\xBF\xE9\x97\xAE\xE5\x87\xBD\xE6\x95\xB0\xE3\x80\x82
 212
 213\xE9\x99\xA4\xE4\xBA\x86\xE8\xBF\x99\xE4\xBA\x9B\xE8\xAE\xBF\xE9\x97\xAE\xE5\x87\xBD\xE6\x95\xB0\xE5\x8F\xAF\xE8\x83\xBD\xE4\xBC\x91\xE7\x9C\xA0\xEF\xBC\x8C\xE4\xB8\x94\xE5\xAE\x83\xE4\xBB\xAC\xE6\x93\x8D\xE4\xBD\x9C\xE7\x9A\x84 GPIO \xE4\xB8\x8D\xE8\x83\xBD\xE5\x9C\xA8\xE7\xA1\xAC\xE4\xBB\xB6 IRQ \xE5\xA4\x84\xE7\x90\x86\xE4\xBE\x8B\xE7\xA8\x8B\xE4\xB8\xAD\xE8\xAE\xBF\xE9\x97\xAE\xE7\x9A\x84
 214\xE4\xBA\x8B\xE5\xAE\x9E\xEF\xBC\x8C\xE8\xBF\x99\xE4\xBA\x9B\xE5\xA4\x84\xE7\x90\x86\xE4\xBE\x8B\xE7\xA8\x8B\xE5\xAE\x9E\xE9\x99\x85\xE4\xB8\x8A\xE5\x92\x8C\xE8\x87\xAA\xE6\x97\x8B\xE9\x94\x81\xE5\xAE\x89\xE5\x85\xA8\xE7\x9A\x84\xE5\x87\xBD\xE6\x95\xB0\xE6\x98\xAF\xE4\xB8\x80\xE6\xA0\xB7\xE7\x9A\x84\xE3\x80\x82
 215
 216** \xE9\x99\xA4\xE6\xAD\xA4\xE4\xB9\x8B\xE5\xA4\x96 ** \xE8\xB0\x83\xE7\x94\xA8\xE8\xAE\xBE\xE7\xBD\xAE\xE5\x92\x8C\xE9\x85\x8D\xE7\xBD\xAE\xE6\xAD\xA4\xE7\xB1\xBB GPIO \xE7\x9A\x84\xE5\x87\xBD\xE6\x95\xB0\xE4\xB9\x9F\xE5\xBF\x85\xE9\xA1\xBB\xE5\x9C\xA8\xE5\x85\x81\xE8\xAE\xB8\xE4\xBC\x91\xE7\x9C\xA0\xE7\x9A\x84\xE4\xB8\x8A\xE4\xB8\x8B\xE6\x96\x87\xE4\xB8\xAD\xEF\xBC\x8C
 217\xE5\x9B\xA0\xE4\xB8\xBA\xE5\xAE\x83\xE4\xBB\xAC\xE5\x8F\xAF\xE8\x83\xBD\xE4\xB9\x9F\xE9\x9C\x80\xE8\xA6\x81\xE8\xAE\xBF\xE9\x97\xAE GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE8\x8A\xAF\xE7\x89\x87: (\xE8\xBF\x99\xE4\xBA\x9B\xE8\xAE\xBE\xE7\xBD\xAE\xE5\x87\xBD\xE6\x95\xB0\xE9\x80\x9A\xE5\xB8\xB8\xE5\x9C\xA8\xE6\x9D\xBF\xE7\xBA\xA7\xE5\x90\xAF\xE5\x8A\xA8\xE4\xBB\xA3\xE7\xA0\x81\xE6\x88\x96\xE8\x80\x85
 218\xE9\xA9\xB1\xE5\x8A\xA8\xE6\x8E\xA2\xE6\xB5\x8B/\xE6\x96\xAD\xE5\xBC\x80\xE4\xBB\xA3\xE7\xA0\x81\xE4\xB8\xAD\xEF\xBC\x8C\xE6\x89\x80\xE4\xBB\xA5\xE8\xBF\x99\xE6\x98\xAF\xE4\xB8\x80\xE4\xB8\xAA\xE5\xAE\xB9\xE6\x98\x93\xE6\xBB\xA1\xE8\xB6\xB3\xE7\x9A\x84\xE7\xBA\xA6\xE6\x9D\x9F\xE6\x9D\xA1\xE4\xBB\xB6\xE3\x80\x82)
 219
 220        gpio_direction_input()
 221        gpio_direction_output()
 222        gpio_request()
 223
 224##      gpio_request_one()
 225##      gpio_request_array()
 226##      gpio_free_array()
 227
 228        gpio_free()
 229        gpio_set_debounce()
 230
 231
 232
 233\xE5\xA3\xB0\xE6\x98\x8E\xE5\x92\x8C\xE9\x87\x8A\xE6\x94\xBE GPIO
 234----------------------------
 235\xE4\xB8\xBA\xE4\xBA\x86\xE6\x9C\x89\xE5\x8A\xA9\xE4\xBA\x8E\xE6\x8D\x95\xE8\x8E\xB7\xE7\xB3\xBB\xE7\xBB\x9F\xE9\x85\x8D\xE7\xBD\xAE\xE9\x94\x99\xE8\xAF\xAF,\xE5\xAE\x9A\xE4\xB9\x89\xE4\xBA\x86\xE4\xB8\xA4\xE4\xB8\xAA\xE5\x87\xBD\xE6\x95\xB0\xE3\x80\x82
 236
 237        /* \xE7\x94\xB3\xE8\xAF\xB7 GPIO, \xE8\xBF\x94\xE5\x9B\x9E 0 \xE6\x88\x96\xE8\xB4\x9F\xE7\x9A\x84\xE9\x94\x99\xE8\xAF\xAF\xE4\xBB\xA3\xE7\xA0\x81.
 238         * \xE9\x9D\x9E\xE7\xA9\xBA\xE6\xA0\x87\xE7\xAD\xBE\xE5\x8F\xAF\xE8\x83\xBD\xE6\x9C\x89\xE5\x8A\xA9\xE4\xBA\x8E\xE8\xAF\x8A\xE6\x96\xAD.
 239         */
 240        int gpio_request(unsigned gpio, const char *label);
 241
 242        /* \xE9\x87\x8A\xE6\x94\xBE\xE4\xB9\x8B\xE5\x89\x8D\xE5\xA3\xB0\xE6\x98\x8E\xE7\x9A\x84 GPIO */
 243        void gpio_free(unsigned gpio);
 244
 245\xE5\xB0\x86\xE6\x97\xA0\xE6\x95\x88\xE7\x9A\x84 GPIO \xE7\xBC\x96\xE7\xA0\x81\xE4\xBC\xA0\xE9\x80\x92\xE7\xBB\x99 gpio_request()\xE4\xBC\x9A\xE5\xAF\xBC\xE8\x87\xB4\xE5\xA4\xB1\xE8\xB4\xA5\xEF\xBC\x8C\xE7\x94\xB3\xE8\xAF\xB7\xE4\xB8\x80\xE4\xB8\xAA\xE5\xB7\xB2\xE4\xBD\xBF\xE7\x94\xA8\xE8\xBF\x99\xE4\xB8\xAA
 246\xE5\x87\xBD\xE6\x95\xB0\xE5\xA3\xB0\xE6\x98\x8E\xE8\xBF\x87\xE7\x9A\x84 GPIO \xE4\xB9\x9F\xE4\xBC\x9A\xE5\xA4\xB1\xE8\xB4\xA5\xE3\x80\x82gpio_request()\xE7\x9A\x84\xE8\xBF\x94\xE5\x9B\x9E\xE5\x80\xBC\xE5\xBF\x85\xE9\xA1\xBB\xE6\xA3\x80\xE6\x9F\xA5\xE3\x80\x82\xE4\xBD\xA0\xE5\xBA\x94\xE8\xAF\xA5\xE5\x9C\xA8
 247\xE8\xBF\x9B\xE7\xA8\x8B\xE4\xB8\x8A\xE4\xB8\x8B\xE6\x96\x87\xE4\xB8\xAD\xE8\xB0\x83\xE7\x94\xA8\xE8\xBF\x99\xE4\xBA\x9B\xE5\x87\xBD\xE6\x95\xB0\xE3\x80\x82\xE7\x84\xB6\xE8\x80\x8C,\xE5\xAF\xB9\xE4\xBA\x8E\xE8\x87\xAA\xE6\x97\x8B\xE9\x94\x81\xE5\xAE\x89\xE5\x85\xA8\xE7\x9A\x84 GPIO,\xE5\x9C\xA8\xE6\x9D\xBF\xE5\xAD\x90\xE5\x90\xAF\xE5\x8A\xA8\xE7\x9A\x84\xE6\x97\xA9\xE6\x9C\x9F\xE3\x80\x81
 248\xE8\xBF\x9B\xE5\x85\xA5\xE8\xBF\x9B\xE7\xA8\x8B\xE4\xB9\x8B\xE5\x89\x8D\xE6\x98\xAF\xE5\x8F\xAF\xE4\xBB\xA5\xE7\x94\xB3\xE8\xAF\xB7\xE7\x9A\x84\xE3\x80\x82
 249
 250\xE8\xBF\x99\xE4\xB8\xAA\xE5\x87\xBD\xE6\x95\xB0\xE5\xAE\x8C\xE6\x88\x90\xE4\xB8\xA4\xE4\xB8\xAA\xE5\x9F\xBA\xE6\x9C\xAC\xE7\x9A\x84\xE7\x9B\xAE\xE6\xA0\x87\xE3\x80\x82\xE4\xB8\x80\xE6\x98\xAF\xE6\xA0\x87\xE8\xAF\x86\xE9\x82\xA3\xE4\xBA\x9B\xE5\xAE\x9E\xE9\x99\x85\xE4\xB8\x8A\xE5\xB7\xB2\xE4\xBD\x9C\xE4\xB8\xBA GPIO \xE4\xBD\xBF\xE7\x94\xA8\xE7\x9A\x84\xE4\xBF\xA1\xE5\x8F\xB7\xE7\xBA\xBF\xEF\xBC\x8C
 251\xE8\xBF\x99\xE6\xA0\xB7\xE4\xBE\xBF\xE4\xBA\x8E\xE6\x9B\xB4\xE5\xA5\xBD\xE5\x9C\xB0\xE8\xAF\x8A\xE6\x96\xAD;\xE7\xB3\xBB\xE7\xBB\x9F\xE5\x8F\xAF\xE8\x83\xBD\xE9\x9C\x80\xE8\xA6\x81\xE6\x9C\x8D\xE5\x8A\xA1\xE5\x87\xA0\xE7\x99\xBE\xE4\xB8\xAA\xE5\x8F\xAF\xE7\x94\xA8\xE7\x9A\x84 GPIO\xEF\xBC\x8C\xE4\xBD\x86\xE6\x98\xAF\xE5\xAF\xB9\xE4\xBA\x8E\xE4\xBB\xBB\xE4\xBD\x95\xE4\xB8\x80\xE4\xB8\xAA
 252\xE7\xBB\x99\xE5\xAE\x9A\xE7\x9A\x84\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF\xE9\x80\x9A\xE5\xB8\xB8\xE5\x8F\xAA\xE6\x9C\x89\xE4\xB8\x80\xE4\xBA\x9B\xE8\xA2\xAB\xE4\xBD\xBF\xE7\x94\xA8\xE3\x80\x82\xE5\x8F\xA6\xE4\xB8\x80\xE4\xB8\xAA\xE7\x9B\xAE\xE7\x9A\x84\xE6\x98\xAF\xE6\x8D\x95\xE8\x8E\xB7\xE5\x86\xB2\xE7\xAA\x81\xEF\xBC\x8C\xE6\x9F\xA5\xE6\x98\x8E\xE9\x94\x99\xE8\xAF\xAF:\xE5\xA6\x82\xE4\xB8\xA4\xE4\xB8\xAA\xE6\x88\x96
 253\xE6\x9B\xB4\xE5\xA4\x9A\xE9\xA9\xB1\xE5\x8A\xA8\xE9\x94\x99\xE8\xAF\xAF\xE5\x9C\xB0\xE8\xAE\xA4\xE4\xB8\xBA\xE4\xBB\x96\xE4\xBB\xAC\xE5\xB7\xB2\xE7\xBB\x8F\xE7\x8B\xAC\xE5\x8D\xA0\xE4\xBA\x86\xE6\x9F\x90\xE4\xB8\xAA\xE4\xBF\xA1\xE5\x8F\xB7\xE7\xBA\xBF,\xE6\x88\x96\xE6\x98\xAF\xE9\x94\x99\xE8\xAF\xAF\xE5\x9C\xB0\xE8\xAE\xA4\xE4\xB8\xBA\xE7\xA7\xBB\xE9\x99\xA4\xE4\xB8\x80\xE4\xB8\xAA\xE7\xAE\xA1\xE7\x90\x86\xE7\x9D\x80
 254\xE6\x9F\x90\xE4\xB8\xAA\xE5\xB7\xB2\xE6\xBF\x80\xE6\xB4\xBB\xE4\xBF\xA1\xE5\x8F\xB7\xE7\x9A\x84\xE9\xA9\xB1\xE5\x8A\xA8\xE6\x98\xAF\xE5\xAE\x89\xE5\x85\xA8\xE7\x9A\x84\xE3\x80\x82\xE4\xB9\x9F\xE5\xB0\xB1\xE6\x98\xAF\xE8\xAF\xB4\xEF\xBC\x8C\xE7\x94\xB3\xE8\xAF\xB7 GPIO \xE7\x9A\x84\xE4\xBD\x9C\xE7\x94\xA8\xE7\xB1\xBB\xE4\xBC\xBC\xE4\xB8\x80\xE7\xA7\x8D\xE9\x94\x81\xE6\x9C\xBA\xE5\x88\xB6\xE3\x80\x82
 255
 256\xE6\x9F\x90\xE4\xBA\x9B\xE5\xB9\xB3\xE5\x8F\xB0\xE5\x8F\xAF\xE8\x83\xBD\xE4\xB9\x9F\xE4\xBD\xBF\xE7\x94\xA8 GPIO \xE4\xBD\x9C\xE4\xB8\xBA\xE7\x94\xB5\xE6\xBA\x90\xE7\xAE\xA1\xE7\x90\x86\xE6\xBF\x80\xE6\xB4\xBB\xE4\xBF\xA1\xE5\x8F\xB7(\xE4\xBE\x8B\xE5\xA6\x82\xE9\x80\x9A\xE8\xBF\x87\xE5\x85\xB3\xE9\x97\xAD\xE6\x9C\xAA\xE4\xBD\xBF\xE7\x94\xA8\xE8\x8A\xAF\xE7\x89\x87\xE5\x8C\xBA\xE5\x92\x8C
 257\xE7\xAE\x80\xE5\x8D\x95\xE5\x9C\xB0\xE5\x85\xB3\xE9\x97\xAD\xE6\x9C\xAA\xE4\xBD\xBF\xE7\x94\xA8\xE6\x97\xB6\xE9\x92\x9F)\xE3\x80\x82
 258
 259\xE5\xAF\xB9\xE4\xBA\x8E GPIO \xE4\xBD\xBF\xE7\x94\xA8 pinctrl \xE5\xAD\x90\xE7\xB3\xBB\xE7\xBB\x9F\xE5\xB7\xB2\xE7\x9F\xA5\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xEF\xBC\x8C\xE5\xAD\x90\xE7\xB3\xBB\xE7\xBB\x9F\xE5\xBA\x94\xE8\xAF\xA5\xE8\xA2\xAB\xE5\x91\x8A\xE7\x9F\xA5\xE5\x85\xB6\xE4\xBD\xBF\xE7\x94\xA8\xE6\x83\x85\xE5\x86\xB5\xEF\xBC\x9B
 260\xE4\xB8\x80\xE4\xB8\xAA gpiolib \xE9\xA9\xB1\xE5\x8A\xA8\xE7\x9A\x84 .request()\xE6\x93\x8D\xE4\xBD\x9C\xE5\xBA\x94\xE8\xB0\x83\xE7\x94\xA8 pinctrl_request_gpio()\xEF\xBC\x8C
 261\xE8\x80\x8C gpiolib \xE9\xA9\xB1\xE5\x8A\xA8\xE7\x9A\x84 .free()\xE6\x93\x8D\xE4\xBD\x9C\xE5\xBA\x94\xE8\xB0\x83\xE7\x94\xA8 pinctrl_free_gpio()\xE3\x80\x82pinctrl
 262\xE5\xAD\x90\xE7\xB3\xBB\xE7\xBB\x9F\xE5\x85\x81\xE8\xAE\xB8 pinctrl_request_gpio()\xE5\x9C\xA8\xE6\x9F\x90\xE4\xB8\xAA\xE5\xBC\x95\xE8\x84\x9A\xE6\x88\x96\xE5\xBC\x95\xE8\x84\x9A\xE7\xBB\x84\xE4\xBB\xA5\xE5\xA4\x8D\xE7\x94\xA8\xE5\xBD\xA2\xE5\xBC\x8F\xE2\x80\x9C\xE5\xB1\x9E\xE4\xBA\x8E\xE2\x80\x9D
 263\xE4\xB8\x80\xE4\xB8\xAA\xE8\xAE\xBE\xE5\xA4\x87\xE6\x97\xB6\xE9\x83\xBD\xE6\x88\x90\xE5\x8A\x9F\xE8\xBF\x94\xE5\x9B\x9E\xE3\x80\x82
 264
 265\xE4\xBB\xBB\xE4\xBD\x95\xE9\xA1\xBB\xE5\xB0\x86 GPIO \xE4\xBF\xA1\xE5\x8F\xB7\xE5\xAF\xBC\xE5\x90\x91\xE9\x80\x82\xE5\xBD\x93\xE5\xBC\x95\xE8\x84\x9A\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xE5\xA4\x8D\xE7\x94\xA8\xE7\xA1\xAC\xE4\xBB\xB6\xE7\x9A\x84\xE7\xBC\x96\xE7\xA8\x8B\xE5\xBA\x94\xE8\xAF\xA5\xE5\x8F\x91\xE7\x94\x9F\xE5\x9C\xA8 GPIO
 266\xE9\xA9\xB1\xE5\x8A\xA8\xE7\x9A\x84 .direction_input()\xE6\x88\x96 .direction_output()\xE5\x87\xBD\xE6\x95\xB0\xE4\xB8\xAD\xEF\xBC\x8C\xE4\xBB\xA5\xE5\x8F\x8A
 267\xE4\xBB\xBB\xE4\xBD\x95\xE8\xBE\x93\xE5\x87\xBA GPIO \xE5\x80\xBC\xE7\x9A\x84\xE8\xAE\xBE\xE7\xBD\xAE\xE4\xB9\x8B\xE5\x90\x8E\xE3\x80\x82\xE8\xBF\x99\xE6\xA0\xB7\xE5\x8F\xAF\xE4\xBD\xBF\xE4\xBB\x8E\xE5\xBC\x95\xE8\x84\x9A\xE7\x89\xB9\xE6\xAE\x8A\xE5\x8A\x9F\xE8\x83\xBD\xE5\x88\xB0 GPIO \xE7\x9A\x84\xE8\xBD\xAC\xE6\x8D\xA2
 268\xE4\xB8\x8D\xE4\xBC\x9A\xE5\x9C\xA8\xE5\xBC\x95\xE8\x84\x9A\xE4\xBA\xA7\xE7\x94\x9F\xE6\xAF\x9B\xE5\x88\xBA\xE6\xB3\xA2\xE5\xBD\xA2\xE3\x80\x82\xE6\x9C\x89\xE6\x97\xB6\xE5\xBD\x93\xE7\x94\xA8\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE5\xAE\x9E\xE7\x8E\xB0\xE5\x85\xB6\xE4\xBF\xA1\xE5\x8F\xB7\xE9\xA9\xB1\xE5\x8A\xA8\xE4\xB8\x80\xE4\xB8\xAA\xE9\x9D\x9E GPIO
 269\xE7\xA1\xAC\xE4\xBB\xB6\xE6\xA8\xA1\xE5\x9D\x97\xE7\x9A\x84\xE8\xA7\xA3\xE5\x86\xB3\xE6\x96\xB9\xE6\xA1\x88\xE6\x97\xB6\xEF\xBC\x8C\xE5\xB0\xB1\xE9\x9C\x80\xE8\xA6\x81\xE8\xBF\x99\xE7\xA7\x8D\xE6\x9C\xBA\xE5\x88\xB6\xE3\x80\x82
 270
 271\xE6\x9F\x90\xE4\xBA\x9B\xE5\xB9\xB3\xE5\x8F\xB0\xE5\x85\x81\xE8\xAE\xB8\xE9\x83\xA8\xE5\x88\x86\xE6\x88\x96\xE6\x89\x80\xE6\x9C\x89 GPIO \xE4\xBF\xA1\xE5\x8F\xB7\xE4\xBD\xBF\xE7\x94\xA8\xE4\xB8\x8D\xE5\x90\x8C\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xE3\x80\x82\xE7\xB1\xBB\xE4\xBC\xBC\xE7\x9A\x84\xEF\xBC\x8CGPIO \xE6\x88\x96\xE5\xBC\x95\xE8\x84\x9A\xE7\x9A\x84
 272\xE5\x85\xB6\xE4\xBB\x96\xE6\x96\xB9\xE9\x9D\xA2\xE4\xB9\x9F\xE9\x9C\x80\xE8\xA6\x81\xE9\x85\x8D\xE7\xBD\xAE\xEF\xBC\x8C\xE5\xA6\x82\xE4\xB8\x8A\xE6\x8B\x89/\xE4\xB8\x8B\xE6\x8B\x89\xE3\x80\x82\xE5\xB9\xB3\xE5\x8F\xB0\xE8\xBD\xAF\xE4\xBB\xB6\xE5\xBA\x94\xE8\xAF\xA5\xE5\x9C\xA8\xE5\xAF\xB9\xE8\xBF\x99\xE4\xBA\x9B GPIO \xE8\xB0\x83\xE7\x94\xA8
 273gpio_request()\xE5\x89\x8D\xE5\xB0\x86\xE8\xBF\x99\xE7\xB1\xBB\xE7\xBB\x86\xE8\x8A\x82\xE9\x85\x8D\xE7\xBD\xAE\xE5\xA5\xBD\xEF\xBC\x8C\xE4\xBE\x8B\xE5\xA6\x82\xE4\xBD\xBF\xE7\x94\xA8 pinctrl \xE5\xAD\x90\xE7\xB3\xBB\xE7\xBB\x9F\xE7\x9A\x84\xE6\x98\xA0\xE5\xB0\x84\xE8\xA1\xA8\xEF\xBC\x8C
 274\xE4\xBD\xBF\xE5\xBE\x97 GPIO \xE7\x9A\x84\xE7\x94\xA8\xE6\x88\xB7\xE6\x97\xA0\xE9\xA1\xBB\xE5\x85\xB3\xE6\xB3\xA8\xE8\xBF\x99\xE4\xBA\x9B\xE7\xBB\x86\xE8\x8A\x82\xE3\x80\x82
 275
 276\xE8\xBF\x98\xE6\x9C\x89\xE4\xB8\x80\xE4\xB8\xAA\xE5\x80\xBC\xE5\xBE\x97\xE6\xB3\xA8\xE6\x84\x8F\xE7\x9A\x84\xE6\x98\xAF\xE5\x9C\xA8\xE9\x87\x8A\xE6\x94\xBE GPIO \xE5\x89\x8D\xEF\xBC\x8C\xE4\xBD\xA0\xE5\xBF\x85\xE9\xA1\xBB\xE5\x81\x9C\xE6\xAD\xA2\xE4\xBD\xBF\xE7\x94\xA8\xE5\xAE\x83\xE3\x80\x82
 277
 278
 279\xE6\xB3\xA8\xE6\x84\x8F:\xE7\x94\xB3\xE8\xAF\xB7\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE5\xB9\xB6\xE6\xB2\xA1\xE6\x9C\x89\xE4\xBB\xA5\xE4\xBB\xBB\xE4\xBD\x95\xE6\x96\xB9\xE5\xBC\x8F\xE9\x85\x8D\xE7\xBD\xAE\xE5\xAE\x83\xEF\xBC\x8C\xE5\x8F\xAA\xE4\xB8\x8D\xE8\xBF\x87\xE6\xA0\x87\xE8\xAF\x86\xE9\x82\xA3\xE4\xB8\xAA GPIO \xE5\xA4\x84\xE4\xBA\x8E\xE4\xBD\xBF\xE7\x94\xA8
 280\xE7\x8A\xB6\xE6\x80\x81\xE3\x80\x82\xE5\xBF\x85\xE9\xA1\xBB\xE6\x9C\x89\xE5\x8F\xA6\xE5\xA4\x96\xE7\x9A\x84\xE4\xBB\xA3\xE7\xA0\x81\xE6\x9D\xA5\xE5\xA4\x84\xE7\x90\x86\xE5\xBC\x95\xE8\x84\x9A\xE9\x85\x8D\xE7\xBD\xAE(\xE5\xA6\x82\xE6\x8E\xA7\xE5\x88\xB6 GPIO \xE4\xBD\xBF\xE7\x94\xA8\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xE3\x80\x81\xE4\xB8\x8A\xE6\x8B\x89/\xE4\xB8\x8B\xE6\x8B\x89)\xE3\x80\x82
 281\xE8\x80\x83\xE8\x99\x91\xE5\x88\xB0\xE5\xA4\xA7\xE5\xA4\x9A\xE6\x95\xB0\xE6\x83\x85\xE5\x86\xB5\xE4\xB8\x8B\xE5\xA3\xB0\xE6\x98\x8E GPIO \xE4\xB9\x8B\xE5\x90\x8E\xE5\xB0\xB1\xE4\xBC\x9A\xE7\xAB\x8B\xE5\x8D\xB3\xE9\x85\x8D\xE7\xBD\xAE\xE5\xAE\x83\xE4\xBB\xAC,\xE6\x89\x80\xE4\xBB\xA5\xE5\xAE\x9A\xE4\xB9\x89\xE4\xBA\x86\xE4\xBB\xA5\xE4\xB8\x8B\xE4\xB8\x89\xE4\xB8\xAA\xE8\xBE\x85\xE5\x8A\xA9\xE5\x87\xBD\xE6\x95\xB0:
 282
 283        /* \xE7\x94\xB3\xE8\xAF\xB7\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE4\xBF\xA1\xE5\x8F\xB7, \xE5\x90\x8C\xE6\x97\xB6\xE9\x80\x9A\xE8\xBF\x87\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84'flags'\xE5\x88\x9D\xE5\xA7\x8B\xE5\x8C\x96\xE9\x85\x8D\xE7\xBD\xAE,
 284         * \xE5\x85\xB6\xE4\xBB\x96\xE5\x92\x8C gpio_request()\xE7\x9A\x84\xE5\x8F\x82\xE6\x95\xB0\xE5\x92\x8C\xE8\xBF\x94\xE5\x9B\x9E\xE5\x80\xBC\xE7\x9B\xB8\xE5\x90\x8C
 285         *
 286         */
 287        int gpio_request_one(unsigned gpio, unsigned long flags, const char *label);
 288
 289        /* \xE5\x9C\xA8\xE5\x8D\x95\xE4\xB8\xAA\xE5\x87\xBD\xE6\x95\xB0\xE4\xB8\xAD\xE7\x94\xB3\xE8\xAF\xB7\xE5\xA4\x9A\xE4\xB8\xAA GPIO
 290         */
 291        int gpio_request_array(struct gpio *array, size_t num);
 292
 293        /* \xE5\x9C\xA8\xE5\x8D\x95\xE4\xB8\xAA\xE5\x87\xBD\xE6\x95\xB0\xE4\xB8\xAD\xE9\x87\x8A\xE6\x94\xBE\xE5\xA4\x9A\xE4\xB8\xAA GPIO
 294         */
 295        void gpio_free_array(struct gpio *array, size_t num);
 296
 297\xE8\xBF\x99\xE9\x87\x8C 'flags' \xE5\xBD\x93\xE5\x89\x8D\xE5\xAE\x9A\xE4\xB9\x89\xE5\x8F\xAF\xE6\x8C\x87\xE5\xAE\x9A\xE4\xBB\xA5\xE4\xB8\x8B\xE5\xB1\x9E\xE6\x80\xA7:
 298
 299        * GPIOF_DIR_IN          - \xE9\x85\x8D\xE7\xBD\xAE\xE6\x96\xB9\xE5\x90\x91\xE4\xB8\xBA\xE8\xBE\x93\xE5\x85\xA5
 300        * GPIOF_DIR_OUT         - \xE9\x85\x8D\xE7\xBD\xAE\xE6\x96\xB9\xE5\x90\x91\xE4\xB8\xBA\xE8\xBE\x93\xE5\x87\xBA
 301
 302        * GPIOF_INIT_LOW        - \xE5\x9C\xA8\xE4\xBD\x9C\xE4\xB8\xBA\xE8\xBE\x93\xE5\x87\xBA\xE6\x97\xB6,\xE5\x88\x9D\xE5\xA7\x8B\xE5\x80\xBC\xE4\xB8\xBA\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3
 303        * GPIOF_INIT_HIGH       - \xE5\x9C\xA8\xE4\xBD\x9C\xE4\xB8\xBA\xE8\xBE\x93\xE5\x87\xBA\xE6\x97\xB6,\xE5\x88\x9D\xE5\xA7\x8B\xE5\x80\xBC\xE4\xB8\xBA\xE9\xAB\x98\xE7\x94\xB5\xE5\xB9\xB3
 304        * GPIOF_OPEN_DRAIN      - gpio\xE5\xBC\x95\xE8\x84\x9A\xE4\xB8\xBA\xE5\xBC\x80\xE6\xBC\x8F\xE4\xBF\xA1\xE5\x8F\xB7
 305        * GPIOF_OPEN_SOURCE     - gpio\xE5\xBC\x95\xE8\x84\x9A\xE4\xB8\xBA\xE6\xBA\x90\xE6\x9E\x81\xE5\xBC\x80\xE8\xB7\xAF\xE4\xBF\xA1\xE5\x8F\xB7
 306
 307        * GPIOF_EXPORT_DIR_FIXED        - \xE5\xB0\x86 gpio \xE5\xAF\xBC\xE5\x87\xBA\xE5\x88\xB0 sysfs\xEF\xBC\x8C\xE5\xB9\xB6\xE4\xBF\x9D\xE6\x8C\x81\xE6\x96\xB9\xE5\x90\x91
 308        * GPIOF_EXPORT_DIR_CHANGEABLE   - \xE5\x90\x8C\xE6\xA0\xB7\xE6\x98\xAF\xE5\xAF\xBC\xE5\x87\xBA, \xE4\xBD\x86\xE5\x85\x81\xE8\xAE\xB8\xE6\x94\xB9\xE5\x8F\x98\xE6\x96\xB9\xE5\x90\x91
 309
 310\xE5\x9B\xA0\xE4\xB8\xBA GPIOF_INIT_* \xE4\xBB\x85\xE6\x9C\x89\xE5\x9C\xA8\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE8\xBE\x93\xE5\x87\xBA\xE7\x9A\x84\xE6\x97\xB6\xE5\x80\x99\xE6\x89\x8D\xE5\xAD\x98\xE5\x9C\xA8,\xE6\x89\x80\xE4\xBB\xA5\xE6\x9C\x89\xE6\x95\x88\xE7\x9A\x84\xE7\xBB\x84\xE5\x90\x88\xE4\xB8\xBA:
 311
 312        * GPIOF_IN              - \xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE8\xBE\x93\xE5\x85\xA5
 313        * GPIOF_OUT_INIT_LOW    - \xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE8\xBE\x93\xE5\x87\xBA,\xE5\xB9\xB6\xE5\x88\x9D\xE5\xA7\x8B\xE5\x8C\x96\xE4\xB8\xBA\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3
 314        * GPIOF_OUT_INIT_HIGH   - \xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE8\xBE\x93\xE5\x87\xBA,\xE5\xB9\xB6\xE5\x88\x9D\xE5\xA7\x8B\xE5\x8C\x96\xE4\xB8\xBA\xE9\xAB\x98\xE7\x94\xB5\xE5\xB9\xB3
 315
 316\xE5\xBD\x93\xE8\xAE\xBE\xE7\xBD\xAE flag \xE4\xB8\xBA GPIOF_OPEN_DRAIN \xE6\x97\xB6\xEF\xBC\x8C\xE5\x88\x99\xE5\x81\x87\xE8\xAE\xBE\xE5\xBC\x95\xE8\x84\x9A\xE6\x98\xAF\xE5\xBC\x80\xE6\xBC\x8F\xE4\xBF\xA1\xE5\x8F\xB7\xE3\x80\x82\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A
 317\xE5\xB0\x86\xE4\xB8\x8D\xE4\xBC\x9A\xE5\x9C\xA8\xE8\xBE\x93\xE5\x87\xBA\xE6\xA8\xA1\xE5\xBC\x8F\xE4\xB8\x8B\xE7\xBD\xAE1\xE3\x80\x82\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xE9\x9C\x80\xE8\xA6\x81\xE8\xBF\x9E\xE6\x8E\xA5\xE4\xB8\x8A\xE6\x8B\x89\xE7\x94\xB5\xE9\x98\xBB\xE3\x80\x82\xE9\x80\x9A\xE8\xBF\x87\xE4\xBD\xBF\xE8\x83\xBD\xE8\xBF\x99\xE4\xB8\xAA\xE6\xA0\x87\xE5\xBF\x97\xEF\xBC\x8Cgpio\xE5\xBA\x93
 318\xE5\xB0\x86\xE4\xBC\x9A\xE5\x9C\xA8\xE8\xA2\xAB\xE8\xA6\x81\xE6\xB1\x82\xE8\xBE\x93\xE5\x87\xBA\xE6\xA8\xA1\xE5\xBC\x8F\xE4\xB8\x8B\xE7\xBD\xAE1\xE6\x97\xB6\xE5\xB0\x86\xE5\xBC\x95\xE8\x84\x9A\xE5\x8F\x98\xE4\xB8\xBA\xE8\xBE\x93\xE5\x85\xA5\xE7\x8A\xB6\xE6\x80\x81\xE6\x9D\xA5\xE4\xBD\xBF\xE5\xBC\x95\xE8\x84\x9A\xE7\xBD\xAE\xE9\xAB\x98\xE3\x80\x82\xE5\xBC\x95\xE8\x84\x9A\xE5\x9C\xA8\xE8\xBE\x93\xE5\x87\xBA\xE6\xA8\xA1\xE5\xBC\x8F\xE4\xB8\x8B
 319\xE9\x80\x9A\xE8\xBF\x87\xE7\xBD\xAE0\xE4\xBD\xBF\xE5\x85\xB6\xE8\xBE\x93\xE5\x87\xBA\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3\xE3\x80\x82
 320
 321\xE5\xBD\x93\xE8\xAE\xBE\xE7\xBD\xAE flag \xE4\xB8\xBA GPIOF_OPEN_SOURCE \xE6\x97\xB6\xEF\xBC\x8C\xE5\x88\x99\xE5\x81\x87\xE8\xAE\xBE\xE5\xBC\x95\xE8\x84\x9A\xE4\xB8\xBA\xE6\xBA\x90\xE6\x9E\x81\xE5\xBC\x80\xE8\xB7\xAF\xE4\xBF\xA1\xE5\x8F\xB7\xE3\x80\x82\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A
 322\xE5\xB0\x86\xE4\xB8\x8D\xE4\xBC\x9A\xE5\x9C\xA8\xE8\xBE\x93\xE5\x87\xBA\xE6\xA8\xA1\xE5\xBC\x8F\xE4\xB8\x8B\xE7\xBD\xAE0\xE3\x80\x82\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xE9\x9C\x80\xE8\xA6\x81\xE8\xBF\x9E\xE6\x8E\xA5\xE4\xB8\x8B\xE6\x8B\x89\xE7\x94\xB5\xE9\x98\xBB\xE3\x80\x82\xE9\x80\x9A\xE8\xBF\x87\xE4\xBD\xBF\xE8\x83\xBD\xE8\xBF\x99\xE4\xB8\xAA\xE6\xA0\x87\xE5\xBF\x97\xEF\xBC\x8Cgpio\xE5\xBA\x93
 323\xE5\xB0\x86\xE4\xBC\x9A\xE5\x9C\xA8\xE8\xA2\xAB\xE8\xA6\x81\xE6\xB1\x82\xE8\xBE\x93\xE5\x87\xBA\xE6\xA8\xA1\xE5\xBC\x8F\xE4\xB8\x8B\xE7\xBD\xAE0\xE6\x97\xB6\xE5\xB0\x86\xE5\xBC\x95\xE8\x84\x9A\xE5\x8F\x98\xE4\xB8\xBA\xE8\xBE\x93\xE5\x85\xA5\xE7\x8A\xB6\xE6\x80\x81\xE6\x9D\xA5\xE4\xBD\xBF\xE5\xBC\x95\xE8\x84\x9A\xE7\xBD\xAE\xE4\xBD\x8E\xE3\x80\x82\xE5\xBC\x95\xE8\x84\x9A\xE5\x9C\xA8\xE8\xBE\x93\xE5\x87\xBA\xE6\xA8\xA1\xE5\xBC\x8F\xE4\xB8\x8B
 324\xE9\x80\x9A\xE8\xBF\x87\xE7\xBD\xAE1\xE4\xBD\xBF\xE5\x85\xB6\xE8\xBE\x93\xE5\x87\xBA\xE9\xAB\x98\xE7\x94\xB5\xE5\xB9\xB3\xE3\x80\x82
 325
 326\xE5\xB0\x86\xE6\x9D\xA5\xE8\xBF\x99\xE4\xBA\x9B\xE6\xA0\x87\xE5\xBF\x97\xE5\x8F\xAF\xE8\x83\xBD\xE6\x89\xA9\xE5\xB1\x95\xE5\x88\xB0\xE6\x94\xAF\xE6\x8C\x81\xE6\x9B\xB4\xE5\xA4\x9A\xE7\x9A\x84\xE5\xB1\x9E\xE6\x80\xA7\xE3\x80\x82
 327
 328\xE6\x9B\xB4\xE8\xBF\x9B\xE4\xB8\x80\xE6\xAD\xA5,\xE4\xB8\xBA\xE4\xBA\x86\xE6\x9B\xB4\xE7\xAE\x80\xE5\x8D\x95\xE5\x9C\xB0\xE5\xA3\xB0\xE6\x98\x8E/\xE9\x87\x8A\xE6\x94\xBE\xE5\xA4\x9A\xE4\xB8\xAA GPIO,'struct gpio'\xE8\xA2\xAB\xE5\xBC\x95\xE8\xBF\x9B\xE6\x9D\xA5\xE5\xB0\x81\xE8\xA3\x85\xE6\x89\x80\xE6\x9C\x89
 329\xE8\xBF\x99\xE4\xB8\x89\xE4\xB8\xAA\xE9\xA2\x86\xE5\x9F\x9F:
 330
 331        struct gpio {
 332                unsigned        gpio;
 333                unsigned long   flags;
 334                const char      *label;
 335        };
 336
 337\xE4\xB8\x80\xE4\xB8\xAA\xE5\x85\xB8\xE5\x9E\x8B\xE7\x9A\x84\xE7\x94\xA8\xE4\xBE\x8B:
 338
 339        static struct gpio leds_gpios[] = {
 340                { 32, GPIOF_OUT_INIT_HIGH, "Power LED" }, /* \xE9\xBB\x98\xE8\xAE\xA4\xE5\xBC\x80\xE5\x90\xAF */
 341                { 33, GPIOF_OUT_INIT_LOW,  "Green LED" }, /* \xE9\xBB\x98\xE8\xAE\xA4\xE5\x85\xB3\xE9\x97\xAD */
 342                { 34, GPIOF_OUT_INIT_LOW,  "Red LED"   }, /* \xE9\xBB\x98\xE8\xAE\xA4\xE5\x85\xB3\xE9\x97\xAD */
 343                { 35, GPIOF_OUT_INIT_LOW,  "Blue LED"  }, /* \xE9\xBB\x98\xE8\xAE\xA4\xE5\x85\xB3\xE9\x97\xAD */
 344                { ... },
 345        };
 346
 347        err = gpio_request_one(31, GPIOF_IN, "Reset Button");
 348        if (err)
 349                ...
 350
 351        err = gpio_request_array(leds_gpios, ARRAY_SIZE(leds_gpios));
 352        if (err)
 353                ...
 354
 355        gpio_free_array(leds_gpios, ARRAY_SIZE(leds_gpios));
 356
 357
 358GPIO \xE6\x98\xA0\xE5\xB0\x84\xE5\x88\xB0 IRQ
 359--------------------
 360GPIO \xE7\xBC\x96\xE5\x8F\xB7\xE6\x98\xAF\xE6\x97\xA0\xE7\xAC\xA6\xE5\x8F\xB7\xE6\x95\xB4\xE6\x95\xB0;IRQ \xE7\xBC\x96\xE5\x8F\xB7\xE4\xB9\x9F\xE6\x98\xAF\xE3\x80\x82\xE8\xBF\x99\xE4\xBA\x9B\xE6\x9E\x84\xE6\x88\x90\xE4\xBA\x86\xE4\xB8\xA4\xE4\xB8\xAA\xE9\x80\xBB\xE8\xBE\x91\xE4\xB8\x8A\xE4\xB8\x8D\xE5\x90\x8C\xE7\x9A\x84\xE5\x91\xBD\xE5\x90\x8D\xE7\xA9\xBA\xE9\x97\xB4
 361(GPIO 0 \xE4\xB8\x8D\xE4\xB8\x80\xE5\xAE\x9A\xE4\xBD\xBF\xE7\x94\xA8 IRQ 0)\xE3\x80\x82\xE4\xBD\xA0\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x80\x9A\xE8\xBF\x87\xE4\xBB\xA5\xE4\xB8\x8B\xE5\x87\xBD\xE6\x95\xB0\xE5\x9C\xA8\xE5\xAE\x83\xE4\xBB\xAC\xE4\xB9\x8B\xE9\x97\xB4\xE5\xAE\x9E\xE7\x8E\xB0\xE6\x98\xA0\xE5\xB0\x84:
 362
 363        /* \xE6\x98\xA0\xE5\xB0\x84 GPIO \xE7\xBC\x96\xE5\x8F\xB7\xE5\x88\xB0 IRQ \xE7\xBC\x96\xE5\x8F\xB7 */
 364        int gpio_to_irq(unsigned gpio);
 365
 366        /* \xE6\x98\xA0\xE5\xB0\x84 IRQ \xE7\xBC\x96\xE5\x8F\xB7\xE5\x88\xB0 GPIO \xE7\xBC\x96\xE5\x8F\xB7 (\xE5\xB0\xBD\xE9\x87\x8F\xE9\x81\xBF\xE5\x85\x8D\xE4\xBD\xBF\xE7\x94\xA8) */
 367        int irq_to_gpio(unsigned irq);
 368
 369\xE5\xAE\x83\xE4\xBB\xAC\xE7\x9A\x84\xE8\xBF\x94\xE5\x9B\x9E\xE5\x80\xBC\xE4\xB8\xBA\xE5\xAF\xB9\xE5\xBA\x94\xE5\x91\xBD\xE5\x90\x8D\xE7\xA9\xBA\xE9\x97\xB4\xE7\x9A\x84\xE7\x9B\xB8\xE5\x85\xB3\xE7\xBC\x96\xE5\x8F\xB7\xEF\xBC\x8C\xE6\x88\x96\xE6\x98\xAF\xE8\xB4\x9F\xE7\x9A\x84\xE9\x94\x99\xE8\xAF\xAF\xE4\xBB\xA3\xE7\xA0\x81(\xE5\xA6\x82\xE6\x9E\x9C\xE6\x97\xA0\xE6\xB3\x95\xE6\x98\xA0\xE5\xB0\x84)\xE3\x80\x82
 370(\xE4\xBE\x8B\xE5\xA6\x82,\xE6\x9F\x90\xE4\xBA\x9B GPIO \xE6\x97\xA0\xE6\xB3\x95\xE5\x81\x9A\xE4\xB8\xBA IRQ \xE4\xBD\xBF\xE7\x94\xA8\xE3\x80\x82)\xE4\xBB\xA5\xE4\xB8\x8B\xE7\x9A\x84\xE7\xBC\x96\xE5\x8F\xB7\xE9\x94\x99\xE8\xAF\xAF\xE6\x98\xAF\xE6\x9C\xAA\xE7\xBB\x8F\xE6\xA3\x80\xE6\xB5\x8B\xE7\x9A\x84:\xE4\xBD\xBF\xE7\x94\xA8\xE4\xB8\x80\xE4\xB8\xAA
 371\xE6\x9C\xAA\xE9\x80\x9A\xE8\xBF\x87 gpio_direction_input()\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE8\xBE\x93\xE5\x85\xA5\xE7\x9A\x84 GPIO \xE7\xBC\x96\xE5\x8F\xB7\xEF\xBC\x8C\xE6\x88\x96\xE8\x80\x85\xE4\xBD\xBF\xE7\x94\xA8\xE4\xB8\x80\xE4\xB8\xAA
 372\xE5\xB9\xB6\xE9\x9D\x9E\xE6\x9D\xA5\xE6\xBA\x90\xE4\xBA\x8Egpio_to_irq()\xE7\x9A\x84 IRQ \xE7\xBC\x96\xE5\x8F\xB7\xE3\x80\x82
 373
 374\xE8\xBF\x99\xE4\xB8\xA4\xE4\xB8\xAA\xE6\x98\xA0\xE5\xB0\x84\xE5\x87\xBD\xE6\x95\xB0\xE5\x8F\xAF\xE8\x83\xBD\xE4\xBC\x9A\xE5\x9C\xA8\xE4\xBF\xA1\xE5\x8F\xB7\xE7\xBC\x96\xE5\x8F\xB7\xE7\x9A\x84\xE5\x8A\xA0\xE5\x87\x8F\xE8\xAE\xA1\xE7\xAE\x97\xE8\xBF\x87\xE7\xA8\x8B\xE4\xB8\x8A\xE8\x8A\xB1\xE4\xBA\x9B\xE6\x97\xB6\xE9\x97\xB4\xE3\x80\x82\xE5\xAE\x83\xE4\xBB\xAC\xE4\xB8\x8D\xE5\x8F\xAF\xE4\xBC\x91\xE7\x9C\xA0\xE3\x80\x82
 375
 376gpio_to_irq()\xE8\xBF\x94\xE5\x9B\x9E\xE7\x9A\x84\xE9\x9D\x9E\xE9\x94\x99\xE8\xAF\xAF\xE5\x80\xBC\xE5\x8F\xAF\xE4\xBB\xA5\xE4\xBC\xA0\xE9\x80\x92\xE7\xBB\x99 request_irq()\xE6\x88\x96\xE8\x80\x85 free_irq()\xE3\x80\x82
 377\xE5\xAE\x83\xE4\xBB\xAC\xE9\x80\x9A\xE5\xB8\xB8\xE9\x80\x9A\xE8\xBF\x87\xE6\x9D\xBF\xE7\xBA\xA7\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE5\x88\x9D\xE5\xA7\x8B\xE5\x8C\x96\xE4\xBB\xA3\xE7\xA0\x81\xE5\xAD\x98\xE6\x94\xBE\xE5\x88\xB0\xE5\xB9\xB3\xE5\x8F\xB0\xE8\xAE\xBE\xE5\xA4\x87\xE7\x9A\x84 IRQ \xE8\xB5\x84\xE6\xBA\x90\xE4\xB8\xAD\xE3\x80\x82\xE6\xB3\xA8\xE6\x84\x8F:IRQ
 378\xE8\xA7\xA6\xE5\x8F\x91\xE9\x80\x89\xE9\xA1\xB9\xE6\x98\xAF IRQ \xE6\x8E\xA5\xE5\x8F\xA3\xE7\x9A\x84\xE4\xB8\x80\xE9\x83\xA8\xE5\x88\x86\xEF\xBC\x8C\xE5\xA6\x82 IRQF_TRIGGER_FALLING\xEF\xBC\x8C\xE7\xB3\xBB\xE7\xBB\x9F\xE5\x94\xA4\xE9\x86\x92\xE8\x83\xBD\xE5\x8A\x9B
 379\xE4\xB9\x9F\xE6\x98\xAF\xE5\xA6\x82\xE6\xAD\xA4\xE3\x80\x82
 380
 381irq_to_gpio()\xE8\xBF\x94\xE5\x9B\x9E\xE7\x9A\x84\xE9\x9D\x9E\xE9\x94\x99\xE8\xAF\xAF\xE5\x80\xBC\xE5\xA4\xA7\xE5\xA4\x9A\xE6\x95\xB0\xE9\x80\x9A\xE5\xB8\xB8\xE5\x8F\xAF\xE4\xBB\xA5\xE8\xA2\xAB gpio_get_value()\xE6\x89\x80\xE4\xBD\xBF\xE7\x94\xA8\xEF\xBC\x8C
 382\xE6\xAF\x94\xE5\xA6\x82\xE5\x9C\xA8 IRQ \xE6\x98\xAF\xE6\xB2\xBF\xE8\xA7\xA6\xE5\x8F\x91\xE6\x97\xB6\xE5\x88\x9D\xE5\xA7\x8B\xE5\x8C\x96\xE6\x88\x96\xE6\x9B\xB4\xE6\x96\xB0\xE9\xA9\xB1\xE5\x8A\xA8\xE7\x8A\xB6\xE6\x80\x81\xE3\x80\x82\xE6\xB3\xA8\xE6\x84\x8F\xE6\x9F\x90\xE4\xBA\x9B\xE5\xB9\xB3\xE5\x8F\xB0\xE4\xB8\x8D\xE6\x94\xAF\xE6\x8C\x81\xE5\x8F\x8D\xE6\x98\xA0\xE5\xB0\x84,\xE6\x89\x80\xE4\xBB\xA5
 383\xE4\xBD\xA0\xE5\xBA\x94\xE8\xAF\xA5\xE5\xB0\xBD\xE9\x87\x8F\xE9\x81\xBF\xE5\x85\x8D\xE4\xBD\xBF\xE7\x94\xA8\xE5\xAE\x83\xE3\x80\x82
 384
 385
 386\xE6\xA8\xA1\xE6\x8B\x9F\xE5\xBC\x80\xE6\xBC\x8F\xE4\xBF\xA1\xE5\x8F\xB7
 387----------------------------
 388\xE6\x9C\x89\xE6\x97\xB6\xE5\x9C\xA8\xE5\x8F\xAA\xE6\x9C\x89\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3\xE4\xBF\xA1\xE5\x8F\xB7\xE4\xBD\x9C\xE4\xB8\xBA\xE5\xAE\x9E\xE9\x99\x85\xE9\xA9\xB1\xE5\x8A\xA8\xE7\xBB\x93\xE6\x9E\x9C(\xE8\xAF\x91\xE8\x80\x85\xE6\xB3\xA8:\xE5\xA4\x9A\xE4\xB8\xAA\xE8\xBE\x93\xE5\x87\xBA\xE8\xBF\x9E\xE6\x8E\xA5\xE4\xBA\x8E\xE4\xB8\x80\xE7\x82\xB9\xEF\xBC\x8C\xE9\x80\xBB\xE8\xBE\x91\xE7\x94\xB5\xE5\xB9\xB3
 389\xE7\xBB\x93\xE6\x9E\x9C\xE4\xB8\xBA\xE6\x89\x80\xE6\x9C\x89\xE8\xBE\x93\xE5\x87\xBA\xE7\x9A\x84\xE9\x80\xBB\xE8\xBE\x91\xE4\xB8\x8E)\xE7\x9A\x84\xE6\x97\xB6\xE5\x80\x99,\xE5\x85\xB1\xE4\xBA\xAB\xE7\x9A\x84\xE4\xBF\xA1\xE5\x8F\xB7\xE7\xBA\xBF\xE9\x9C\x80\xE8\xA6\x81\xE4\xBD\xBF\xE7\x94\xA8\xE2\x80\x9C\xE5\xBC\x80\xE6\xBC\x8F\xE2\x80\x9D\xE4\xBF\xA1\xE5\x8F\xB7\xE3\x80\x82(\xE8\xAF\xA5\xE6\x9C\xAF\xE8\xAF\xAD
 390\xE9\x80\x82\xE7\x94\xA8\xE4\xBA\x8E CMOS \xE7\xAE\xA1\xEF\xBC\x9B\xE8\x80\x8C TTL \xE7\x94\xA8\xE2\x80\x9C\xE9\x9B\x86\xE7\x94\xB5\xE6\x9E\x81\xE5\xBC\x80\xE8\xB7\xAF\xE2\x80\x9D\xE3\x80\x82)\xE4\xB8\x80\xE4\xB8\xAA\xE4\xB8\x8A\xE6\x8B\x89\xE7\x94\xB5\xE9\x98\xBB\xE4\xBD\xBF\xE4\xBF\xA1\xE5\x8F\xB7\xE4\xB8\xBA\xE9\xAB\x98\xE7\x94\xB5\xE5\xB9\xB3\xE3\x80\x82\xE8\xBF\x99
 391\xE6\x9C\x89\xE6\x97\xB6\xE8\xA2\xAB\xE7\xA7\xB0\xE4\xB8\xBA\xE2\x80\x9C\xE7\xBA\xBF\xE4\xB8\x8E\xE2\x80\x9D\xE3\x80\x82\xE5\xAE\x9E\xE9\x99\x85\xE4\xB8\x8A\xEF\xBC\x8C\xE4\xBB\x8E\xE8\xB4\x9F\xE9\x80\xBB\xE8\xBE\x91(\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3\xE4\xB8\xBA\xE7\x9C\x9F)\xE7\x9A\x84\xE8\xA7\x92\xE5\xBA\xA6\xE6\x9D\xA5\xE7\x9C\x8B\xEF\xBC\x8C\xE8\xBF\x99\xE6\x98\xAF\xE4\xB8\x80\xE4\xB8\xAA\xE2\x80\x9C\xE7\xBA\xBF\xE6\x88\x96\xE2\x80\x9D\xE3\x80\x82
 392
 393\xE4\xB8\x80\xE4\xB8\xAA\xE5\xBC\x80\xE6\xBC\x8F\xE4\xBF\xA1\xE5\x8F\xB7\xE7\x9A\x84\xE5\xB8\xB8\xE8\xA7\x81\xE4\xBE\x8B\xE5\xAD\x90\xE6\x98\xAF\xE5\x85\xB1\xE4\xBA\xAB\xE7\x9A\x84\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3\xE4\xBD\xBF\xE8\x83\xBD IRQ \xE4\xBF\xA1\xE5\x8F\xB7\xE7\xBA\xBF\xE3\x80\x82\xE6\xAD\xA4\xE5\xA4\x96,\xE6\x9C\x89\xE6\x97\xB6\xE5\x8F\x8C\xE5\x90\x91\xE6\x95\xB0\xE6\x8D\xAE\xE6\x80\xBB\xE7\xBA\xBF
 394\xE4\xBF\xA1\xE5\x8F\xB7\xE4\xB9\x9F\xE4\xBD\xBF\xE7\x94\xA8\xE6\xBC\x8F\xE6\x9E\x81\xE5\xBC\x80\xE8\xB7\xAF\xE4\xBF\xA1\xE5\x8F\xB7\xE3\x80\x82
 395
 396\xE6\x9F\x90\xE4\xBA\x9B GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE7\x9B\xB4\xE6\x8E\xA5\xE6\x94\xAF\xE6\x8C\x81\xE5\xBC\x80\xE6\xBC\x8F\xE8\xBE\x93\xE5\x87\xBA\xEF\xBC\x8C\xE8\xBF\x98\xE6\x9C\x89\xE8\xAE\xB8\xE5\xA4\x9A\xE4\xB8\x8D\xE6\x94\xAF\xE6\x8C\x81\xE3\x80\x82\xE5\xBD\x93\xE4\xBD\xA0\xE9\x9C\x80\xE8\xA6\x81\xE5\xBC\x80\xE6\xBC\x8F\xE4\xBF\xA1\xE5\x8F\xB7\xEF\xBC\x8C\xE4\xBD\x86
 397\xE7\xA1\xAC\xE4\xBB\xB6\xE5\x8F\x88\xE4\xB8\x8D\xE7\x9B\xB4\xE6\x8E\xA5\xE6\x94\xAF\xE6\x8C\x81\xE7\x9A\x84\xE6\x97\xB6\xE5\x80\x99\xEF\xBC\x8C\xE4\xB8\x80\xE4\xB8\xAA\xE5\xB8\xB8\xE7\x94\xA8\xE7\x9A\x84\xE6\x96\xB9\xE6\xB3\x95\xE6\x98\xAF\xE7\x94\xA8\xE4\xBB\xBB\xE4\xBD\x95\xE5\x8D\xB3\xE5\x8F\xAF\xE4\xBD\x9C\xE8\xBE\x93\xE5\x85\xA5\xE4\xB9\x9F\xE5\x8F\xAF\xE4\xBD\x9C\xE8\xBE\x93\xE5\x87\xBA\xE7\x9A\x84 GPIO
 398\xE5\xBC\x95\xE8\x84\x9A\xE6\x9D\xA5\xE6\xA8\xA1\xE6\x8B\x9F:
 399
 400 LOW:   gpio_direction_output(gpio, 0) ... \xE8\xBF\x99\xE4\xBB\xA3\xE7\xA0\x81\xE9\xA9\xB1\xE5\x8A\xA8\xE4\xBF\xA1\xE5\x8F\xB7\xE5\xB9\xB6\xE8\xA6\x86\xE7\x9B\x96
 401        \xE4\xB8\x8A\xE6\x8B\x89\xE9\x85\x8D\xE7\xBD\xAE\xE3\x80\x82
 402
 403 HIGH:  gpio_direction_input(gpio) ... \xE8\xBF\x99\xE4\xBB\xA3\xE7\xA0\x81\xE5\x85\xB3\xE9\x97\xAD\xE8\xBE\x93\xE5\x87\xBA,\xE6\x89\x80\xE4\xBB\xA5\xE4\xB8\x8A\xE6\x8B\x89\xE7\x94\xB5\xE9\x98\xBB
 404        (\xE6\x88\x96\xE5\x85\xB6\xE4\xBB\x96\xE7\x9A\x84\xE4\xB8\x80\xE4\xBA\x9B\xE5\x99\xA8\xE4\xBB\xB6)\xE6\x8E\xA7\xE5\x88\xB6\xE4\xBA\x86\xE4\xBF\xA1\xE5\x8F\xB7\xE3\x80\x82
 405
 406\xE5\xA6\x82\xE6\x9E\x9C\xE4\xBD\xA0\xE5\xB0\x86\xE4\xBF\xA1\xE5\x8F\xB7\xE7\xBA\xBF\xE2\x80\x9C\xE9\xA9\xB1\xE5\x8A\xA8\xE2\x80\x9D\xE4\xB8\xBA\xE9\xAB\x98\xE7\x94\xB5\xE5\xB9\xB3\xEF\xBC\x8C\xE4\xBD\x86\xE6\x98\xAF gpio_get_value(gpio)\xE6\x8A\xA5\xE5\x91\x8A\xE4\xBA\x86\xE4\xB8\x80\xE4\xB8\xAA
 407\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3(\xE5\x9C\xA8\xE9\x80\x82\xE5\xBD\x93\xE7\x9A\x84\xE4\xB8\x8A\xE5\x8D\x87\xE6\x97\xB6\xE9\x97\xB4\xE5\x90\x8E)\xEF\xBC\x8C\xE4\xBD\xA0\xE5\xB0\xB1\xE5\x8F\xAF\xE4\xBB\xA5\xE7\x9F\xA5\xE9\x81\x93\xE6\x98\xAF\xE5\x85\xB6\xE4\xBB\x96\xE7\x9A\x84\xE4\xB8\x80\xE4\xBA\x9B\xE7\xBB\x84\xE4\xBB\xB6\xE5\xB0\x86\xE5\x85\xB1\xE4\xBA\xAB\xE4\xBF\xA1\xE5\x8F\xB7\xE7\xBA\xBF\xE6\x8B\x89\xE4\xBD\x8E\xE4\xBA\x86\xE3\x80\x82
 408\xE8\xBF\x99\xE4\xB8\x8D\xE4\xB8\x80\xE5\xAE\x9A\xE6\x98\xAF\xE9\x94\x99\xE8\xAF\xAF\xE7\x9A\x84\xE3\x80\x82\xE4\xB8\x80\xE4\xB8\xAA\xE5\xB8\xB8\xE8\xA7\x81\xE7\x9A\x84\xE4\xBE\x8B\xE5\xAD\x90\xE5\xB0\xB1\xE6\x98\xAF I2C \xE6\x97\xB6\xE9\x92\x9F\xE7\x9A\x84\xE5\xBB\xB6\xE9\x95\xBF\xEF\xBC\x9A\xE4\xB8\x80\xE4\xB8\xAA\xE9\x9C\x80\xE8\xA6\x81\xE8\xBE\x83\xE6\x85\xA2\xE6\x97\xB6\xE9\x92\x9F\xE7\x9A\x84
 409\xE4\xBB\x8E\xE8\xAE\xBE\xE5\xA4\x87\xE5\xBB\xB6\xE8\xBF\x9F SCK \xE7\x9A\x84\xE4\xB8\x8A\xE5\x8D\x87\xE6\xB2\xBF\xEF\xBC\x8C\xE8\x80\x8C I2C \xE4\xB8\xBB\xE8\xAE\xBE\xE5\xA4\x87\xE7\x9B\xB8\xE5\xBA\x94\xE5\x9C\xB0\xE8\xB0\x83\xE6\x95\xB4\xE5\x85\xB6\xE4\xBF\xA1\xE5\x8F\xB7\xE4\xBC\xA0\xE8\xBE\x93\xE9\x80\x9F\xE7\x8E\x87\xE3\x80\x82
 410
 411
 412\xE8\xBF\x99\xE4\xBA\x9B\xE5\x85\xAC\xE7\xBA\xA6\xE5\xBF\xBD\xE7\x95\xA5\xE4\xBA\x86\xE4\xBB\x80\xE4\xB9\x88?
 413================
 414\xE8\xBF\x99\xE4\xBA\x9B\xE5\x85\xAC\xE7\xBA\xA6\xE5\xBF\xBD\xE7\x95\xA5\xE7\x9A\x84\xE6\x9C\x80\xE5\xA4\xA7\xE4\xB8\x80\xE4\xBB\xB6\xE4\xBA\x8B\xE5\xB0\xB1\xE6\x98\xAF\xE5\xBC\x95\xE8\x84\x9A\xE5\xA4\x8D\xE7\x94\xA8\xEF\xBC\x8C\xE5\x9B\xA0\xE4\xB8\xBA\xE8\xBF\x99\xE5\xB1\x9E\xE4\xBA\x8E\xE9\xAB\x98\xE5\xBA\xA6\xE8\x8A\xAF\xE7\x89\x87\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE5\xB1\x9E\xE6\x80\xA7\xE4\xB8\x94
 415\xE6\xB2\xA1\xE6\x9C\x89\xE5\x8F\xAF\xE7\xA7\xBB\xE6\xA4\x8D\xE6\x80\xA7\xE3\x80\x82\xE6\x9F\x90\xE4\xB8\xAA\xE5\xB9\xB3\xE5\x8F\xB0\xE5\x8F\xAF\xE8\x83\xBD\xE4\xB8\x8D\xE9\x9C\x80\xE8\xA6\x81\xE6\x98\x8E\xE7\xA1\xAE\xE7\x9A\x84\xE5\xA4\x8D\xE7\x94\xA8\xE4\xBF\xA1\xE6\x81\xAF\xEF\xBC\x9B\xE6\x9C\x89\xE7\x9A\x84\xE5\xAF\xB9\xE4\xBA\x8E\xE4\xBB\xBB\xE6\x84\x8F\xE7\xBB\x99\xE5\xAE\x9A\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A
 416\xE5\x8F\xAF\xE8\x83\xBD\xE5\x8F\xAA\xE6\x9C\x89\xE4\xB8\xA4\xE4\xB8\xAA\xE5\x8A\x9F\xE8\x83\xBD\xE9\x80\x89\xE9\xA1\xB9\xEF\xBC\x9B\xE6\x9C\x89\xE7\x9A\x84\xE5\x8F\xAF\xE8\x83\xBD\xE6\xAF\x8F\xE4\xB8\xAA\xE5\xBC\x95\xE8\x84\x9A\xE6\x9C\x89\xE5\x85\xAB\xE4\xB8\xAA\xE5\x8A\x9F\xE8\x83\xBD\xE9\x80\x89\xE9\xA1\xB9\xEF\xBC\x9B\xE6\x9C\x89\xE7\x9A\x84\xE5\x8F\xAF\xE8\x83\xBD\xE5\x8F\xAF\xE4\xBB\xA5\xE5\xB0\x86
 417\xE5\x87\xA0\xE4\xB8\xAA\xE5\xBC\x95\xE8\x84\x9A\xE4\xB8\xAD\xE7\x9A\x84\xE4\xBB\xBB\xE4\xBD\x95\xE4\xB8\x80\xE4\xB8\xAA\xE4\xBD\x9C\xE4\xB8\xBA\xE7\xBB\x99\xE5\xAE\x9A\xE7\x9A\x84 GPIO\xE3\x80\x82(\xE6\x98\xAF\xE7\x9A\x84\xEF\xBC\x8C\xE8\xBF\x99\xE4\xBA\x9B\xE4\xBE\x8B\xE5\xAD\x90\xE9\x83\xBD\xE6\x9D\xA5\xE8\x87\xAA\xE4\xBA\x8E\xE5\xBD\x93\xE5\x89\x8D\xE8\xBF\x90\xE8\xA1\x8C
 418Linux \xE7\x9A\x84\xE7\xB3\xBB\xE7\xBB\x9F\xE3\x80\x82)
 419
 420\xE5\x9C\xA8\xE6\x9F\x90\xE4\xBA\x9B\xE7\xB3\xBB\xE7\xBB\x9F\xE4\xB8\xAD,\xE4\xB8\x8E\xE5\xBC\x95\xE8\x84\x9A\xE5\xA4\x8D\xE7\x94\xA8\xE7\x9B\xB8\xE5\x85\xB3\xE7\x9A\x84\xE6\x98\xAF\xE9\x85\x8D\xE7\xBD\xAE\xE5\x92\x8C\xE4\xBD\xBF\xE8\x83\xBD\xE9\x9B\x86\xE6\x88\x90\xE7\x9A\x84\xE4\xB8\x8A\xE3\x80\x81\xE4\xB8\x8B\xE6\x8B\x89\xE6\xA8\xA1\xE5\xBC\x8F\xE3\x80\x82\xE5\xB9\xB6\xE4\xB8\x8D\xE6\x98\xAF\xE6\x89\x80\xE6\x9C\x89
 421\xE5\xB9\xB3\xE5\x8F\xB0\xE9\x83\xBD\xE6\x94\xAF\xE6\x8C\x81\xE8\xBF\x99\xE7\xA7\x8D\xE6\xA8\xA1\xE5\xBC\x8F,\xE6\x88\x96\xE8\x80\x85\xE4\xB8\x8D\xE4\xBC\x9A\xE4\xBB\xA5\xE7\x9B\xB8\xE5\x90\x8C\xE7\x9A\x84\xE6\x96\xB9\xE5\xBC\x8F\xE6\x9D\xA5\xE6\x94\xAF\xE6\x8C\x81\xE8\xBF\x99\xE7\xA7\x8D\xE6\xA8\xA1\xE5\xBC\x8F\xEF\xBC\x9B\xE4\xB8\x94\xE4\xBB\xBB\xE4\xBD\x95\xE7\xBB\x99\xE5\xAE\x9A\xE7\x9A\x84\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF
 422\xE5\x8F\xAF\xE8\x83\xBD\xE4\xBD\xBF\xE7\x94\xA8\xE5\xA4\x96\xE7\xBD\xAE\xE7\x9A\x84\xE4\xB8\x8A\xE6\x8B\x89(\xE6\x88\x96\xE4\xB8\x8B\xE6\x8B\x89)\xE7\x94\xB5\xE9\x98\xBB,\xE8\xBF\x99\xE6\x97\xB6\xE8\x8A\xAF\xE7\x89\x87\xE4\xB8\x8A\xE7\x9A\x84\xE5\xB0\xB1\xE4\xB8\x8D\xE5\xBA\x94\xE8\xAF\xA5\xE4\xBD\xBF\xE7\x94\xA8\xE3\x80\x82(\xE5\xBD\x93\xE4\xB8\x80\xE4\xB8\xAA\xE7\x94\xB5\xE8\xB7\xAF\xE9\x9C\x80\xE8\xA6\x81
 4235kOhm \xE7\x9A\x84\xE6\x8B\x89\xE5\x8A\xA8\xE7\x94\xB5\xE9\x98\xBB,\xE8\x8A\xAF\xE7\x89\x87\xE4\xB8\x8A\xE7\x9A\x84 100 kOhm \xE7\x94\xB5\xE9\x98\xBB\xE5\xB0\xB1\xE4\xB8\x8D\xE8\x83\xBD\xE5\x81\x9A\xE5\x88\xB0\xE3\x80\x82)\xE5\x90\x8C\xE6\xA0\xB7\xE7\x9A\x84\xEF\xBC\x8C\xE9\xA9\xB1\xE5\x8A\xA8\xE8\x83\xBD\xE5\x8A\x9B
 424(2 mA vs 20 mA)\xE5\x92\x8C\xE7\x94\xB5\xE5\x8E\x8B(1.8V vs 3.3V)\xE6\x98\xAF\xE5\xB9\xB3\xE5\x8F\xB0\xE7\x89\xB9\xE5\xAE\x9A\xE9\x97\xAE\xE9\xA2\x98,\xE5\xB0\xB1\xE5\x83\x8F\xE6\xA8\xA1\xE5\x9E\x8B\xE4\xB8\x80\xE6\xA0\xB7\xE5\x9C\xA8
 425\xE5\x8F\xAF\xE9\x85\x8D\xE7\xBD\xAE\xE5\xBC\x95\xE8\x84\x9A\xE5\x92\x8C GPIO \xE4\xB9\x8B\xE9\x97\xB4(\xE6\xB2\xA1)\xE6\x9C\x89\xE4\xB8\x80\xE4\xB8\x80\xE5\xAF\xB9\xE5\xBA\x94\xE7\x9A\x84\xE5\x85\xB3\xE7\xB3\xBB\xE3\x80\x82
 426
 427\xE8\xBF\x98\xE6\x9C\x89\xE5\x85\xB6\xE4\xBB\x96\xE4\xB8\x80\xE4\xBA\x9B\xE7\xB3\xBB\xE7\xBB\x9F\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE6\x9C\xBA\xE5\x88\xB6\xE6\xB2\xA1\xE6\x9C\x89\xE5\x9C\xA8\xE8\xBF\x99\xE9\x87\x8C\xE6\x8C\x87\xE5\x87\xBA\xEF\xBC\x8C\xE4\xBE\x8B\xE5\xA6\x82\xE4\xB8\x8A\xE8\xBF\xB0\xE7\x9A\x84\xE8\xBE\x93\xE5\x85\xA5\xE5\x8E\xBB\xE6\xAF\x9B\xE5\x88\xBA\xE5\x92\x8C\xE7\xBA\xBF\xE4\xB8\x8E\xE8\xBE\x93\xE5\x87\xBA
 428\xE9\x80\x89\xE9\xA1\xB9\xE3\x80\x82\xE7\xA1\xAC\xE4\xBB\xB6\xE5\x8F\xAF\xE8\x83\xBD\xE6\x94\xAF\xE6\x8C\x81\xE6\x89\xB9\xE9\x87\x8F\xE8\xAF\xBB\xE6\x88\x96\xE5\x86\x99 GPIO\xEF\xBC\x8C\xE4\xBD\x86\xE6\x98\xAF\xE9\x82\xA3\xE4\xB8\x80\xE8\x88\xAC\xE6\x98\xAF\xE9\x85\x8D\xE7\xBD\xAE\xE7\x9B\xB8\xE5\x85\xB3\xE7\x9A\x84\xEF\xBC\x9A\xE5\xAF\xB9\xE4\xBA\x8E\xE5\xA4\x84\xE4\xBA\x8E\xE5\x90\x8C\xE4\xB8\x80
 429\xE5\x9D\x97\xE5\x8C\xBA(bank)\xE7\x9A\x84GPIO\xE3\x80\x82(GPIO \xE9\x80\x9A\xE5\xB8\xB8\xE4\xBB\xA5 16 \xE6\x88\x96 32 \xE4\xB8\xAA\xE7\xBB\x84\xE6\x88\x90\xE4\xB8\x80\xE4\xB8\xAA\xE5\x8C\xBA\xE5\x9D\x97\xEF\xBC\x8C\xE4\xB8\x80\xE4\xB8\xAA\xE7\xBB\x99\xE5\xAE\x9A\xE7\x9A\x84
 430\xE7\x89\x87\xE4\xB8\x8A\xE7\xB3\xBB\xE7\xBB\x9F\xE4\xB8\x80\xE8\x88\xAC\xE6\x9C\x89\xE5\x87\xA0\xE4\xB8\xAA\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE5\x8C\xBA\xE5\x9D\x97\xE3\x80\x82)\xE6\x9F\x90\xE4\xBA\x9B\xE7\xB3\xBB\xE7\xBB\x9F\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x80\x9A\xE8\xBF\x87\xE8\xBE\x93\xE5\x87\xBA GPIO \xE8\xA7\xA6\xE5\x8F\x91 IRQ\xEF\xBC\x8C
 431\xE6\x88\x96\xE8\x80\x85\xE4\xBB\x8E\xE5\xB9\xB6\xE9\x9D\x9E\xE4\xBB\xA5 GPIO \xE7\xAE\xA1\xE7\x90\x86\xE7\x9A\x84\xE5\xBC\x95\xE8\x84\x9A\xE5\x8F\x96\xE5\x80\xBC\xE3\x80\x82\xE8\xBF\x99\xE4\xBA\x9B\xE6\x9C\xBA\xE5\x88\xB6\xE7\x9A\x84\xE7\x9B\xB8\xE5\x85\xB3\xE4\xBB\xA3\xE7\xA0\x81\xE6\xB2\xA1\xE6\x9C\x89\xE5\xBF\x85\xE8\xA6\x81\xE5\x85\xB7\xE6\x9C\x89\xE5\x8F\xAF\xE7\xA7\xBB\xE6\xA4\x8D\xE6\x80\xA7\xE3\x80\x82
 432
 433\xE5\xBD\x93\xE5\x89\x8D\xEF\xBC\x8C\xE5\x8A\xA8\xE6\x80\x81\xE5\xAE\x9A\xE4\xB9\x89 GPIO \xE5\xB9\xB6\xE4\xB8\x8D\xE6\x98\xAF\xE6\xA0\x87\xE5\x87\x86\xE7\x9A\x84\xEF\xBC\x8C\xE4\xBE\x8B\xE5\xA6\x82\xE4\xBD\x9C\xE4\xB8\xBA\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\x80\xE4\xB8\xAA\xE5\xB8\xA6\xE6\x9C\x89\xE6\x9F\x90\xE4\xBA\x9B GPIO \xE6\x89\xA9\xE5\xB1\x95\xE5\x99\xA8\xE7\x9A\x84
 434\xE9\x99\x84\xE5\x8A\xA0\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF\xE7\x9A\x84\xE5\x89\xAF\xE4\xBD\x9C\xE7\x94\xA8\xE3\x80\x82
 435
 436GPIO \xE5\xAE\x9E\xE7\x8E\xB0\xE8\x80\x85\xE7\x9A\x84\xE6\xA1\x86\xE6\x9E\xB6 (\xE5\x8F\xAF\xE9\x80\x89)
 437=====================
 438\xE5\x89\x8D\xE9\x9D\xA2\xE6\x8F\x90\xE5\x88\xB0\xE4\xBA\x86\xEF\xBC\x8C\xE6\x9C\x89\xE4\xB8\x80\xE4\xB8\xAA\xE5\x8F\xAF\xE9\x80\x89\xE7\x9A\x84\xE5\xAE\x9E\xE7\x8E\xB0\xE6\xA1\x86\xE6\x9E\xB6\xEF\xBC\x8C\xE8\xAE\xA9\xE5\xB9\xB3\xE5\x8F\xB0\xE4\xBD\xBF\xE7\x94\xA8\xE7\x9B\xB8\xE5\x90\x8C\xE7\x9A\x84\xE7\xBC\x96\xE7\xA8\x8B\xE6\x8E\xA5\xE5\x8F\xA3\xEF\xBC\x8C\xE6\x9B\xB4\xE5\x8A\xA0\xE7\xAE\x80\xE5\x8D\x95\xE5\x9C\xB0\xE6\x94\xAF\xE6\x8C\x81
 439\xE4\xB8\x8D\xE5\x90\x8C\xE7\xA7\x8D\xE7\xB1\xBB\xE7\x9A\x84 GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE3\x80\x82\xE8\xBF\x99\xE4\xB8\xAA\xE6\xA1\x86\xE6\x9E\xB6\xE7\xA7\xB0\xE4\xB8\xBA"gpiolib"\xE3\x80\x82
 440
 441\xE4\xBD\x9C\xE4\xB8\xBA\xE4\xB8\x80\xE4\xB8\xAA\xE8\xBE\x85\xE5\x8A\xA9\xE8\xB0\x83\xE8\xAF\x95\xE5\x8A\x9F\xE8\x83\xBD\xEF\xBC\x8C\xE5\xA6\x82\xE6\x9E\x9C debugfs \xE5\x8F\xAF\xE7\x94\xA8\xEF\xBC\x8C\xE5\xB0\xB1\xE4\xBC\x9A\xE6\x9C\x89\xE4\xB8\x80\xE4\xB8\xAA /sys/kernel/debug/gpio
 442\xE6\x96\x87\xE4\xBB\xB6\xE3\x80\x82\xE9\x80\x9A\xE8\xBF\x87\xE8\xBF\x99\xE4\xB8\xAA\xE6\xA1\x86\xE6\x9E\xB6\xEF\xBC\x8C\xE5\xAE\x83\xE5\x8F\xAF\xE4\xBB\xA5\xE5\x88\x97\xE5\x87\xBA\xE6\x89\x80\xE6\x9C\x89\xE6\xB3\xA8\xE5\x86\x8C\xE7\x9A\x84\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8,\xE4\xBB\xA5\xE5\x8F\x8A\xE5\xBD\x93\xE5\x89\x8D\xE6\xAD\xA3\xE5\x9C\xA8\xE4\xBD\xBF\xE7\x94\xA8\xE4\xB8\xAD\xE7\x9A\x84 GPIO
 443\xE7\x9A\x84\xE7\x8A\xB6\xE6\x80\x81\xE3\x80\x82
 444
 445
 446\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE9\xA9\xB1\xE5\x8A\xA8: gpio_chip
 447-------------------
 448\xE5\x9C\xA8\xE6\xA1\x86\xE6\x9E\xB6\xE4\xB8\xAD\xE6\xAF\x8F\xE4\xB8\xAA GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE9\x83\xBD\xE5\x8C\x85\xE8\xA3\x85\xE4\xB8\xBA\xE4\xB8\x80\xE4\xB8\xAA "struct gpio_chip"\xEF\xBC\x8C\xE4\xBB\x96\xE5\x8C\x85\xE5\x90\xAB\xE4\xBA\x86
 449\xE8\xAF\xA5\xE7\xB1\xBB\xE5\x9E\x8B\xE7\x9A\x84\xE6\xAF\x8F\xE4\xB8\xAA\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE7\x9A\x84\xE5\xB8\xB8\xE7\x94\xA8\xE4\xBF\xA1\xE6\x81\xAF:
 450
 451 - \xE8\xAE\xBE\xE7\xBD\xAE GPIO \xE6\x96\xB9\xE5\x90\x91\xE7\x9A\x84\xE6\x96\xB9\xE6\xB3\x95
 452 - \xE7\x94\xA8\xE4\xBA\x8E\xE8\xAE\xBF\xE9\x97\xAE GPIO \xE5\x80\xBC\xE7\x9A\x84\xE6\x96\xB9\xE6\xB3\x95
 453 - \xE5\x91\x8A\xE7\x9F\xA5\xE8\xB0\x83\xE7\x94\xA8\xE5\x85\xB6\xE6\x96\xB9\xE6\xB3\x95\xE6\x98\xAF\xE5\x90\xA6\xE5\x8F\xAF\xE8\x83\xBD\xE4\xBC\x91\xE7\x9C\xA0\xE7\x9A\x84\xE6\xA0\x87\xE5\xBF\x97
 454 - \xE5\x8F\xAF\xE9\x80\x89\xE7\x9A\x84 debugfs \xE4\xBF\xA1\xE6\x81\xAF\xE5\xAF\xBC\xE5\x87\xBA\xE6\x96\xB9\xE6\xB3\x95 (\xE6\x98\xBE\xE7\xA4\xBA\xE7\xB1\xBB\xE4\xBC\xBC\xE4\xB8\x8A\xE6\x8B\x89\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\x80\xE6\xA0\xB7\xE7\x9A\x84\xE9\xA2\x9D\xE5\xA4\x96\xE7\x8A\xB6\xE6\x80\x81)
 455 - \xE8\xAF\x8A\xE6\x96\xAD\xE6\xA0\x87\xE7\xAD\xBE
 456
 457\xE4\xB9\x9F\xE5\x8C\x85\xE5\x90\xAB\xE4\xBA\x86\xE6\x9D\xA5\xE8\x87\xAA device.platform_data \xE7\x9A\x84\xE6\xAF\x8F\xE4\xB8\xAA\xE5\xAE\x9E\xE4\xBE\x8B\xE7\x9A\x84\xE6\x95\xB0\xE6\x8D\xAE\xEF\xBC\x9A\xE5\xAE\x83\xE7\xAC\xAC\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE7\x9A\x84
 458\xE7\xBC\x96\xE5\x8F\xB7\xE5\x92\x8C\xE5\xAE\x83\xE5\x8F\xAF\xE7\x94\xA8\xE7\x9A\x84 GPIO \xE7\x9A\x84\xE6\x95\xB0\xE9\x87\x8F\xE3\x80\x82
 459
 460\xE5\xAE\x9E\xE7\x8E\xB0 gpio_chip \xE7\x9A\x84\xE4\xBB\xA3\xE7\xA0\x81\xE5\xBA\x94\xE6\x94\xAF\xE6\x8C\x81\xE5\xA4\x9A\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE5\xAE\x9E\xE4\xBE\x8B\xEF\xBC\x8C\xE8\xBF\x99\xE5\x8F\xAF\xE8\x83\xBD\xE4\xBD\xBF\xE7\x94\xA8\xE9\xA9\xB1\xE5\x8A\xA8\xE6\xA8\xA1\xE5\x9E\x8B\xE3\x80\x82\xE9\x82\xA3\xE4\xBA\x9B\xE4\xBB\xA3\xE7\xA0\x81\xE8\xA6\x81
 461\xE9\x85\x8D\xE7\xBD\xAE\xE6\xAF\x8F\xE4\xB8\xAA gpio_chip\xEF\xBC\x8C\xE5\xB9\xB6\xE5\x8F\x91\xE8\xB5\xB7gpiochip_add()\xE3\x80\x82\xE5\x8D\xB8\xE8\xBD\xBD\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE5\xBE\x88\xE5\xB0\x91\xE8\xA7\x81\xEF\xBC\x8C
 462\xE4\xBD\x86\xE5\x9C\xA8\xE5\xBF\x85\xE8\xA6\x81\xE7\x9A\x84\xE6\x97\xB6\xE5\x80\x99\xE5\x8F\xAF\xE4\xBB\xA5\xE4\xBD\xBF\xE7\x94\xA8 gpiochip_remove()\xE3\x80\x82
 463
 464\xE5\xA4\xA7\xE9\x83\xA8\xE5\x88\x86 gpio_chip \xE6\x98\xAF\xE4\xB8\x80\xE4\xB8\xAA\xE5\xAE\x9E\xE4\xBE\x8B\xE7\x89\xB9\xE5\xAE\x9A\xE7\xBB\x93\xE6\x9E\x84\xE4\xBD\x93\xE7\x9A\x84\xE4\xB8\x80\xE9\x83\xA8\xE5\x88\x86\xEF\xBC\x8C\xE8\x80\x8C\xE5\xB9\xB6\xE4\xB8\x8D\xE5\xB0\x86 GPIO \xE6\x8E\xA5\xE5\x8F\xA3\xE5\x8D\x95\xE7\x8B\xAC
 465\xE6\x9A\xB4\xE9\x9C\xB2\xE5\x87\xBA\xE6\x9D\xA5,\xE6\xAF\x94\xE5\xA6\x82\xE7\xBC\x96\xE5\x9D\x80\xE3\x80\x81\xE7\x94\xB5\xE6\xBA\x90\xE7\xAE\xA1\xE7\x90\x86\xE7\xAD\x89\xE3\x80\x82\xE7\xB1\xBB\xE4\xBC\xBC\xE7\xBC\x96\xE8\xA7\xA3\xE7\xA0\x81\xE5\x99\xA8\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE8\x8A\xAF\xE7\x89\x87\xE4\xBC\x9A\xE6\x9C\x89\xE5\xA4\x8D\xE6\x9D\x82\xE7\x9A\x84\xE9\x9D\x9E GPIO
 466\xE7\x8A\xB6\xE6\x80\x81\xE3\x80\x82
 467
 468\xE4\xBB\xBB\xE4\xBD\x95\xE4\xB8\x80\xE4\xB8\xAA debugfs \xE4\xBF\xA1\xE6\x81\xAF\xE5\xAF\xBC\xE5\x87\xBA\xE6\x96\xB9\xE6\xB3\x95\xE9\x80\x9A\xE5\xB8\xB8\xE5\xBA\x94\xE8\xAF\xA5\xE5\xBF\xBD\xE7\x95\xA5\xE8\xBF\x98\xE6\x9C\xAA\xE7\x94\xB3\xE8\xAF\xB7\xE4\xBD\x9C\xE4\xB8\xBA GPIO \xE7\x9A\x84\xE4\xBF\xA1\xE5\x8F\xB7\xE7\xBA\xBF\xE3\x80\x82
 469\xE4\xBB\x96\xE4\xBB\xAC\xE5\x8F\xAF\xE4\xBB\xA5\xE4\xBD\xBF\xE7\x94\xA8 gpiochip_is_requested()\xE6\xB5\x8B\xE8\xAF\x95\xEF\xBC\x8C\xE5\xBD\x93\xE8\xBF\x99\xE4\xB8\xAA GPIO \xE5\xB7\xB2\xE7\xBB\x8F\xE7\x94\xB3\xE8\xAF\xB7\xE8\xBF\x87\xE4\xBA\x86
 470\xE5\xB0\xB1\xE8\xBF\x94\xE5\x9B\x9E\xE7\x9B\xB8\xE5\x85\xB3\xE7\x9A\x84\xE6\xA0\x87\xE7\xAD\xBE\xEF\xBC\x8C\xE5\x90\xA6\xE5\x88\x99\xE8\xBF\x94\xE5\x9B\x9E NULL\xE3\x80\x82
 471
 472
 473\xE5\xB9\xB3\xE5\x8F\xB0\xE6\x94\xAF\xE6\x8C\x81
 474-------
 475\xE4\xB8\xBA\xE4\xBA\x86\xE6\x94\xAF\xE6\x8C\x81\xE8\xBF\x99\xE4\xB8\xAA\xE6\xA1\x86\xE6\x9E\xB6\xEF\xBC\x8C\xE4\xB8\x80\xE4\xB8\xAA\xE5\xB9\xB3\xE5\x8F\xB0\xE7\x9A\x84 Kconfig \xE6\x96\x87\xE4\xBB\xB6\xE5\xB0\x86\xE4\xBC\x9A "select"(\xE9\x80\x89\xE6\x8B\xA9)
 476ARCH_REQUIRE_GPIOLIB \xE6\x88\x96 ARCH_WANT_OPTIONAL_GPIOLIB\xEF\xBC\x8C\xE5\xB9\xB6\xE8\xAE\xA9\xE5\xAE\x83\xE7\x9A\x84
 477<asm/gpio.h> \xE5\x8C\x85\xE5\x90\xAB <asm-generic/gpio.h>\xEF\xBC\x8C\xE5\x90\x8C\xE6\x97\xB6\xE5\xAE\x9A\xE4\xB9\x89\xE4\xB8\x89\xE4\xB8\xAA\xE6\x96\xB9\xE6\xB3\x95:
 478gpio_get_value()\xE3\x80\x81gpio_set_value()\xE5\x92\x8C gpio_cansleep()\xE3\x80\x82
 479
 480\xE5\xAE\x83\xE4\xB9\x9F\xE5\xBA\x94\xE6\x8F\x90\xE4\xBE\x9B\xE4\xB8\x80\xE4\xB8\xAA ARCH_NR_GPIOS \xE7\x9A\x84\xE5\xAE\x9A\xE4\xB9\x89\xE5\x80\xBC\xEF\xBC\x8C\xE8\xBF\x99\xE6\xA0\xB7\xE5\x8F\xAF\xE4\xBB\xA5\xE6\x9B\xB4\xE5\xA5\xBD\xE5\x9C\xB0\xE5\x8F\x8D\xE6\x98\xA0\xE8\xAF\xA5\xE5\xB9\xB3\xE5\x8F\xB0 GPIO
 481\xE7\x9A\x84\xE5\xAE\x9E\xE9\x99\x85\xE6\x95\xB0\xE9\x87\x8F,\xE8\x8A\x82\xE7\x9C\x81\xE9\x9D\x99\xE6\x80\x81\xE8\xA1\xA8\xE7\x9A\x84\xE7\xA9\xBA\xE9\x97\xB4\xE3\x80\x82(\xE8\xBF\x99\xE4\xB8\xAA\xE5\xAE\x9A\xE4\xB9\x89\xE5\x80\xBC\xE5\xBA\x94\xE8\xAF\xA5\xE5\x8C\x85\xE5\x90\xAB\xE7\x89\x87\xE4\xB8\x8A\xE7\xB3\xBB\xE7\xBB\x9F\xE5\x86\x85\xE5\xBB\xBA GPIO \xE5\x92\x8C
 482GPIO \xE6\x89\xA9\xE5\xB1\x95\xE5\x99\xA8\xE4\xB8\xAD\xE7\x9A\x84\xE6\x95\xB0\xE6\x8D\xAE\xE3\x80\x82)
 483
 484ARCH_REQUIRE_GPIOLIB \xE6\x84\x8F\xE5\x91\xB3\xE7\x9D\x80 gpiolib \xE6\xA0\xB8\xE5\xBF\x83\xE5\x9C\xA8\xE8\xBF\x99\xE4\xB8\xAA\xE6\x9E\x84\xE6\x9E\xB6\xE4\xB8\xAD\xE5\xB0\x86\xE6\x80\xBB\xE6\x98\xAF\xE7\xBC\x96\xE8\xAF\x91\xE8\xBF\x9B\xE5\x86\x85\xE6\xA0\xB8\xE3\x80\x82
 485
 486ARCH_WANT_OPTIONAL_GPIOLIB \xE6\x84\x8F\xE5\x91\xB3\xE7\x9D\x80 gpiolib \xE6\xA0\xB8\xE5\xBF\x83\xE9\xBB\x98\xE8\xAE\xA4\xE5\x85\xB3\xE9\x97\xAD,\xE4\xB8\x94\xE7\x94\xA8\xE6\x88\xB7\xE5\x8F\xAF\xE4\xBB\xA5
 487\xE4\xBD\xBF\xE8\x83\xBD\xE5\xAE\x83,\xE5\xB9\xB6\xE5\xB0\x86\xE5\x85\xB6\xE7\xBC\x96\xE8\xAF\x91\xE8\xBF\x9B\xE5\x86\x85\xE6\xA0\xB8(\xE5\x8F\xAF\xE9\x80\x89)\xE3\x80\x82
 488
 489\xE5\xA6\x82\xE6\x9E\x9C\xE8\xBF\x99\xE4\xBA\x9B\xE9\x80\x89\xE9\xA1\xB9\xE9\x83\xBD\xE6\xB2\xA1\xE8\xA2\xAB\xE9\x80\x89\xE6\x8B\xA9,\xE8\xAF\xA5\xE5\xB9\xB3\xE5\x8F\xB0\xE5\xB0\xB1\xE4\xB8\x8D\xE9\x80\x9A\xE8\xBF\x87 GPIO-lib \xE6\x94\xAF\xE6\x8C\x81 GPIO,\xE4\xB8\x94\xE4\xBB\xA3\xE7\xA0\x81\xE4\xB8\x8D\xE5\x8F\xAF\xE4\xBB\xA5
 490\xE8\xA2\xAB\xE7\x94\xA8\xE6\x88\xB7\xE4\xBD\xBF\xE8\x83\xBD\xE3\x80\x82
 491
 492\xE4\xBB\xA5\xE4\xB8\x8B\xE8\xBF\x99\xE4\xBA\x9B\xE6\x96\xB9\xE6\xB3\x95\xE7\x9A\x84\xE5\xAE\x9E\xE7\x8E\xB0\xE5\x8F\xAF\xE4\xBB\xA5\xE7\x9B\xB4\xE6\x8E\xA5\xE4\xBD\xBF\xE7\x94\xA8\xE6\xA1\x86\xE6\x9E\xB6\xE4\xBB\xA3\xE7\xA0\x81,\xE5\xB9\xB6\xE6\x80\xBB\xE6\x98\xAF\xE9\x80\x9A\xE8\xBF\x87 gpio_chip \xE8\xB0\x83\xE5\xBA\xA6:
 493
 494  #define gpio_get_value        __gpio_get_value
 495  #define gpio_set_value        __gpio_set_value
 496  #define gpio_cansleep         __gpio_cansleep
 497
 498\xE8\xBF\x99\xE4\xBA\x9B\xE5\xAE\x9A\xE4\xB9\x89\xE5\x8F\xAF\xE4\xBB\xA5\xE7\x94\xA8\xE6\x9B\xB4\xE7\x90\x86\xE6\x83\xB3\xE7\x9A\x84\xE5\xAE\x9E\xE7\x8E\xB0\xE6\x96\xB9\xE6\xB3\x95\xE6\x9B\xBF\xE4\xBB\xA3\xEF\xBC\x8C\xE9\x82\xA3\xE5\xB0\xB1\xE6\x98\xAF\xE4\xBD\xBF\xE7\x94\xA8\xE7\xBB\x8F\xE8\xBF\x87\xE9\x80\xBB\xE8\xBE\x91\xE4\xBC\x98\xE5\x8C\x96\xE7\x9A\x84\xE5\x86\x85\xE8\x81\x94\xE5\x87\xBD\xE6\x95\xB0\xE6\x9D\xA5\xE8\xAE\xBF\xE9\x97\xAE
 499\xE5\x9F\xBA\xE4\xBA\x8E\xE7\x89\xB9\xE5\xAE\x9A\xE7\x89\x87\xE4\xB8\x8A\xE7\xB3\xBB\xE7\xBB\x9F\xE7\x9A\x84 GPIO\xE3\x80\x82\xE4\xBE\x8B\xE5\xA6\x82,\xE8\x8B\xA5\xE5\xBC\x95\xE7\x94\xA8\xE7\x9A\x84 GPIO (\xE5\xAF\x84\xE5\xAD\x98\xE5\x99\xA8\xE4\xBD\x8D\xE5\x81\x8F\xE7\xA7\xBB)\xE6\x98\xAF\xE5\xB8\xB8\xE9\x87\x8F\xE2\x80\x9C12\xE2\x80\x9D\xEF\xBC\x8C
 500\xE8\xAF\xBB\xE5\x8F\x96\xE6\x88\x96\xE8\xAE\xBE\xE7\xBD\xAE\xE5\xAE\x83\xE5\x8F\xAF\xE8\x83\xBD\xE5\x8F\xAA\xE9\x9C\x80\xE5\xB0\x91\xE5\x88\x99\xE4\xB8\xA4\xE6\x88\x96\xE4\xB8\x89\xE4\xB8\xAA\xE6\x8C\x87\xE4\xBB\xA4\xEF\xBC\x8C\xE4\xB8\x94\xE4\xB8\x8D\xE4\xBC\x9A\xE4\xBC\x91\xE7\x9C\xA0\xE3\x80\x82\xE5\xBD\x93\xE8\xBF\x99\xE6\xA0\xB7\xE7\x9A\x84\xE4\xBC\x98\xE5\x8C\x96\xE6\x97\xA0\xE6\xB3\x95\xE5\xAE\x9E\xE7\x8E\xB0\xE6\x97\xB6\xEF\xBC\x8C
 501\xE9\x82\xA3\xE4\xBA\x9B\xE5\x87\xBD\xE6\x95\xB0\xE5\xBF\x85\xE9\xA1\xBB\xE4\xBD\xBF\xE7\x94\xA8\xE6\xA1\x86\xE6\x9E\xB6\xE6\x8F\x90\xE4\xBE\x9B\xE7\x9A\x84\xE4\xBB\xA3\xE7\xA0\x81\xEF\xBC\x8C\xE9\x82\xA3\xE5\xB0\xB1\xE8\x87\xB3\xE5\xB0\x91\xE8\xA6\x81\xE5\x87\xA0\xE5\x8D\x81\xE6\x9D\xA1\xE6\x8C\x87\xE4\xBB\xA4\xE6\x89\x8D\xE5\x8F\xAF\xE4\xBB\xA5\xE5\xAE\x9E\xE7\x8E\xB0\xE3\x80\x82\xE5\xAF\xB9\xE4\xBA\x8E\xE7\x94\xA8 GPIO
 502\xE6\xA8\xA1\xE6\x8B\x9F\xE7\x9A\x84 I/O \xE6\x8E\xA5\xE5\x8F\xA3, \xE5\xA6\x82\xE6\xAD\xA4\xE7\xB2\xBE\xE7\xAE\x80\xE6\x8C\x87\xE4\xBB\xA4\xE6\x98\xAF\xE5\xBE\x88\xE6\x9C\x89\xE6\x84\x8F\xE4\xB9\x89\xE7\x9A\x84\xE3\x80\x82
 503
 504\xE5\xAF\xB9\xE4\xBA\x8E\xE7\x89\x87\xE4\xB8\x8A\xE7\xB3\xBB\xE7\xBB\x9F\xEF\xBC\x8C\xE5\xB9\xB3\xE5\x8F\xB0\xE7\x89\xB9\xE5\xAE\x9A\xE4\xBB\xA3\xE7\xA0\x81\xE4\xB8\xBA\xE7\x89\x87\xE4\xB8\x8A GPIO \xE6\xAF\x8F\xE4\xB8\xAA\xE5\x8C\xBA(bank)\xE5\xAE\x9A\xE4\xB9\x89\xE5\xB9\xB6\xE6\xB3\xA8\xE5\x86\x8C gpio_chip
 505\xE5\xAE\x9E\xE4\xBE\x8B\xE3\x80\x82\xE9\x82\xA3\xE4\xBA\x9B GPIO \xE5\xBA\x94\xE8\xAF\xA5\xE6\xA0\xB9\xE6\x8D\xAE\xE8\x8A\xAF\xE7\x89\x87\xE5\x8E\x82\xE5\x95\x86\xE7\x9A\x84\xE6\x96\x87\xE6\xA1\xA3\xE8\xBF\x9B\xE8\xA1\x8C\xE7\xBC\x96\xE7\xA0\x81/\xE6\xA0\x87\xE7\xAD\xBE,\xE5\xB9\xB6\xE7\x9B\xB4\xE6\x8E\xA5\xE5\x92\x8C\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF\xE5\x8E\x9F\xE7\x90\x86\xE5\x9B\xBE
 506\xE5\xAF\xB9\xE5\xBA\x94\xE3\x80\x82\xE4\xBB\x96\xE4\xBB\xAC\xE5\xBA\x94\xE8\xAF\xA5\xE5\xBC\x80\xE5\xA7\x8B\xE4\xBA\x8E\xE9\x9B\xB6\xE5\xB9\xB6\xE7\xBB\x88\xE6\xAD\xA2\xE4\xBA\x8E\xE5\xB9\xB3\xE5\x8F\xB0\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE9\x99\x90\xE5\x88\xB6\xE3\x80\x82\xE8\xBF\x99\xE4\xBA\x9B GPIO(\xE4\xBB\xA3\xE7\xA0\x81)\xE9\x80\x9A\xE5\xB8\xB8\xE4\xBB\x8E
 507arch_initcall()\xE6\x88\x96\xE8\x80\x85\xE6\x9B\xB4\xE6\x97\xA9\xE7\x9A\x84\xE5\x9C\xB0\xE6\x96\xB9\xE9\x9B\x86\xE6\x88\x90\xE8\xBF\x9B\xE5\xB9\xB3\xE5\x8F\xB0\xE5\x88\x9D\xE5\xA7\x8B\xE5\x8C\x96\xE4\xBB\xA3\xE7\xA0\x81\xEF\xBC\x8C\xE4\xBD\xBF\xE8\xBF\x99\xE4\xBA\x9B GPIO \xE6\x80\xBB\xE6\x98\xAF\xE5\x8F\xAF\xE7\x94\xA8\xEF\xBC\x8C
 508\xE4\xB8\x94\xE4\xBB\x96\xE4\xBB\xAC\xE9\x80\x9A\xE5\xB8\xB8\xE5\x8F\xAF\xE4\xBB\xA5\xE4\xBD\x9C\xE4\xB8\xBA IRQ \xE4\xBD\xBF\xE7\x94\xA8\xE3\x80\x82
 509
 510\xE6\x9D\xBF\xE7\xBA\xA7\xE6\x94\xAF\xE6\x8C\x81
 511-------
 512\xE5\xAF\xB9\xE4\xBA\x8E\xE5\xA4\x96\xE9\x83\xA8 GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8(\xE4\xBE\x8B\xE5\xA6\x82 I2C \xE6\x88\x96 SPI \xE6\x89\xA9\xE5\xB1\x95\xE5\x99\xA8\xE3\x80\x81\xE4\xB8\x93\xE7\x94\xA8\xE8\x8A\xAF\xE7\x89\x87\xE3\x80\x81\xE5\xA4\x9A\xE5\x8A\x9F\xE8\x83\xBD\xE5\x99\xA8\xE4\xBB\xB6\xE3\x80\x81FPGA
 513\xE6\x88\x96 CPLD)\xEF\xBC\x8C\xE5\xA4\xA7\xE5\xA4\x9A\xE6\x95\xB0\xE5\xB8\xB8\xE7\x94\xA8\xE6\x9D\xBF\xE7\xBA\xA7\xE7\x89\xB9\xE5\xAE\x9A\xE4\xBB\xA3\xE7\xA0\x81\xE9\x83\xBD\xE5\x8F\xAF\xE4\xBB\xA5\xE6\xB3\xA8\xE5\x86\x8C\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE8\xAE\xBE\xE5\xA4\x87\xEF\xBC\x8C\xE5\xB9\xB6\xE4\xBF\x9D\xE8\xAF\x81\xE4\xBB\x96\xE4\xBB\xAC\xE7\x9A\x84\xE9\xA9\xB1\xE5\x8A\xA8\xE7\x9F\xA5\xE9\x81\x93
 514gpiochip_add()\xE6\x89\x80\xE4\xBD\xBF\xE7\x94\xA8\xE7\x9A\x84 GPIO \xE7\xBC\x96\xE5\x8F\xB7\xE3\x80\x82\xE4\xBB\x96\xE4\xBB\xAC\xE7\x9A\x84\xE8\xB5\xB7\xE5\xA7\x8B\xE7\xBC\x96\xE5\x8F\xB7\xE9\x80\x9A\xE5\xB8\xB8\xE8\xB7\x9F\xE5\x9C\xA8\xE5\xB9\xB3\xE5\x8F\xB0\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84 GPIO
 515\xE7\xBC\x96\xE5\x8F\xB7\xE4\xB9\x8B\xE5\x90\x8E\xE3\x80\x82
 516
 517\xE4\xBE\x8B\xE5\xA6\x82\xE6\x9D\xBF\xE7\xBA\xA7\xE5\x90\xAF\xE5\x8A\xA8\xE4\xBB\xA3\xE7\xA0\x81\xE5\xBA\x94\xE8\xAF\xA5\xE5\x88\x9B\xE5\xBB\xBA\xE7\xBB\x93\xE6\x9E\x84\xE4\xBD\x93\xE6\x8C\x87\xE6\x98\x8E\xE8\x8A\xAF\xE7\x89\x87\xE5\x85\xAC\xE5\xBC\x80\xE7\x9A\x84 GPIO \xE8\x8C\x83\xE5\x9B\xB4\xEF\xBC\x8C\xE5\xB9\xB6\xE4\xBD\xBF\xE7\x94\xA8 platform_data
 518\xE5\xB0\x86\xE5\x85\xB6\xE4\xBC\xA0\xE9\x80\x92\xE7\xBB\x99\xE6\xAF\x8F\xE4\xB8\xAA GPIO \xE6\x89\xA9\xE5\xB1\x95\xE5\x99\xA8\xE8\x8A\xAF\xE7\x89\x87\xE3\x80\x82\xE7\x84\xB6\xE5\x90\x8E\xE8\x8A\xAF\xE7\x89\x87\xE9\xA9\xB1\xE5\x8A\xA8\xE4\xB8\xAD\xE7\x9A\x84 probe()\xE4\xBE\x8B\xE7\xA8\x8B\xE5\x8F\xAF\xE4\xBB\xA5\xE5\xB0\x86\xE8\xBF\x99\xE4\xB8\xAA
 519\xE6\x95\xB0\xE6\x8D\xAE\xE4\xBC\xA0\xE9\x80\x92\xE7\xBB\x99 gpiochip_add()\xE3\x80\x82
 520
 521\xE5\x88\x9D\xE5\xA7\x8B\xE5\x8C\x96\xE9\xA1\xBA\xE5\xBA\x8F\xE5\xBE\x88\xE9\x87\x8D\xE8\xA6\x81\xE3\x80\x82\xE4\xBE\x8B\xE5\xA6\x82\xEF\xBC\x8C\xE5\xA6\x82\xE6\x9E\x9C\xE4\xB8\x80\xE4\xB8\xAA\xE8\xAE\xBE\xE5\xA4\x87\xE4\xBE\x9D\xE8\xB5\x96\xE5\x9F\xBA\xE4\xBA\x8E I2C \xE7\x9A\x84(\xE6\x89\xA9\xE5\xB1\x95)GPIO\xEF\xBC\x8C\xE9\x82\xA3\xE4\xB9\x88\xE5\xAE\x83\xE7\x9A\x84
 522probe()\xE4\xBE\x8B\xE7\xA8\x8B\xE5\xB0\xB1\xE5\xBA\x94\xE8\xAF\xA5\xE5\x9C\xA8\xE9\x82\xA3\xE4\xB8\xAA GPIO \xE6\x9C\x89\xE6\x95\x88\xE4\xBB\xA5\xE5\x90\x8E\xE6\x89\x8D\xE5\x8F\xAF\xE4\xBB\xA5\xE8\xA2\xAB\xE8\xB0\x83\xE7\x94\xA8\xE3\x80\x82\xE8\xBF\x99\xE6\x84\x8F\xE5\x91\xB3\xE7\x9D\x80\xE8\xAE\xBE\xE5\xA4\x87\xE5\xBA\x94\xE8\xAF\xA5\xE5\x9C\xA8
 523GPIO \xE5\x8F\xAF\xE4\xBB\xA5\xE5\xB7\xA5\xE4\xBD\x9C\xE4\xB9\x8B\xE5\x90\x8E\xE6\x89\x8D\xE5\x8F\xAF\xE8\xA2\xAB\xE6\xB3\xA8\xE5\x86\x8C\xE3\x80\x82\xE8\xA7\xA3\xE5\x86\xB3\xE8\xBF\x99\xE7\xB1\xBB\xE4\xBE\x9D\xE8\xB5\x96\xE7\x9A\x84\xE7\x9A\x84\xE4\xB8\x80\xE7\xA7\x8D\xE6\x96\xB9\xE6\xB3\x95\xE6\x98\xAF\xE8\xAE\xA9\xE8\xBF\x99\xE7\xA7\x8D gpio_chip
 524\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE5\x90\x91\xE6\x9D\xBF\xE7\xBA\xA7\xE7\x89\xB9\xE5\xAE\x9A\xE4\xBB\xA3\xE7\xA0\x81\xE6\x8F\x90\xE4\xBE\x9B setup()\xE5\x92\x8C teardown()\xE5\x9B\x9E\xE8\xB0\x83\xE5\x87\xBD\xE6\x95\xB0\xE3\x80\x82\xE4\xB8\x80\xE6\x97\xA6\xE6\x89\x80\xE6\x9C\x89\xE5\xBF\x85\xE9\xA1\xBB\xE7\x9A\x84
 525\xE8\xB5\x84\xE6\xBA\x90\xE5\x8F\xAF\xE7\x94\xA8\xE4\xB9\x8B\xE5\x90\x8E\xEF\xBC\x8C\xE8\xBF\x99\xE4\xBA\x9B\xE6\x9D\xBF\xE7\xBA\xA7\xE7\x89\xB9\xE5\xAE\x9A\xE7\x9A\x84\xE5\x9B\x9E\xE8\xB0\x83\xE5\x87\xBD\xE6\x95\xB0\xE5\xB0\x86\xE4\xBC\x9A\xE6\xB3\xA8\xE5\x86\x8C\xE8\xAE\xBE\xE5\xA4\x87\xEF\xBC\x8C\xE5\xB9\xB6\xE5\x8F\xAF\xE4\xBB\xA5\xE5\x9C\xA8\xE8\xBF\x99\xE4\xBA\x9B GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8
 526\xE8\xAE\xBE\xE5\xA4\x87\xE5\x8F\x98\xE6\x88\x90\xE6\x97\xA0\xE6\x95\x88\xE6\x97\xB6\xE7\xA7\xBB\xE9\x99\xA4\xE5\xAE\x83\xE4\xBB\xAC\xE3\x80\x82
 527
 528
 529\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE7\x9A\x84 Sysfs \xE6\x8E\xA5\xE5\x8F\xA3(\xE5\x8F\xAF\xE9\x80\x89)
 530========================
 531\xE4\xBD\xBF\xE7\x94\xA8\xE2\x80\x9Cgpiolib\xE2\x80\x9D\xE5\xAE\x9E\xE7\x8E\xB0\xE6\xA1\x86\xE6\x9E\xB6\xE7\x9A\x84\xE5\xB9\xB3\xE5\x8F\xB0\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x80\x89\xE6\x8B\xA9\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE7\x9A\x84 sysfs \xE7\x94\xA8\xE6\x88\xB7\xE6\x8E\xA5\xE5\x8F\xA3\xE3\x80\x82
 532\xE8\xBF\x99\xE4\xB8\x8D\xE5\x90\x8C\xE4\xBA\x8E debugfs \xE6\x8E\xA5\xE5\x8F\xA3\xEF\xBC\x8C\xE5\x9B\xA0\xE4\xB8\xBA\xE5\xAE\x83\xE6\x8F\x90\xE4\xBE\x9B\xE7\x9A\x84\xE6\x98\xAF\xE5\xAF\xB9 GPIO\xE6\x96\xB9\xE5\x90\x91\xE5\x92\x8C\xE5\x80\xBC\xE7\x9A\x84\xE6\x8E\xA7\xE5\x88\xB6\xEF\xBC\x8C\xE8\x80\x8C\xE4\xB8\x8D\xE5\x8F\xAA\xE6\x98\xBE\xE7\xA4\xBA
 533\xE4\xB8\x80\xE4\xB8\xAAGPIO \xE7\x9A\x84\xE7\x8A\xB6\xE6\x80\x81\xE6\x91\x98\xE8\xA6\x81\xE3\x80\x82\xE6\xAD\xA4\xE5\xA4\x96,\xE5\xAE\x83\xE5\x8F\xAF\xE4\xBB\xA5\xE5\x87\xBA\xE7\x8E\xB0\xE5\x9C\xA8\xE6\xB2\xA1\xE6\x9C\x89\xE8\xB0\x83\xE8\xAF\x95\xE6\x94\xAF\xE6\x8C\x81\xE7\x9A\x84\xE4\xBA\xA7\xE5\x93\x81\xE7\xBA\xA7\xE7\xB3\xBB\xE7\xBB\x9F\xE4\xB8\xAD\xE3\x80\x82
 534
 535\xE4\xBE\x8B\xE5\xA6\x82\xEF\xBC\x8C\xE9\x80\x9A\xE8\xBF\x87\xE9\x80\x82\xE5\xBD\x93\xE7\x9A\x84\xE7\xB3\xBB\xE7\xBB\x9F\xE7\xA1\xAC\xE4\xBB\xB6\xE6\x96\x87\xE6\xA1\xA3\xEF\xBC\x8C\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE5\x8F\xAF\xE4\xBB\xA5\xE7\x9F\xA5\xE9\x81\x93 GIOP #23 \xE6\x8E\xA7\xE5\x88\xB6 Flash
 536\xE5\xAD\x98\xE5\x82\xA8\xE5\x99\xA8\xE7\x9A\x84\xE5\x86\x99\xE4\xBF\x9D\xE6\x8A\xA4(\xE7\x94\xA8\xE4\xBA\x8E\xE4\xBF\x9D\xE6\x8A\xA4\xE5\x85\xB6\xE4\xB8\xAD Bootloader \xE5\x88\x86\xE5\x8C\xBA)\xE3\x80\x82\xE4\xBA\xA7\xE5\x93\x81\xE7\x9A\x84\xE7\xB3\xBB\xE7\xBB\x9F\xE5\x8D\x87\xE7\xBA\xA7\xE5\x8F\xAF\xE8\x83\xBD\xE9\x9C\x80\xE8\xA6\x81
 537\xE4\xB8\xB4\xE6\x97\xB6\xE8\xA7\xA3\xE9\x99\xA4\xE8\xBF\x99\xE4\xB8\xAA\xE4\xBF\x9D\xE6\x8A\xA4\xEF\xBC\x9A\xE9\xA6\x96\xE5\x85\x88\xE5\xAF\xBC\xE5\x85\xA5\xE4\xB8\x80\xE4\xB8\xAA GPIO\xEF\xBC\x8C\xE6\x94\xB9\xE5\x8F\x98\xE5\x85\xB6\xE8\xBE\x93\xE5\x87\xBA\xE7\x8A\xB6\xE6\x80\x81\xEF\xBC\x8C\xE7\x84\xB6\xE5\x90\x8E\xE5\x9C\xA8\xE9\x87\x8D\xE6\x96\xB0\xE4\xBD\xBF\xE8\x83\xBD\xE5\x86\x99\xE4\xBF\x9D\xE6\x8A\xA4
 538\xE5\x89\x8D\xE5\x8D\x87\xE7\xBA\xA7\xE4\xBB\xA3\xE7\xA0\x81\xE3\x80\x82\xE9\x80\x9A\xE5\xB8\xB8\xE6\x83\x85\xE5\x86\xB5\xE4\xB8\x8B,GPIO #23 \xE6\x98\xAF\xE4\xB8\x8D\xE4\xBC\x9A\xE8\xA2\xAB\xE8\xA7\xA6\xE5\x8F\x8A\xE7\x9A\x84\xEF\xBC\x8C\xE5\xB9\xB6\xE4\xB8\x94\xE5\x86\x85\xE6\xA0\xB8\xE4\xB9\x9F\xE4\xB8\x8D\xE9\x9C\x80\xE8\xA6\x81\xE7\x9F\xA5\xE9\x81\x93\xE4\xBB\x96\xE3\x80\x82
 539
 540\xE6\xA0\xB9\xE6\x8D\xAE\xE9\x80\x82\xE5\xBD\x93\xE7\x9A\x84\xE7\xA1\xAC\xE4\xBB\xB6\xE6\x96\x87\xE6\xA1\xA3\xEF\xBC\x8C\xE6\x9F\x90\xE4\xBA\x9B\xE7\xB3\xBB\xE7\xBB\x9F\xE7\x9A\x84\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4 GPIO \xE5\x8F\xAF\xE4\xBB\xA5\xE7\x94\xA8\xE4\xBA\x8E\xE7\xA1\xAE\xE5\xAE\x9A\xE7\xB3\xBB\xE7\xBB\x9F\xE9\x85\x8D\xE7\xBD\xAE\xE6\x95\xB0\xE6\x8D\xAE\xEF\xBC\x8C
 541\xE8\xBF\x99\xE4\xBA\x9B\xE6\x95\xB0\xE6\x8D\xAE\xE6\x98\xAF\xE6\xA0\x87\xE5\x87\x86\xE5\x86\x85\xE6\xA0\xB8\xE4\xB8\x8D\xE7\x9F\xA5\xE9\x81\x93\xE7\x9A\x84\xE3\x80\x82\xE5\x9C\xA8\xE6\x9F\x90\xE4\xBA\x9B\xE4\xBB\xBB\xE5\x8A\xA1\xE4\xB8\xAD\xEF\xBC\x8C\xE7\xAE\x80\xE5\x8D\x95\xE7\x9A\x84\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4 GPIO \xE9\xA9\xB1\xE5\x8A\xA8\xE5\x8F\xAF\xE8\x83\xBD\xE6\x98\xAF
 542\xE7\xB3\xBB\xE7\xBB\x9F\xE7\x9C\x9F\xE6\xAD\xA3\xE9\x9C\x80\xE8\xA6\x81\xE7\x9A\x84\xE3\x80\x82
 543
 544\xE6\xB3\xA8\xE6\x84\x8F\xEF\xBC\x9A\xE6\xA0\x87\xE5\x87\x86\xE5\x86\x85\xE6\xA0\xB8\xE9\xA9\xB1\xE5\x8A\xA8\xE4\xB8\xAD\xE5\xB7\xB2\xE7\xBB\x8F\xE5\xAD\x98\xE5\x9C\xA8\xE9\x80\x9A\xE7\x94\xA8\xE7\x9A\x84\xE2\x80\x9CLED \xE5\x92\x8C\xE6\x8C\x89\xE9\x94\xAE\xE2\x80\x9DGPIO \xE4\xBB\xBB\xE5\x8A\xA1\xEF\xBC\x8C\xE5\x88\x86\xE5\x88\xAB\xE6\x98\xAF:
 545"leds-gpio" \xE5\x92\x8C "gpio_keys"\xE3\x80\x82\xE8\xAF\xB7\xE4\xBD\xBF\xE7\x94\xA8\xE8\xBF\x99\xE4\xBA\x9B\xE6\x9D\xA5\xE6\x9B\xBF\xE4\xBB\xA3\xE7\x9B\xB4\xE6\x8E\xA5\xE8\xAE\xBF\xE9\x97\xAE GPIO\xEF\xBC\x8C\xE5\x9B\xA0\xE4\xB8\xBA\xE9\x9B\x86\xE6\x88\x90\xE5\x9C\xA8
 546\xE5\x86\x85\xE6\xA0\xB8\xE6\xA1\x86\xE6\x9E\xB6\xE4\xB8\xAD\xE7\x9A\x84\xE8\xBF\x99\xE7\xB1\xBB\xE9\xA9\xB1\xE5\x8A\xA8\xE6\xAF\x94\xE4\xBD\xA0\xE5\x9C\xA8\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE7\x9A\x84\xE4\xBB\xA3\xE7\xA0\x81\xE6\x9B\xB4\xE5\xA5\xBD\xE3\x80\x82
 547
 548
 549Sysfs \xE4\xB8\xAD\xE7\x9A\x84\xE8\xB7\xAF\xE5\xBE\x84
 550--------------
 551\xE5\x9C\xA8/sys/class/gpio \xE4\xB8\xAD\xE6\x9C\x89 3 \xE7\xB1\xBB\xE5\x85\xA5\xE5\x8F\xA3:
 552
 553   -    \xE7\x94\xA8\xE4\xBA\x8E\xE5\x9C\xA8\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE6\x8E\xA7\xE5\x88\xB6 GPIO \xE7\x9A\x84\xE6\x8E\xA7\xE5\x88\xB6\xE6\x8E\xA5\xE5\x8F\xA3;
 554
 555   -    GPIOs \xE6\x9C\xAC\xE8\xBA\xAB;\xE4\xBB\xA5\xE5\x8F\x8A
 556
 557   -    GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8 ("gpio_chip" \xE5\xAE\x9E\xE4\xBE\x8B)\xE3\x80\x82
 558
 559\xE9\x99\xA4\xE4\xBA\x86\xE8\xBF\x99\xE4\xBA\x9B\xE6\xA0\x87\xE5\x87\x86\xE7\x9A\x84\xE6\x96\x87\xE4\xBB\xB6,\xE8\xBF\x98\xE5\x8C\x85\xE5\x90\xAB\xE2\x80\x9Cdevice\xE2\x80\x9D\xE7\xAC\xA6\xE5\x8F\xB7\xE9\x93\xBE\xE6\x8E\xA5\xE3\x80\x82
 560
 561\xE6\x8E\xA7\xE5\x88\xB6\xE6\x8E\xA5\xE5\x8F\xA3\xE6\x98\xAF\xE5\x8F\xAA\xE5\x86\x99\xE7\x9A\x84:
 562
 563    /sys/class/gpio/
 564
 565        "export" ... \xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x80\x9A\xE8\xBF\x87\xE5\x86\x99\xE5\x85\xB6\xE7\xBC\x96\xE5\x8F\xB7\xE5\x88\xB0\xE8\xBF\x99\xE4\xB8\xAA\xE6\x96\x87\xE4\xBB\xB6\xEF\xBC\x8C\xE8\xA6\x81\xE6\xB1\x82\xE5\x86\x85\xE6\xA0\xB8\xE5\xAF\xBC\xE5\x87\xBA
 566                \xE4\xB8\x80\xE4\xB8\xAA GPIO \xE7\x9A\x84\xE6\x8E\xA7\xE5\x88\xB6\xE5\x88\xB0\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE3\x80\x82
 567
 568                \xE4\xBE\x8B\xE5\xA6\x82: \xE5\xA6\x82\xE6\x9E\x9C\xE5\x86\x85\xE6\xA0\xB8\xE4\xBB\xA3\xE7\xA0\x81\xE6\xB2\xA1\xE6\x9C\x89\xE7\x94\xB3\xE8\xAF\xB7 GPIO #19,"echo 19 > export"
 569                \xE5\xB0\x86\xE4\xBC\x9A\xE4\xB8\xBA GPIO #19 \xE5\x88\x9B\xE5\xBB\xBA\xE4\xB8\x80\xE4\xB8\xAA "gpio19" \xE8\x8A\x82\xE7\x82\xB9\xE3\x80\x82
 570
 571        "unexport" ... \xE5\xAF\xBC\xE5\x87\xBA\xE5\x88\xB0\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE7\x9A\x84\xE9\x80\x86\xE6\x93\x8D\xE4\xBD\x9C\xE3\x80\x82
 572
 573                \xE4\xBE\x8B\xE5\xA6\x82: "echo 19 > unexport" \xE5\xB0\x86\xE4\xBC\x9A\xE7\xA7\xBB\xE9\x99\xA4\xE4\xBD\xBF\xE7\x94\xA8"export"\xE6\x96\x87\xE4\xBB\xB6\xE5\xAF\xBC\xE5\x87\xBA\xE7\x9A\x84
 574                "gpio19" \xE8\x8A\x82\xE7\x82\xB9\xE3\x80\x82
 575
 576GPIO \xE4\xBF\xA1\xE5\x8F\xB7\xE7\x9A\x84\xE8\xB7\xAF\xE5\xBE\x84\xE7\xB1\xBB\xE4\xBC\xBC /sys/class/gpio/gpio42/ (\xE5\xAF\xB9\xE4\xBA\x8E GPIO #42 \xE6\x9D\xA5\xE8\xAF\xB4)\xEF\xBC\x8C
 577\xE5\xB9\xB6\xE6\x9C\x89\xE5\xA6\x82\xE4\xB8\x8B\xE7\x9A\x84\xE8\xAF\xBB/\xE5\x86\x99\xE5\xB1\x9E\xE6\x80\xA7:
 578
 579    /sys/class/gpio/gpioN/
 580
 581        "direction" ... \xE8\xAF\xBB\xE5\x8F\x96\xE5\xBE\x97\xE5\x88\xB0 "in" \xE6\x88\x96 "out"\xE3\x80\x82\xE8\xBF\x99\xE4\xB8\xAA\xE5\x80\xBC\xE9\x80\x9A\xE5\xB8\xB8\xE8\xBF\x90\xE8\xA1\x8C\xE5\x86\x99\xE5\x85\xA5\xE3\x80\x82
 582                \xE5\x86\x99\xE5\x85\xA5"out" \xE6\x97\xB6,\xE5\x85\xB6\xE5\xBC\x95\xE8\x84\x9A\xE7\x9A\x84\xE9\xBB\x98\xE8\xAE\xA4\xE8\xBE\x93\xE5\x87\xBA\xE4\xB8\xBA\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3\xE3\x80\x82\xE4\xB8\xBA\xE4\xBA\x86\xE7\xA1\xAE\xE4\xBF\x9D\xE6\x97\xA0\xE6\x95\x85\xE9\x9A\x9C\xE8\xBF\x90\xE8\xA1\x8C\xEF\xBC\x8C
 583                "low" \xE6\x88\x96 "high" \xE7\x9A\x84\xE7\x94\xB5\xE5\xB9\xB3\xE5\x80\xBC\xE5\xBA\x94\xE8\xAF\xA5\xE5\x86\x99\xE5\x85\xA5 GPIO \xE7\x9A\x84\xE9\x85\x8D\xE7\xBD\xAE\xEF\xBC\x8C\xE4\xBD\x9C\xE4\xB8\xBA\xE5\x88\x9D\xE5\xA7\x8B\xE8\xBE\x93\xE5\x87\xBA\xE5\x80\xBC\xE3\x80\x82
 584
 585                \xE6\xB3\xA8\xE6\x84\x8F:\xE5\xA6\x82\xE6\x9E\x9C\xE5\x86\x85\xE6\xA0\xB8\xE4\xB8\x8D\xE6\x94\xAF\xE6\x8C\x81\xE6\x94\xB9\xE5\x8F\x98 GPIO \xE7\x9A\x84\xE6\x96\xB9\xE5\x90\x91\xEF\xBC\x8C\xE6\x88\x96\xE8\x80\x85\xE5\x9C\xA8\xE5\xAF\xBC\xE5\x87\xBA\xE6\x97\xB6\xE5\x86\x85\xE6\xA0\xB8\xE4\xBB\xA3\xE7\xA0\x81\xE6\xB2\xA1\xE6\x9C\x89
 586                \xE6\x98\x8E\xE7\xA1\xAE\xE5\x85\x81\xE8\xAE\xB8\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x87\x8D\xE6\x96\xB0\xE9\x85\x8D\xE7\xBD\xAE GPIO \xE6\x96\xB9\xE5\x90\x91\xEF\xBC\x8C\xE9\x82\xA3\xE4\xB9\x88\xE8\xBF\x99\xE4\xB8\xAA\xE5\xB1\x9E\xE6\x80\xA7\xE5\xB0\x86\xE4\xB8\x8D\xE5\xAD\x98\xE5\x9C\xA8\xE3\x80\x82
 587
 588        "value" ... \xE8\xAF\xBB\xE5\x8F\x96\xE5\xBE\x97\xE5\x88\xB0 0 (\xE4\xBD\x8E\xE7\x94\xB5\xE5\xB9\xB3) \xE6\x88\x96 1 (\xE9\xAB\x98\xE7\x94\xB5\xE5\xB9\xB3)\xE3\x80\x82\xE5\xA6\x82\xE6\x9E\x9C GPIO \xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA
 589                \xE8\xBE\x93\xE5\x87\xBA,\xE8\xBF\x99\xE4\xB8\xAA\xE5\x80\xBC\xE5\x85\x81\xE8\xAE\xB8\xE5\x86\x99\xE6\x93\x8D\xE4\xBD\x9C\xE3\x80\x82\xE4\xBB\xBB\xE4\xBD\x95\xE9\x9D\x9E\xE9\x9B\xB6\xE5\x80\xBC\xE9\x83\xBD\xE4\xBB\xA5\xE9\xAB\x98\xE7\x94\xB5\xE5\xB9\xB3\xE7\x9C\x8B\xE5\xBE\x85\xE3\x80\x82
 590
 591                \xE5\xA6\x82\xE6\x9E\x9C\xE5\xBC\x95\xE8\x84\x9A\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE4\xB8\xAD\xE6\x96\xAD\xE4\xBF\xA1\xE5\x8F\xB7\xEF\xBC\x8C\xE4\xB8\x94\xE5\xA6\x82\xE6\x9E\x9C\xE5\xB7\xB2\xE7\xBB\x8F\xE9\x85\x8D\xE7\xBD\xAE\xE4\xBA\x86\xE4\xBA\xA7\xE7\x94\x9F\xE4\xB8\xAD\xE6\x96\xAD\xE7\x9A\x84\xE6\xA8\xA1\xE5\xBC\x8F
 592                \xEF\xBC\x88\xE8\xA7\x81"edge"\xE7\x9A\x84\xE6\x8F\x8F\xE8\xBF\xB0\xEF\xBC\x89\xEF\xBC\x8C\xE4\xBD\xA0\xE5\x8F\xAF\xE4\xBB\xA5\xE5\xAF\xB9\xE8\xBF\x99\xE4\xB8\xAA\xE6\x96\x87\xE4\xBB\xB6\xE4\xBD\xBF\xE7\x94\xA8\xE8\xBD\xAE\xE8\xAF\xA2\xE6\x93\x8D\xE4\xBD\x9C(poll(2))\xEF\xBC\x8C
 593                \xE4\xB8\x94\xE8\xBD\xAE\xE8\xAF\xA2\xE6\x93\x8D\xE4\xBD\x9C\xE4\xBC\x9A\xE5\x9C\xA8\xE4\xBB\xBB\xE4\xBD\x95\xE4\xB8\xAD\xE6\x96\xAD\xE8\xA7\xA6\xE5\x8F\x91\xE6\x97\xB6\xE8\xBF\x94\xE5\x9B\x9E\xE3\x80\x82\xE5\xA6\x82\xE6\x9E\x9C\xE4\xBD\xA0\xE4\xBD\xBF\xE7\x94\xA8\xE8\xBD\xAE\xE8\xAF\xA2\xE6\x93\x8D\xE4\xBD\x9C(poll(2))\xEF\xBC\x8C
 594                \xE8\xAF\xB7\xE5\x9C\xA8 events \xE4\xB8\xAD\xE8\xAE\xBE\xE7\xBD\xAE POLLPRI \xE5\x92\x8C POLLERR\xE3\x80\x82\xE5\xA6\x82\xE6\x9E\x9C\xE4\xBD\xA0\xE4\xBD\xBF\xE7\x94\xA8\xE8\xBD\xAE\xE8\xAF\xA2\xE6\x93\x8D\xE4\xBD\x9C
 595                (select(2))\xEF\xBC\x8C\xE8\xAF\xB7\xE5\x9C\xA8 exceptfds \xE8\xAE\xBE\xE7\xBD\xAE\xE4\xBD\xA0\xE6\x9C\x9F\xE6\x9C\x9B\xE7\x9A\x84\xE6\x96\x87\xE4\xBB\xB6\xE6\x8F\x8F\xE8\xBF\xB0\xE7\xAC\xA6\xE3\x80\x82\xE5\x9C\xA8
 596                \xE8\xBD\xAE\xE8\xAF\xA2\xE6\x93\x8D\xE4\xBD\x9C(poll(2))\xE8\xBF\x94\xE5\x9B\x9E\xE4\xB9\x8B\xE5\x90\x8E\xEF\xBC\x8C\xE6\x97\xA2\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x80\x9A\xE8\xBF\x87 lseek(2)\xE6\x93\x8D\xE4\xBD\x9C\xE8\xAF\xBB\xE5\x8F\x96
 597                sysfs \xE6\x96\x87\xE4\xBB\xB6\xE7\x9A\x84\xE5\xBC\x80\xE5\xA7\x8B\xE9\x83\xA8\xE5\x88\x86\xEF\xBC\x8C\xE4\xB9\x9F\xE5\x8F\xAF\xE4\xBB\xA5\xE5\x85\xB3\xE9\x97\xAD\xE8\xBF\x99\xE4\xB8\xAA\xE6\x96\x87\xE4\xBB\xB6\xE5\xB9\xB6\xE9\x87\x8D\xE6\x96\xB0\xE6\x89\x93\xE5\xBC\x80\xE5\xAE\x83\xE6\x9D\xA5\xE8\xAF\xBB\xE5\x8F\x96\xE6\x95\xB0\xE6\x8D\xAE\xE3\x80\x82
 598
 599        "edge" ... \xE8\xAF\xBB\xE5\x8F\x96\xE5\xBE\x97\xE5\x88\xB0\xE2\x80\x9Cnone\xE2\x80\x9D\xE3\x80\x81\xE2\x80\x9Crising\xE2\x80\x9D\xE3\x80\x81\xE2\x80\x9Cfalling\xE2\x80\x9D\xE6\x88\x96\xE8\x80\x85\xE2\x80\x9Cboth\xE2\x80\x9D\xE3\x80\x82
 600                \xE5\xB0\x86\xE8\xBF\x99\xE4\xBA\x9B\xE5\xAD\x97\xE7\xAC\xA6\xE4\xB8\xB2\xE5\x86\x99\xE5\x85\xA5\xE8\xBF\x99\xE4\xB8\xAA\xE6\x96\x87\xE4\xBB\xB6\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x80\x89\xE6\x8B\xA9\xE6\xB2\xBF\xE8\xA7\xA6\xE5\x8F\x91\xE6\xA8\xA1\xE5\xBC\x8F\xEF\xBC\x8C\xE4\xBC\x9A\xE4\xBD\xBF\xE5\xBE\x97\xE8\xBD\xAE\xE8\xAF\xA2\xE6\x93\x8D\xE4\xBD\x9C
 601                (select(2))\xE5\x9C\xA8"value"\xE6\x96\x87\xE4\xBB\xB6\xE4\xB8\xAD\xE8\xBF\x94\xE5\x9B\x9E\xE3\x80\x82
 602
 603                \xE8\xBF\x99\xE4\xB8\xAA\xE6\x96\x87\xE4\xBB\xB6\xE4\xBB\x85\xE6\x9C\x89\xE5\x9C\xA8\xE8\xBF\x99\xE4\xB8\xAA\xE5\xBC\x95\xE8\x84\x9A\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x85\x8D\xE7\xBD\xAE\xE4\xB8\xBA\xE5\x8F\xAF\xE4\xBA\xA7\xE7\x94\x9F\xE4\xB8\xAD\xE6\x96\xAD\xE8\xBE\x93\xE5\x85\xA5\xE5\xBC\x95\xE8\x84\x9A\xE6\x97\xB6\xEF\xBC\x8C\xE6\x89\x8D\xE5\xAD\x98\xE5\x9C\xA8\xE3\x80\x82
 604
 605        "active_low" ... \xE8\xAF\xBB\xE5\x8F\x96\xE5\xBE\x97\xE5\x88\xB0 0 (\xE5\x81\x87) \xE6\x88\x96 1 (\xE7\x9C\x9F)\xE3\x80\x82\xE5\x86\x99\xE5\x85\xA5\xE4\xBB\xBB\xE4\xBD\x95\xE9\x9D\x9E\xE9\x9B\xB6\xE5\x80\xBC\xE5\x8F\xAF\xE4\xBB\xA5
 606                \xE7\xBF\xBB\xE8\xBD\xAC\xE8\xBF\x99\xE4\xB8\xAA\xE5\xB1\x9E\xE6\x80\xA7\xE7\x9A\x84(\xE8\xAF\xBB\xE5\x86\x99)\xE5\x80\xBC\xE3\x80\x82\xE5\xB7\xB2\xE5\xAD\x98\xE5\x9C\xA8\xE6\x88\x96\xE4\xB9\x8B\xE5\x90\x8E\xE9\x80\x9A\xE8\xBF\x87"edge"\xE5\xB1\x9E\xE6\x80\xA7\xE8\xAE\xBE\xE7\xBD\xAE\xE4\xBA\x86"rising"
 607                \xE5\x92\x8C "falling" \xE6\xB2\xBF\xE8\xA7\xA6\xE5\x8F\x91\xE6\xA8\xA1\xE5\xBC\x8F\xE7\x9A\x84\xE8\xBD\xAE\xE8\xAF\xA2\xE6\x93\x8D\xE4\xBD\x9C(poll(2))\xE5\xB0\x86\xE4\xBC\x9A\xE9\x81\xB5\xE5\xBE\xAA\xE8\xBF\x99\xE4\xB8\xAA\xE8\xAE\xBE\xE7\xBD\xAE\xE3\x80\x82
 608
 609GPIO \xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE7\x9A\x84\xE8\xB7\xAF\xE5\xBE\x84\xE7\xB1\xBB\xE4\xBC\xBC /sys/class/gpio/gpiochip42/ (\xE5\xAF\xB9\xE4\xBA\x8E\xE4\xBB\x8E#42 GPIO
 610\xE5\xBC\x80\xE5\xA7\x8B\xE5\xAE\x9E\xE7\x8E\xB0\xE6\x8E\xA7\xE5\x88\xB6\xE7\x9A\x84\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8),\xE5\xB9\xB6\xE6\x9C\x89\xE7\x9D\x80\xE4\xBB\xA5\xE4\xB8\x8B\xE5\x8F\xAA\xE8\xAF\xBB\xE5\xB1\x9E\xE6\x80\xA7:
 611
 612    /sys/class/gpio/gpiochipN/
 613
 614        "base" ... \xE4\xB8\x8E\xE4\xBB\xA5\xE4\xB8\x8A\xE7\x9A\x84 N \xE7\x9B\xB8\xE5\x90\x8C,\xE4\xBB\xA3\xE8\xA1\xA8\xE6\xAD\xA4\xE8\x8A\xAF\xE7\x89\x87\xE7\xAE\xA1\xE7\x90\x86\xE7\x9A\x84\xE7\xAC\xAC\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE7\x9A\x84\xE7\xBC\x96\xE5\x8F\xB7
 615
 616        "label" ... \xE7\x94\xA8\xE4\xBA\x8E\xE8\xAF\x8A\xE6\x96\xAD (\xE5\xB9\xB6\xE4\xB8\x8D\xE6\x80\xBB\xE6\x98\xAF\xE5\x8F\xAA\xE6\x9C\x89\xE5\x94\xAF\xE4\xB8\x80\xE5\x80\xBC)
 617
 618        "ngpio" ... \xE6\xAD\xA4\xE6\x8E\xA7\xE5\x88\xB6\xE5\x99\xA8\xE6\x89\x80\xE7\xAE\xA1\xE7\x90\x86\xE7\x9A\x84 GPIO \xE6\x95\xB0\xE9\x87\x8F(\xE8\x80\x8C GPIO \xE7\xBC\x96\xE5\x8F\xB7\xE4\xBB\x8E N \xE5\x88\xB0
 619                N + ngpio - 1)
 620
 621\xE5\xA4\xA7\xE5\xA4\x9A\xE6\x95\xB0\xE6\x83\x85\xE5\x86\xB5\xE4\xB8\x8B,\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF\xE7\x9A\x84\xE6\x96\x87\xE6\xA1\xA3\xE5\xBA\x94\xE5\xBD\x93\xE6\xA0\x87\xE6\x98\x8E\xE6\xAF\x8F\xE4\xB8\xAA GPIO \xE7\x9A\x84\xE4\xBD\xBF\xE7\x94\xA8\xE7\x9B\xAE\xE7\x9A\x84\xE3\x80\x82\xE4\xBD\x86\xE6\x98\xAF\xE9\x82\xA3\xE4\xBA\x9B\xE7\xBC\x96\xE5\x8F\xB7\xE5\xB9\xB6\xE4\xB8\x8D\xE6\x80\xBB\xE6\x98\xAF
 622\xE5\x9B\xBA\xE5\xAE\x9A\xE7\x9A\x84,\xE4\xBE\x8B\xE5\xA6\x82\xE5\x9C\xA8\xE6\x89\xA9\xE5\xB1\x95\xE5\x8D\xA1\xE4\xB8\x8A\xE7\x9A\x84 GPIO\xE4\xBC\x9A\xE6\xA0\xB9\xE6\x8D\xAE\xE6\x89\x80\xE4\xBD\xBF\xE7\x94\xA8\xE7\x9A\x84\xE4\xB8\xBB\xE6\x9D\xBF\xE6\x88\x96\xE6\x89\x80\xE5\x9C\xA8\xE5\xA0\x86\xE5\x8F\xA0\xE6\x9E\xB6\xE6\x9E\x84\xE4\xB8\xAD\xE5\x85\xB6\xE4\xBB\x96\xE7\x9A\x84\xE6\x9D\xBF\xE5\xAD\x90\xE8\x80\x8C
 623\xE6\x9C\x89\xE6\x89\x80\xE4\xB8\x8D\xE5\x90\x8C\xE3\x80\x82\xE5\x9C\xA8\xE8\xBF\x99\xE7\xA7\x8D\xE6\x83\x85\xE5\x86\xB5\xE4\xB8\x8B,\xE4\xBD\xA0\xE5\x8F\xAF\xE8\x83\xBD\xE9\x9C\x80\xE8\xA6\x81\xE4\xBD\xBF\xE7\x94\xA8 gpiochip \xE8\x8A\x82\xE7\x82\xB9(\xE5\xB0\xBD\xE5\x8F\xAF\xE8\x83\xBD\xE5\x9C\xB0\xE7\xBB\x93\xE5\x90\x88\xE7\x94\xB5\xE8\xB7\xAF\xE5\x9B\xBE)\xE6\x9D\xA5
 624\xE7\xA1\xAE\xE5\xAE\x9A\xE7\xBB\x99\xE5\xAE\x9A\xE4\xBF\xA1\xE5\x8F\xB7\xE6\x89\x80\xE7\x94\xA8\xE7\x9A\x84 GPIO \xE7\xBC\x96\xE5\x8F\xB7\xE3\x80\x82
 625
 626
 627\xE4\xBB\x8E\xE5\x86\x85\xE6\xA0\xB8\xE4\xBB\xA3\xE7\xA0\x81\xE4\xB8\xAD\xE5\xAF\xBC\xE5\x87\xBA
 628-------------
 629\xE5\x86\x85\xE6\xA0\xB8\xE4\xBB\xA3\xE7\xA0\x81\xE5\x8F\xAF\xE4\xBB\xA5\xE6\x98\x8E\xE7\xA1\xAE\xE5\x9C\xB0\xE7\xAE\xA1\xE7\x90\x86\xE9\x82\xA3\xE4\xBA\x9B\xE5\xB7\xB2\xE9\x80\x9A\xE8\xBF\x87 gpio_request()\xE7\x94\xB3\xE8\xAF\xB7\xE7\x9A\x84 GPIO \xE7\x9A\x84\xE5\xAF\xBC\xE5\x87\xBA:
 630
 631        /* \xE5\xAF\xBC\xE5\x87\xBA GPIO \xE5\x88\xB0\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4 */
 632        int gpio_export(unsigned gpio, bool direction_may_change);
 633
 634        /* gpio_export()\xE7\x9A\x84\xE9\x80\x86\xE6\x93\x8D\xE4\xBD\x9C */
 635        void gpio_unexport();
 636
 637        /* \xE5\x88\x9B\xE5\xBB\xBA\xE4\xB8\x80\xE4\xB8\xAA sysfs \xE8\xBF\x9E\xE6\x8E\xA5\xE5\x88\xB0\xE5\xB7\xB2\xE5\xAF\xBC\xE5\x87\xBA\xE7\x9A\x84 GPIO \xE8\x8A\x82\xE7\x82\xB9 */
 638        int gpio_export_link(struct device *dev, const char *name,
 639                unsigned gpio)
 640
 641        /* \xE6\x94\xB9\xE5\x8F\x98 sysfs \xE4\xB8\xAD\xE7\x9A\x84\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE8\x8A\x82\xE7\x82\xB9\xE7\x9A\x84\xE6\x9E\x81\xE6\x80\xA7 */
 642        int gpio_sysfs_set_active_low(unsigned gpio, int value);
 643
 644\xE5\x9C\xA8\xE4\xB8\x80\xE4\xB8\xAA\xE5\x86\x85\xE6\xA0\xB8\xE9\xA9\xB1\xE5\x8A\xA8\xE7\x94\xB3\xE8\xAF\xB7\xE4\xB8\x80\xE4\xB8\xAA GPIO \xE4\xB9\x8B\xE5\x90\x8E\xEF\xBC\x8C\xE5\xAE\x83\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x80\x9A\xE8\xBF\x87 gpio_export()\xE4\xBD\xBF\xE5\x85\xB6\xE5\x9C\xA8 sysfs
 645\xE6\x8E\xA5\xE5\x8F\xA3\xE4\xB8\xAD\xE5\x8F\xAF\xE8\xA7\x81\xE3\x80\x82\xE8\xAF\xA5\xE9\xA9\xB1\xE5\x8A\xA8\xE5\x8F\xAF\xE4\xBB\xA5\xE6\x8E\xA7\xE5\x88\xB6\xE4\xBF\xA1\xE5\x8F\xB7\xE6\x96\xB9\xE5\x90\x91\xE6\x98\xAF\xE5\x90\xA6\xE5\x8F\xAF\xE4\xBF\xAE\xE6\x94\xB9\xE3\x80\x82\xE8\xBF\x99\xE6\x9C\x89\xE5\x8A\xA9\xE4\xBA\x8E\xE9\x98\xB2\xE6\xAD\xA2\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE4\xBB\xA3\xE7\xA0\x81\xE6\x97\xA0\xE6\x84\x8F\xE9\x97\xB4
 646\xE7\xA0\xB4\xE5\x9D\x8F\xE9\x87\x8D\xE8\xA6\x81\xE7\x9A\x84\xE7\xB3\xBB\xE7\xBB\x9F\xE7\x8A\xB6\xE6\x80\x81\xE3\x80\x82
 647
 648\xE8\xBF\x99\xE4\xB8\xAA\xE6\x98\x8E\xE7\xA1\xAE\xE7\x9A\x84\xE5\xAF\xBC\xE5\x87\xBA\xE6\x9C\x89\xE5\x8A\xA9\xE4\xBA\x8E(\xE9\x80\x9A\xE8\xBF\x87\xE4\xBD\xBF\xE6\x9F\x90\xE4\xBA\x9B\xE5\xAE\x9E\xE9\xAA\x8C\xE6\x9B\xB4\xE5\xAE\xB9\xE6\x98\x93\xE6\x9D\xA5)\xE8\xB0\x83\xE8\xAF\x95\xEF\xBC\x8C\xE4\xB9\x9F\xE5\x8F\xAF\xE4\xBB\xA5\xE6\x8F\x90\xE4\xBE\x9B\xE4\xB8\x80\xE4\xB8\xAA\xE5\xA7\x8B\xE7\xBB\x88\xE5\xAD\x98\xE5\x9C\xA8\xE7\x9A\x84\xE6\x8E\xA5\xE5\x8F\xA3\xEF\xBC\x8C
 649\xE4\xB8\x8E\xE6\x96\x87\xE6\xA1\xA3\xE9\x85\x8D\xE5\x90\x88\xE4\xBD\x9C\xE4\xB8\xBA\xE6\x9D\xBF\xE7\xBA\xA7\xE6\x94\xAF\xE6\x8C\x81\xE5\x8C\x85\xE7\x9A\x84\xE4\xB8\x80\xE9\x83\xA8\xE5\x88\x86\xE3\x80\x82
 650
 651\xE5\x9C\xA8 GPIO \xE8\xA2\xAB\xE5\xAF\xBC\xE5\x87\xBA\xE4\xB9\x8B\xE5\x90\x8E\xEF\xBC\x8Cgpio_export_link()\xE5\x85\x81\xE8\xAE\xB8\xE5\x9C\xA8 sysfs \xE6\x96\x87\xE4\xBB\xB6\xE7\xB3\xBB\xE7\xBB\x9F\xE7\x9A\x84\xE4\xBB\xBB\xE4\xBD\x95\xE5\x9C\xB0\xE6\x96\xB9
 652\xE5\x88\x9B\xE5\xBB\xBA\xE4\xB8\x80\xE4\xB8\xAA\xE5\x88\xB0\xE8\xBF\x99\xE4\xB8\xAA GPIO sysfs \xE8\x8A\x82\xE7\x82\xB9\xE7\x9A\x84\xE7\xAC\xA6\xE5\x8F\xB7\xE9\x93\xBE\xE6\x8E\xA5\xE3\x80\x82\xE8\xBF\x99\xE6\xA0\xB7\xE9\xA9\xB1\xE5\x8A\xA8\xE5\xB0\xB1\xE5\x8F\xAF\xE4\xBB\xA5\xE9\x80\x9A\xE8\xBF\x87\xE4\xB8\x80\xE4\xB8\xAA\xE6\x8F\x8F\xE8\xBF\xB0\xE6\x80\xA7\xE7\x9A\x84
 653\xE5\x90\x8D\xE5\xAD\x97\xEF\xBC\x8C\xE5\x9C\xA8 sysfs \xE4\xB8\xAD\xE4\xBB\x96\xE4\xBB\xAC\xE6\x89\x80\xE6\x8B\xA5\xE6\x9C\x89\xE7\x9A\x84\xE8\xAE\xBE\xE5\xA4\x87\xE4\xB8\x8B\xE6\x8F\x90\xE4\xBE\x9B\xE4\xB8\x80\xE4\xB8\xAA(\xE5\x88\xB0\xE8\xBF\x99\xE4\xB8\xAA GPIO sysfs \xE8\x8A\x82\xE7\x82\xB9\xE7\x9A\x84)\xE6\x8E\xA5\xE5\x8F\xA3\xE3\x80\x82
 654
 655\xE9\xA9\xB1\xE5\x8A\xA8\xE5\x8F\xAF\xE4\xBB\xA5\xE4\xBD\xBF\xE7\x94\xA8 gpio_sysfs_set_active_low() \xE6\x9D\xA5\xE5\x9C\xA8\xE7\x94\xA8\xE6\x88\xB7\xE7\xA9\xBA\xE9\x97\xB4\xE9\x9A\x90\xE8\x97\x8F\xE7\x94\xB5\xE8\xB7\xAF\xE6\x9D\xBF\xE4\xB9\x8B\xE9\x97\xB4
 656GPIO \xE7\xBA\xBF\xE7\x9A\x84\xE6\x9E\x81\xE6\x80\xA7\xE5\xB7\xAE\xE5\xBC\x82\xE3\x80\x82\xE8\xBF\x99\xE4\xB8\xAA\xE4\xBB\x85\xE5\xAF\xB9 sysfs \xE6\x8E\xA5\xE5\x8F\xA3\xE8\xB5\xB7\xE4\xBD\x9C\xE7\x94\xA8\xE3\x80\x82\xE6\x9E\x81\xE6\x80\xA7\xE7\x9A\x84\xE6\x94\xB9\xE5\x8F\x98\xE5\x8F\xAF\xE4\xBB\xA5\xE5\x9C\xA8 gpio_export()
 657\xE5\x89\x8D\xE5\x90\x8E\xE8\xBF\x9B\xE8\xA1\x8C,\xE4\xB8\x94\xE4\xB9\x8B\xE5\x89\x8D\xE4\xBD\xBF\xE8\x83\xBD\xE7\x9A\x84\xE8\xBD\xAE\xE8\xAF\xA2\xE6\x93\x8D\xE4\xBD\x9C(poll(2))\xE6\x94\xAF\xE6\x8C\x81(\xE4\xB8\x8A\xE5\x8D\x87\xE6\x88\x96\xE4\xB8\x8B\xE9\x99\x8D\xE6\xB2\xBF)\xE5\xB0\x86\xE4\xBC\x9A\xE8\xA2\xAB\xE9\x87\x8D\xE6\x96\xB0\xE9\x85\x8D\xE7\xBD\xAE\xE6\x9D\xA5\xE9\x81\xB5\xE5\xBE\xAA
 658\xE8\xBF\x99\xE4\xB8\xAA\xE8\xAE\xBE\xE7\xBD\xAE\xE3\x80\x82
 659
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.