)]}'
{
  "log": [
    {
      "commit": "fe2167b737928cda28d3e83791beb1dcc2324bc7",
      "tree": "b01a673f8d0232b62bc4022a51c9e88f87080c32",
      "parents": [
        "4cfe4e853b4c1c296e0a2fb2d7e6a6777ed03559"
      ],
      "author": {
        "name": "Bin Chen",
        "email": "pierr.chen@gmail.com",
        "time": "Wed Aug 24 14:36:58 2016 +1000"
      },
      "committer": {
        "name": "Bin Chen",
        "email": "pierr.chen@gmail.com",
        "time": "Sun Aug 28 20:31:43 2016 +1000"
      },
      "message": "Use c++ style cast\n\nChange-Id: I6394978e2cbc1a6efa9912a876f652d3d455d98b\nSigned-off-by: Bin Chen \u003cpierr.chen@gmail.com\u003e\n"
    },
    {
      "commit": "4cfe4e853b4c1c296e0a2fb2d7e6a6777ed03559",
      "tree": "fd9dd57b96fd9356b56c6b0f7e2e6b03f7500867",
      "parents": [
        "2cb1e573077fec79b80cafc66fdf11b6eef6c1ed"
      ],
      "author": {
        "name": "Bin Chen",
        "email": "pierr.chen@gmail.com",
        "time": "Fri Aug 19 19:37:42 2016 +1000"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Aug 23 15:00:41 2016 +0000"
      },
      "message": "Disable implicit conversion\n\nAccording to Google coding style, need to add explicit keyword\nfor single-argument constructors.\n\nChange-Id: I2673b5367e01b8cca9d908cf5fca96f4877e83d3\nSigned-off-by: Bin Chen \u003cpierr.chen@gmail.com\u003e\n"
    },
    {
      "commit": "2cb1e573077fec79b80cafc66fdf11b6eef6c1ed",
      "tree": "059b71295b68536ebf6757e03e9c96b72511f141",
      "parents": [
        "bcffe7b5449315efc4592569f5401db20469ac37"
      ],
      "author": {
        "name": "Bin Chen",
        "email": "pierr.chen@gmail.com",
        "time": "Fri Aug 19 19:08:33 2016 +1000"
      },
      "committer": {
        "name": "Bin Chen",
        "email": "pierr.chen@gmail.com",
        "time": "Fri Aug 19 19:17:48 2016 +1000"
      },
      "message": "Remove redundant virtual keywords\n\nAccording to google coding style, should not use\nboth virtual and override.\n\nChange-Id: Ic0074184542d8604c6645f0e8567bd44804ab795\nSigned-off-by: Bin Chen \u003cpierr.chen@gmail.com\u003e\n"
    },
    {
      "commit": "bcffe7b5449315efc4592569f5401db20469ac37",
      "tree": "1e4cd1e27572e32a0e466ef2466dac7971b11f5f",
      "parents": [
        "8a20977c322220c4cb73eba3d49f85f1bef585f5"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sun Jul 31 18:33:41 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Aug 01 04:59:59 2016 +0000"
      },
      "message": "Remove Brillo-specific LOCAL_MODULE_TAGS\n\nReplaced with PRODUCT_PACKAGES_DEBUG in brillo_base.mk\n\nChange-Id: I38c4ddd6433d3d6f4c270de29d410087585b0c67\n"
    },
    {
      "commit": "8a20977c322220c4cb73eba3d49f85f1bef585f5",
      "tree": "ee97622fa845e0f7ff879b5ebf284fae18b08829",
      "parents": [
        "9670f0eedd5a342db97a5d263a924b9ae2eda4fe"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed May 25 10:22:28 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed May 25 10:22:28 2016 -0700"
      },
      "message": "Remove unused imports.\n\nThis is not used and breaks a downstream branch.\nLets fix it here to not deviate.\n\nChange-Id: If607f3dcbb19f719bd5ff59ca1218a9d4b5b0733\n"
    },
    {
      "commit": "9670f0eedd5a342db97a5d263a924b9ae2eda4fe",
      "tree": "fbf4e20c20520c0ac513fd8700b55e37f356674a",
      "parents": [
        "453101d9460390d8e0ea62cda645f6a2f5b29a61"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue Apr 26 17:01:19 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue May 24 14:38:26 2016 -0700"
      },
      "message": "Implement the client side UART interface.\n\nThis CL adds the C APIs to act on UART devices as well as unit tests and\nan example.\n\nBug: 27898961\n\nChange-Id: I23f627d69fb3440fec53bded20bd3b408c9ed591\n"
    },
    {
      "commit": "453101d9460390d8e0ea62cda645f6a2f5b29a61",
      "tree": "fca66fc26f5e68789dee50fef472851a74e22282",
      "parents": [
        "f70f9c76555ed6186173e5cb93d4c79f6c3e1e4f"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue Apr 26 16:53:07 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue May 24 14:38:26 2016 -0700"
      },
      "message": "Export the UART functionality via binder.\n\nAllows the binder clients to access UART devices.\n\nBug: 27898961\n\nChange-Id: Ifa94a2864c0bad8a3fb38948b4dac57c876d5290\n"
    },
    {
      "commit": "f70f9c76555ed6186173e5cb93d4c79f6c3e1e4f",
      "tree": "bed069998906d40da5d2a20eb59e9b77d11d2379",
      "parents": [
        "efb7c86c45b774dc0b142b089d8bd2229ae57a33"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue Apr 26 16:50:43 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue May 24 14:38:26 2016 -0700"
      },
      "message": "Implement the backend for UART support.\n\nThis includes:\n* the hal hooks to register UART devices.\n* the UART sysfs driver.\n* the UART manager.\n\nBug: 27898961\n\nChange-Id: I48488b2684c9198c70a908cef3ef6c2032eb4bfe\n"
    },
    {
      "commit": "efb7c86c45b774dc0b142b089d8bd2229ae57a33",
      "tree": "23b568c9e0a034e0e5d62403ea1f95b047b8f34b",
      "parents": [
        "a1c75fef47384d6eb80043248dd6a6117c843871"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon May 02 16:24:12 2016 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 24 21:21:00 2016 +0000"
      },
      "message": "Document the HAL.\n\nDocuments and explain the HAL to facilitate its implementation.\n\nBug: 28522721\n\nChange-Id: Ie65610b5f6f0e61a92ea6558deb2f54eb93f3e90\n"
    },
    {
      "commit": "a1c75fef47384d6eb80043248dd6a6117c843871",
      "tree": "5793d301aee772851394bb99869e3aad52e0b535",
      "parents": [
        "4efbbe5718e9a554b66de7900ca6facfe28bfe42"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon May 23 10:36:54 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon May 23 13:02:34 2016 -0700"
      },
      "message": "Change peripheralman tests to run on the device.\n\nThe daemon tests were created as host tests. We actually don\u0027t run host\ntests in the builder so convert them to native tests to be able to run\nit.\n\nBug: 28909367\n\nChange-Id: I24ffdf1363fc202a661b417debaac594784a0fcd\n"
    },
    {
      "commit": "4efbbe5718e9a554b66de7900ca6facfe28bfe42",
      "tree": "fb09bdaa95829259ffd9d747134623485185669d",
      "parents": [
        "ebffc4c034597531a955805eabecf3d6a2f34f82"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue May 17 11:26:25 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed May 18 11:22:12 2016 -0700"
      },
      "message": "Make sure BGpio_setValue fails on input.\n\nSetting the value of an input GPIO will fail in the daemon. We need to\nmake sure the error is propagated to the user and an message is logged.\nThis is probably a common error. Giving feedback to the developer will\nbe helpful.\n\nBug: 28765716\n\nChange-Id: I5e9b20e317d73875431e0e09b4589fc61781a1af\n"
    },
    {
      "commit": "ebffc4c034597531a955805eabecf3d6a2f34f82",
      "tree": "93a655d4fed18fe3e5cc9554eef1dccc63e02f85",
      "parents": [
        "22879aab255d55b5b07a5467d8ea48c01c5f7a7a"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 12:21:35 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 26 16:09:57 2016 +0000"
      },
      "message": "Replace ScopedFd with unique_fd\n\naidl-cpp will generate code using unique_fd in the near future.\n\nWhile here, also make the binder intermediates library depend on\nlibbinder in order to obtain proper header include paths.\n\nBug: 27804373\nChange-Id: Ia36dba111f3ff824d34612dedcb202612ed4ba35\nTest: Compiles with accompanying changes.\n"
    },
    {
      "commit": "22879aab255d55b5b07a5467d8ea48c01c5f7a7a",
      "tree": "4e9e3195d45454aff8086ce5d63736ceeeb0e7c0",
      "parents": [
        "76fb150b00c448f5253929bf85744b149aea4bf2"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Apr 25 18:25:11 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Apr 25 18:28:26 2016 -0700"
      },
      "message": "Use int32_t instead of ssize_t\n\nAIDL uses int32_t for ints on all platform but the size of ssize_t\ndepends on the architecture.\nUse int32_t everywhere instead.\n\nBug: 27831222\nTest: Compiles on arm64.\n\nChange-Id: I14062b2efae9aa396254c82410c68d478a2e85cd\n"
    },
    {
      "commit": "76fb150b00c448f5253929bf85744b149aea4bf2",
      "tree": "f2c2e8fb7d8bde47630e3ed874dd07bf8a1720a5",
      "parents": [
        "8ad824905e84f8b001211eb88b8f18fbf3b5dd8c"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Mar 24 15:17:09 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Apr 25 16:36:39 2016 -0700"
      },
      "message": "Implement the client API for all I2C functions.\n\nThis CL exposes the following functions in the C API:\n* write\n* writeRegBuffer\n* read\n* readRegByte\n* readRegWord\n* readRegBuffer\n\nBug: 27831222\n\nChange-Id: I8bcdc1cc949e5b13d490ce37eb29b6e706df72b4\n"
    },
    {
      "commit": "8ad824905e84f8b001211eb88b8f18fbf3b5dd8c",
      "tree": "a91942dd35da42e3ce3a5353be7cd0b1b7bb9f0f",
      "parents": [
        "954874f0897fa810e2bdfbd44d1694c4da2fd461"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Mar 24 14:15:02 2016 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 25 23:18:52 2016 +0000"
      },
      "message": "Implement the backend for more I2C functions.\n\nImplements the driver and AIDL interface for:\n* Read\n* ReadRegBuffer\n* Write\n* WriteRegByte\n* WriteRegWord\n* WriteRegBuffer\n\nBug: 27831222\n\nChange-Id: I792661a47330ea3c7d864b6373440e6369a58d77\n"
    },
    {
      "commit": "954874f0897fa810e2bdfbd44d1694c4da2fd461",
      "tree": "2c752f85e12d814ad128630c48f83cabd3fa7e66",
      "parents": [
        "6f44f7df98871af1b3ffd9715eb047a21ec2b418"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 19 12:54:27 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 19 12:54:27 2016 -0700"
      },
      "message": "libperipheralman_binder needs libbinder include paths\n\nBug: 27804373\nChange-Id: I7c22373834ce6333c46a79d635409cbf9b069bcb\nTest: Compiles\n"
    },
    {
      "commit": "6f44f7df98871af1b3ffd9715eb047a21ec2b418",
      "tree": "2eefb67f7e6a9bb9ed04a50a0c3806f90fc6eff0",
      "parents": [
        "734847ed5fb389ceaec6034d89f81bffe051337d"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Mon Apr 18 17:40:45 2016 +0000"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Mon Apr 18 17:40:45 2016 +0000"
      },
      "message": "Revert \"Replace ScopedFd with unique_fd\"\n\nThis reverts commit 734847ed5fb389ceaec6034d89f81bffe051337d.\n\nChange-Id: Idfcb62cc8b7563bccb060dc3ca79a684707b3b6e\n"
    },
    {
      "commit": "734847ed5fb389ceaec6034d89f81bffe051337d",
      "tree": "58d61f075d8ac6d9de291cb03621c7eae1ca8c2e",
      "parents": [
        "cfe5b5b80f40c61bc97e203a4e3e206837d59a5a"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 12:21:35 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 12:34:38 2016 -0700"
      },
      "message": "Replace ScopedFd with unique_fd\n\naidl-cpp will generate code using unique_fd in the near future.\n\nWhile here, also make the binder intermediates library depend on\nlibbinder in order to obtain proper header include paths.\n\nBug: 27804373\nTest: Compiles with accompanying changes.\n\nChange-Id: I6098e63f179ac81096fa4775cc11e59e87a962c9\n"
    },
    {
      "commit": "cfe5b5b80f40c61bc97e203a4e3e206837d59a5a",
      "tree": "2eefb67f7e6a9bb9ed04a50a0c3806f90fc6eff0",
      "parents": [
        "87738fdcab54ab9a6a6525e7d5d9e3bf95ccb06e"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 12:33:12 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 12:33:12 2016 -0700"
      },
      "message": "Remove unused fields\n\nA recent update to libchrome reveals that we were previously suppressing\nwarnings about unused private fields.\n\nBug: 28117776\nChange-Id: Ibcbfce0e5129cb55f3aff0127f79fc24e534241d\nTest: This now compiles.\n"
    },
    {
      "commit": "87738fdcab54ab9a6a6525e7d5d9e3bf95ccb06e",
      "tree": "2e0923217f12a177d2ca712feb18c9c611069f54",
      "parents": [
        "c5d5330637ed208e92b81c80ad12b53ffe4f0721"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 30 13:20:25 2016 -0700"
      },
      "committer": {
        "name": "Bertrand Simonnet",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 30 23:53:18 2016 +0000"
      },
      "message": "Remove listAvailableGpios.\n\nThis is not useful as we don\u0027t expect users to take runtime decisions\nbased on this.\n\nBug: 27836221\nBug: 27836293\nChange-Id: Ieef02af25b222ec52cfe7f35d91f31707d438267\n"
    },
    {
      "commit": "c5d5330637ed208e92b81c80ad12b53ffe4f0721",
      "tree": "568547222b63728fd4a23e076bfc3a0900cba347",
      "parents": [
        "2abf0833508ecfb74e44c3f00e6b6cdf8081019b"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 28 09:59:36 2016 -0700"
      },
      "committer": {
        "name": "Bertrand Simonnet",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 30 23:09:18 2016 +0000"
      },
      "message": "Fix binder mocking in unit tests.\n\nThis CL mocks binder correctly in the unit tests, avoiding calling\nservice manager.\n\nBug: 27901103\nTest: Unit tests pass. Service manager is not called.\n\nChange-Id: Ic4d8d80e47768dcabb69ae970b66bab2e3b1ee8d\n"
    },
    {
      "commit": "2abf0833508ecfb74e44c3f00e6b6cdf8081019b",
      "tree": "8e697e8aafbb586cee52556047808a161d31d41a",
      "parents": [
        "f4df29ac8ed4c45868b9bf93ad1d88478a92ceef"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 30 14:27:00 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 30 14:48:24 2016 -0700"
      },
      "message": "Allow setting the SPI message delay.\n\nThis CL adds an interface to set the delay to wait between two SPI\nmessages.\n\nBug: 27923916\n\nChange-Id: Idb1fa208b974d489414d63d67ad5fa702e8b03e4\n"
    },
    {
      "commit": "f4df29ac8ed4c45868b9bf93ad1d88478a92ceef",
      "tree": "b5a827aeed88039fe15ff7108dceb191d3568ec8",
      "parents": [
        "6187530413fd184856f85ea09bd30040e5426422"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 23 12:20:23 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 23 14:13:28 2016 -0700"
      },
      "message": "Add tests for the I2c developer C API.\n\nBug: 27675223\n\nChange-Id: I751083324c09aff20a93290897fc4676ce247722\n"
    },
    {
      "commit": "6187530413fd184856f85ea09bd30040e5426422",
      "tree": "f25d436a1d949de337c9552065c9f002e11955db",
      "parents": [
        "ce91d9cc8081cf805ed75fd5598a51e2fac3d5ee"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 23 10:20:14 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 23 11:08:25 2016 -0700"
      },
      "message": "Add unit tests for the Spi developer interfaces.\n\nBug: 27675223\n\nChange-Id: I34289c5caa7ba7d5d1a1f419829830d3a221ead0\n"
    },
    {
      "commit": "ce91d9cc8081cf805ed75fd5598a51e2fac3d5ee",
      "tree": "df94575b55c17ca3fae48b1d00c6fe058b6bb5c2",
      "parents": [
        "5e56ca140ffe08d1db1fad94b4916e61b244dfc3"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 16 13:12:44 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 21 17:24:57 2016 -0700"
      },
      "message": "Add unittests for the LEDs client interface.\n\nBug: 27675223\n\nChange-Id: Id3a4739c111c8c8e6ebb828687a2c72527499ed7\n"
    },
    {
      "commit": "5e56ca140ffe08d1db1fad94b4916e61b244dfc3",
      "tree": "5415d6eabc612544bd6f91cc11c3111093ce5989",
      "parents": [
        "abc3ca68e5c972e98deef01519278fdced23ddf0"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 21 12:11:09 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 21 12:31:02 2016 -0700"
      },
      "message": "Add a test for the C only compatibility.\n\nThis will be done with a no-op static library, including all the C\nheaders and compiling with strict C only compiler flags.\n\nChange-Id: I6fe4aaf0f3014b4325ec5fe052d09afc170ee972\n"
    },
    {
      "commit": "abc3ca68e5c972e98deef01519278fdced23ddf0",
      "tree": "6633a32fd06500139d58447841b616717cad549a",
      "parents": [
        "1d56dd24b6f6f811601de5baf4c2afa5e4ba8952"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 21 12:10:50 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 21 12:26:39 2016 -0700"
      },
      "message": "Fix the headers to be C89 compatible.\n\nFixes two things:\n* Trailing commas in enums are not supported in C89.\n* We must type define the pin_mux_callbacks structs in order to mention\n  it without the struct keyword.\n\nBug: 27601668\n\nChange-Id: Ie55e5e9ded69900a0848d192936ab1bb75c34c70\n"
    },
    {
      "commit": "1d56dd24b6f6f811601de5baf4c2afa5e4ba8952",
      "tree": "7592fec7ec586a084bd5e9e52952070a0b72d3f3",
      "parents": [
        "99867e2357be2b06e676f43a32ece79e2e35581f"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue Mar 15 17:06:45 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 16 13:14:59 2016 -0700"
      },
      "message": "Add unit tests for the Gpio C API.\n\nThis tests that:\n* the C API is correctly implemented.\n* the C/C++ to AIDL conversion is done properly.\n* the peripheral manager client tracks ownership correctly.\n\nBug: 27675223\n\nChange-Id: Ie7ce869b381fcf544af967826c62f283b7ddb61c\n"
    },
    {
      "commit": "99867e2357be2b06e676f43a32ece79e2e35581f",
      "tree": "daeec2b0901c8ba9e7b266f650ee3f5aa4195359",
      "parents": [
        "8deeb0f6d253ec82c51c91c426d8f3c3a623d7c2"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Fri Mar 11 16:28:55 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 15 15:11:22 2016 -0700"
      },
      "message": "Add I2C manager\n\nAdd basic support for I2C. Only Read Register\ncommand supported so far.\n\nBUG: 26776321\nTEST: Testing I2C temp sensor\n\nChange-Id: Id4a2e96df489c64b2724ac3995557459f285667c\n"
    },
    {
      "commit": "8deeb0f6d253ec82c51c91c426d8f3c3a623d7c2",
      "tree": "cf63231f915efac280c5cf99f34245b6c93344d2",
      "parents": [
        "7d12dacad6018701dac2b1a1b3e378d295ffe544"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 15 13:05:40 2016 -0700"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 15 13:05:40 2016 -0700"
      },
      "message": "Implement the LED driver and HAL\n\nHooked up the LED driver and wired up the\nHAL calls.\n\nStill missing Pin muxing for LEDs\n\nBUG: 27556738\nChange-Id: Ief334b3e66e7357cb2de8a2b6ccf553394bf2b77\nTEST: Toggled LEDs on dragonboard\n"
    },
    {
      "commit": "7d12dacad6018701dac2b1a1b3e378d295ffe544",
      "tree": "06b519837779c3f4a1566b50b5d4a4369a9892c9",
      "parents": [
        "a733d4aefdba57cd752783e19db1b0f906ff2877"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 14 13:56:31 2016 -0700"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 15 16:31:18 2016 +0000"
      },
      "message": "Expose the Led interface to the user.\n\nThis CL adds:\n* LED support in the AIDL interface.\n* LED support and implementation in the C API.\n* an example blinking an LED.\n\nBug: 27580067\n\nChange-Id: Ia8334006626c2683aa8ce40b0b90efc32585a29c\n"
    },
    {
      "commit": "a733d4aefdba57cd752783e19db1b0f906ff2877",
      "tree": "a0ee11e9993cad538b381a9f05f4116e49506f7e",
      "parents": [
        "7395d55b2d6dbeff5129ec3d64742d49f390332b"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 08 17:27:52 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 15 16:30:12 2016 +0000"
      },
      "message": "Implement LED manager\n\nAdd a manager for LEDs\n\nBUG: 27556738\nChange-Id: Id0a0e08d14005f37f8dfa2496dc07bdcdf6c1899\n"
    },
    {
      "commit": "7395d55b2d6dbeff5129ec3d64742d49f390332b",
      "tree": "79a03f608469971eeb11b92d566c922b99767b9a",
      "parents": [
        "869c5e88c34e8b6debfeeb6a57bb073451939a27"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 14 14:59:07 2016 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 14 14:59:07 2016 -0700"
      },
      "message": "Cleanup Peripheral IO\u0027s examples.\n\nRemoves unused library, unnecessary calls and headers.\n\nChange-Id: I2c7a0f2b2ed627c0b0f4d41418f446b5593b054e\nTest: examples work.\n"
    },
    {
      "commit": "869c5e88c34e8b6debfeeb6a57bb073451939a27",
      "tree": "143fffea02184acb6cc79d5e56f700752bb7cc2f",
      "parents": [
        "d3cafe115bdde62957bd3b95fd000e6dae1b1c49"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Mar 10 13:08:06 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Mar 10 13:09:58 2016 -0800"
      },
      "message": "Cleanup error descriptions.\n\nWe no longer have peripheral manager specific error code. The\ndocumentation should be more precise on what the error code is.\n\nBug: 27477643\nChange-Id: Ib685aa11f3b6f18d1a4611410f91571230c795c3\n"
    },
    {
      "commit": "d3cafe115bdde62957bd3b95fd000e6dae1b1c49",
      "tree": "05f16cb18c36f2423310fb523b0e7834bf58807b",
      "parents": [
        "0a407224a1e2b6f15fb56386f8a2633a703417e3"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 07 14:22:09 2016 -0800"
      },
      "committer": {
        "name": "Bertrand Simonnet",
        "email": "bsimonnet@google.com",
        "time": "Thu Mar 10 21:01:57 2016 +0000"
      },
      "message": "Add a helper to acknowledge a GPIO interrupt.\n\nWhen an interrupt triggers on a GPIO, we must lseek and read the value\nin order to be able to poll again. As we don\u0027t guarantee that the file\ndescriptor we use to poll will be the value file, add a convenience\nfunction to reset the file descriptor\u0027s state.\n\nTo illustrate how to use it, we provide an example that will watch a\nGPIO for interrupt and print a message when the GPIO\u0027s value changes.\nThis is implemented with both select and poll.\n\nBug: 26778811\n\nChange-Id: Ib25338599a8e08d7734839171da6204bb64a2ded\n"
    },
    {
      "commit": "0a407224a1e2b6f15fb56386f8a2633a703417e3",
      "tree": "1dbf2b1b6855b6af3239eee884d956d01bc1aa01",
      "parents": [
        "e2d5fe09e909fbff34cba9d9c5f5e1464a194030"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Mar 09 19:06:07 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Mar 10 09:54:47 2016 -0800"
      },
      "message": "Fix SPI Transfer rx code\n\nTEST: Read SPI data from a sensor\n\nChange-Id: I4a853d89f177fd281c0cb29d64bc57d82d7a0478\n"
    },
    {
      "commit": "e2d5fe09e909fbff34cba9d9c5f5e1464a194030",
      "tree": "ace23a5813b4906bc35462ada41701611ad7dc74",
      "parents": [
        "7b331c0a446f1cdd3340d3aca0318531a9d1fe1b"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Mar 09 10:29:47 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Mar 10 09:18:26 2016 -0800"
      },
      "message": "Use errno instead of a custom error code.\n\nErrno is expressive enough to cover all error cases we can encounter. It\nis also standard and more convinient to use.\n\nAll errors will be reported across the AIDL interface via service\nspecific error codes with values from errno.\nOn success, we allow reporting Status::ok() for convenience which\ntranslates to a service specific error code 0.\n\nBug: 27477643\nChange-Id: Ifa453d9f350cc2e06aea0f6d5c64eb5928404d88\n"
    },
    {
      "commit": "7b331c0a446f1cdd3340d3aca0318531a9d1fe1b",
      "tree": "5f2b50d30382e90949ed443ed82da698e4d5c8ff",
      "parents": [
        "67471f9b9301edbdf2225422c6a22e81357d3a5f"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Mar 09 17:33:14 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Mar 09 17:33:14 2016 -0800"
      },
      "message": "Wire up GPIO and SPI list commands\n\nFixed bug in SPI transfer\n\nChange-Id: I384a94e330a9962902044652a1d3cd5ae016ce0d\n"
    },
    {
      "commit": "67471f9b9301edbdf2225422c6a22e81357d3a5f",
      "tree": "9c184e7ebccc1d2e3c7086789b76b641b7d0b274",
      "parents": [
        "c589f9dc35abbd00601d50f732a4d7e0c83dccc1"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 08 17:13:31 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 08 17:13:31 2016 -0800"
      },
      "message": "Fix 64bit build due to type mismatch\n\nChange-Id: Ic1eb37f67872a5684be5567bc6cf9f75fecffc99\n"
    },
    {
      "commit": "c589f9dc35abbd00601d50f732a4d7e0c83dccc1",
      "tree": "1a5d47d9d03b6ca294bc0258291dc17c6edf77a8",
      "parents": [
        "e1adeba7ee43e6c609655c764d5dc8a7748d0126"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 08 16:00:55 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 08 17:07:56 2016 -0800"
      },
      "message": "Hook up the SPI HAL to the SPI manager\n\nImplement the backend IOCTLS for SPI\n\nBUG: 27555414\nChange-Id: I4be6b9e33dd7b6d2483a04f368289a3229df0439\nTEST: Tested with an RGB led\n"
    },
    {
      "commit": "e1adeba7ee43e6c609655c764d5dc8a7748d0126",
      "tree": "016a1845f66826e1b6b387d75ea63ed1df8c8ecb",
      "parents": [
        "c46c8c208575510d2d227d40bdd0efa5fcbb5b42"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Mar 03 15:51:21 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Tue Mar 08 16:28:20 2016 -0800"
      },
      "message": "Add doxygen docs for public headers\n\nAdded docs for errors, gpio and the client\n\nBUG: 27482120\nTEST: Generated a devsite.\n\nChange-Id: I514c75f6c7e8024996025cb10e0ae0860fc456f5\n"
    },
    {
      "commit": "c46c8c208575510d2d227d40bdd0efa5fcbb5b42",
      "tree": "a90063783d495c78e24d7c0346e28b34399c2e6f",
      "parents": [
        "33cd8fd3f2e0ec4db8f21f389671c766ae569b2e"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 07 14:28:38 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue Mar 08 16:06:01 2016 -0800"
      },
      "message": "Expose SPI in the developer interface.\n\nThis CL defines and implements the C API used by the developer to access\nthe SPI interface.\n\nBug: 27530022\n\nChange-Id: Id3380191fa8d81ff749e3db9d208dff25deed3fb\n"
    },
    {
      "commit": "33cd8fd3f2e0ec4db8f21f389671c766ae569b2e",
      "tree": "897b275227771a6a8de33c0d45857f8d02df1e06",
      "parents": [
        "bd83b2e6216032dccd729fedbf520e6765b44415"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 07 14:28:29 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 07 14:48:29 2016 -0800"
      },
      "message": "Add support for SPI in peripheral manager.\n\nThis CL adds the AIDL interface and support for SPI in peripheral\nmanager. This functionality is not yet exposed to the developer and will\nbe done in another CL.\n\nBug: 27529524\n\nChange-Id: I376f0e10febde61258048e04a1e5fc56f0b7b25f\n"
    },
    {
      "commit": "bd83b2e6216032dccd729fedbf520e6765b44415",
      "tree": "1b44a5bd2d6cd019ccba69be89daabf22de556d6",
      "parents": [
        "f7deda763f17f374396393ff8d01e036ea46d470"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue Mar 01 16:46:50 2016 -0800"
      },
      "committer": {
        "name": "Bertrand Simonnet",
        "email": "bsimonnet@google.com",
        "time": "Mon Mar 07 22:23:31 2016 +0000"
      },
      "message": "Add support for edge, active low and polling fd for GPIO.\n\nThis CL adds support to GPIO for:\n* setting the edge interrupt trigger.\n* setting the active low type.\n* passing a file descriptor to the client that can be used to poll on\n  interrupts.\n\nBug: 26778811\n\nChange-Id: I6c25eef5d6d02343316d55b2280398a1df59c091\n"
    },
    {
      "commit": "f7deda763f17f374396393ff8d01e036ea46d470",
      "tree": "53664508f19910749c1ee9da4bb13f5195dd9666",
      "parents": [
        "2f7e32cd7e127d36a09a85d8da612f3f7f8713d5"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Mar 03 15:52:44 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Mar 03 15:52:44 2016 -0800"
      },
      "message": "Fix crash loop when HAL can\u0027t be found\n\nWhen there is no HAL provided PIO will just run\nwith no registered devices\n\nChange-Id: Id8f3a7a69b18d5460996d7528d5cc99d1323821e\n"
    },
    {
      "commit": "2f7e32cd7e127d36a09a85d8da612f3f7f8713d5",
      "tree": "2437dcbbe71c5a3de87ba7314bf5d65e40dbe3d7",
      "parents": [
        "52373993181972ec6629d0c4e39ef86d448799d5"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Mar 03 13:34:39 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Mar 03 14:02:57 2016 -0800"
      },
      "message": "Add SPI Manager\n\nAdd SPI backend and fake device stubs for unit\ntesting.\n\nBUG: 26779252\nChange-Id: I33607d7a266f53a63452bd7a1757a22d9f21e97a\n"
    },
    {
      "commit": "52373993181972ec6629d0c4e39ef86d448799d5",
      "tree": "a5012d7c269e9ea1b5664d534be43a8eef94460a",
      "parents": [
        "6196081a689aa9f4457458848c90d2d5362e0ddc"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Mar 03 12:17:23 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Mar 03 20:57:04 2016 +0000"
      },
      "message": "Add --pin arg to example\n\nNow example can be ran as follows:\nperipheralmanager_example --pin\u003dIO18\n\nThis allows for easier testing of GPIO pins\n\nBUG: 26778811\nChange-Id: I713630ad14fd575bd28d880c94cb1a8ea5152361\nTEST: All the gpio pins on edison work.\n"
    },
    {
      "commit": "6196081a689aa9f4457458848c90d2d5362e0ddc",
      "tree": "be30baa4f3a5fbfd364638acb5e385d4852cc195",
      "parents": [
        "cee92931cbe24efa9348d14a126bf70f811091c3"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Mar 03 12:26:13 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Mar 03 12:26:13 2016 -0800"
      },
      "message": "Fix typo.\n\nBug: None\nChange-Id: I1cba67057b96ec4d123c31d4a52e80f7e29ae207\n"
    },
    {
      "commit": "cee92931cbe24efa9348d14a126bf70f811091c3",
      "tree": "4226f923c7c9473b71977aab9f7d12c660bff55d",
      "parents": [
        "f866d3a310074b5e7e5ca491d676a562d7d3bde2"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Mar 02 17:43:08 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Mar 03 20:06:29 2016 +0000"
      },
      "message": "Adding bare bones SPI driver\n\nAdd support for a spidev driver.\nIoctls are not wired up yet.\n\nBUG: 26779252\n\nChange-Id: I8d81d685077798ae96e73d0061b8f44c94d30310\n"
    },
    {
      "commit": "f866d3a310074b5e7e5ca491d676a562d7d3bde2",
      "tree": "568a69104071b52b17d1853f860f2bbc1fd63f28",
      "parents": [
        "933ced6dcece5eccb48eef26c47f710192b45bc9"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue Mar 01 14:29:01 2016 -0800"
      },
      "committer": {
        "name": "Bertrand Simonnet",
        "email": "bsimonnet@google.com",
        "time": "Thu Mar 03 20:06:17 2016 +0000"
      },
      "message": "Consolidate constants for client and daemon.\n\nInstead of defining the enum constants twice, consolidate them into a\nheader only library.\n\nBug: 27435044\n\nChange-Id: I768375aabb53caa1baa5f3973c39ae0ec4fee43f\n"
    },
    {
      "commit": "933ced6dcece5eccb48eef26c47f710192b45bc9",
      "tree": "fa7c2d3cd08de814e255d3809d30c93d54e86460",
      "parents": [
        "b6676135846d0ed3149ed4228d76e37e8f62bf5b"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Mar 02 13:46:53 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Mar 02 13:46:53 2016 -0800"
      },
      "message": "Add a CharDevice abstraction\n\nA CharDevice class to wrap function calls to\nchar devices. This can be used to provide stubs\nfor host unittesting\n\nBUG: 26779252\nChange-Id: I5c54916d284dec67ab4616caba7d9183fc1342b7\n"
    },
    {
      "commit": "b6676135846d0ed3149ed4228d76e37e8f62bf5b",
      "tree": "64f13545de3665cc24cd324a0756e4188f7e15df",
      "parents": [
        "e7e2b8f9e793abf9332feacc23deef672f1b1e61"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Fri Feb 12 13:47:46 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Mar 02 13:05:00 2016 -0800"
      },
      "message": "Add the peripheral IO HAL.\n\nThis interface is made to respect the HAL convention (C only, format)\nbut does not live in libhardware yet.\nA static library is provided to export the correct import path.\n\nBug: 26189976\n\nChange-Id: I68fddfd3da982fedf99b3791408c44986c425227\n"
    },
    {
      "commit": "e7e2b8f9e793abf9332feacc23deef672f1b1e61",
      "tree": "4e400d7be636b6b86f50baad9876dd5da6932e8c",
      "parents": [
        "6a3f8cdf7f94a8810d7d66d7979fc5a443ddf3e3"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Feb 29 11:01:00 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Tue Mar 01 09:55:16 2016 -0800"
      },
      "message": "Implement the Binder service boilerplate.\n\nImplements the skeleton binder service. The interface is a still a no-op\nand will be integrated with the different managers.\n\nBug: 27226997\n\nChange-Id: Ie65a3801f318518c957535abd1691ad0ac2138c9\n"
    },
    {
      "commit": "6a3f8cdf7f94a8810d7d66d7979fc5a443ddf3e3",
      "tree": "0585c3e691f05e6c936eeee876566e34829ee694",
      "parents": [
        "3fd0b9abafe9807b9bc6e9d36ce3b1d6c11deed8"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Fri Feb 19 14:33:31 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Feb 29 18:14:14 2016 -0800"
      },
      "message": "Implement the client side interfaces for GPIO.\n\nThis CL implements the interaction between the C API and the binder\ninterface for GPIO.\n\nBug: 26778811\n\nChange-Id: I76237fa1a940073ddc280562fdb81f346f569a15\n"
    },
    {
      "commit": "3fd0b9abafe9807b9bc6e9d36ce3b1d6c11deed8",
      "tree": "b87fc11cf7ecdc2aea630560668e8b5b534f0d5e",
      "parents": [
        "6ea2502228519b7a0668be0b1ec0d91ef74e4f06"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Wed Feb 17 14:25:22 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Feb 29 18:14:09 2016 -0800"
      },
      "message": "Add aidl interfaces.\n\nThis CL adds the aidl interface to the peripheral manager and to the\nperipheral manager client (binder owned by each client).\nThe interfaces are not yet implemented.\n\nBug: 27226997\n\nChange-Id: I60d17c5c358f001b7a9fd3be9f3c88d52b0acf54\n"
    },
    {
      "commit": "6ea2502228519b7a0668be0b1ec0d91ef74e4f06",
      "tree": "1238e6c0897ddf97f1f57a1c4b4ed4dfc2c83380",
      "parents": [
        "aba202d04b995688358f49000eb9fb810a9c82bf"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Feb 29 17:40:25 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Mon Feb 29 18:12:53 2016 -0800"
      },
      "message": "Define the developer interface for GPIO.\n\nThis CL defines the C API that will be used by developers.\n\nBug: 26778811\n\nChange-Id: I1d5d3e3232f058eb573df49a02ee9f3da1e9e9ce\n"
    },
    {
      "commit": "aba202d04b995688358f49000eb9fb810a9c82bf",
      "tree": "3e3a1758c7b63892e09d385beaa6210213e719ef",
      "parents": [
        "d84d8daea2ae265cd6d63c8684b2d47d6d8fab1d"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Mon Feb 29 15:20:05 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Mon Feb 29 15:51:58 2016 -0800"
      },
      "message": "PeripheralIO - Add Gpio Manager\n\nAdding logic to handle GPIO\n\nBUG: 27406165\nChange-Id: I913726e6090ad96676be67a3780cd16ea91148af\n"
    },
    {
      "commit": "d84d8daea2ae265cd6d63c8684b2d47d6d8fab1d",
      "tree": "8ebdc5a168f5908c9eb29b72b2afe85ff1196382",
      "parents": [
        "21e82fa9b25b9cdc37f27ff009813e2748b5e5e8"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Mon Feb 29 13:36:49 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Mon Feb 29 13:36:49 2016 -0800"
      },
      "message": "PeripheralIO - Add Gpio sysfs driver\n\nAdd gpio driver interface, along with a gpio\nsysfs implementation\n\nBUG: 27406165\nChange-Id: Ibb5618f3be86cc629d58fa807a63307ac5423d7a\n"
    },
    {
      "commit": "21e82fa9b25b9cdc37f27ff009813e2748b5e5e8",
      "tree": "fbf3dc1e5cb3df5aa391589b3b5b858730a84d14",
      "parents": [
        "f623729113f3f2ffdf0e99a616d047824024a64f"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Mon Feb 29 09:14:18 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Mon Feb 29 10:30:43 2016 -0800"
      },
      "message": "PeripheralIO - Add PinMuxManager\n\nImplement Pin Muxing support in the Daemon.\n\nBUG: 27405062\nChange-Id: I03b4de0a2bfc1e9c1bf4941093a98f8c20d9c461\nTEST: Host unittests\n"
    },
    {
      "commit": "f623729113f3f2ffdf0e99a616d047824024a64f",
      "tree": "cdbe1f806a960da526a40a16ec2a94a2a4cabc26",
      "parents": [
        "b9ff0930ab35fbbba73b9d9c7495bc5b6d43366c"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Feb 18 18:18:00 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Feb 18 18:18:00 2016 -0800"
      },
      "message": "Update clang-format file.\n\nWe now have a brillo wide clang format definition so we can symlink it\nhere.\n\nBug: None\nChange-Id: Ib7e93160c9526af36b45e73a2f3fa9319cc1e538\n"
    },
    {
      "commit": "b9ff0930ab35fbbba73b9d9c7495bc5b6d43366c",
      "tree": "2ebcb59976ac59fe34f5f19bda1385672427fddc",
      "parents": [
        "7f93d026d18ace0471397ef67992d54a6611ad23"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Fri Feb 12 13:47:29 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Fri Feb 12 15:46:59 2016 -0800"
      },
      "message": "Remove peripheralprovider.\n\nWe will use a C only HAL type abstraction for each board, the provider\npattern will not be needed.\n\nBug: 26189976\n\nChange-Id: I6e5968c7c4f214734b0117e484d362ce229f9fba\n"
    },
    {
      "commit": "7f93d026d18ace0471397ef67992d54a6611ad23",
      "tree": "af06abce187b331242b12a4c926b296e1169c7dc",
      "parents": [
        "9c62696baaf037b62d21829b93291ece6b530ee9"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jan 21 11:01:05 2016 -0800"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jan 21 15:06:55 2016 -0800"
      },
      "message": "peripheralman: Add the provider interface.\n\nThis ProviderInterface will be implemented by the BSP and will be used\nby peripheral manager to setup peripherals before handing it to the\nclient.\n\nBug: 26189976\nTest: builds.\n\nChange-Id: I363b495e5750c65e3f95e85970b210af0af15636\n"
    },
    {
      "commit": "9c62696baaf037b62d21829b93291ece6b530ee9",
      "tree": "2d4d4ca97876cd1d0f88ae0f218b80eaf75a0bf3",
      "parents": [
        "0f7b1e25b16a5feb1e9bb58fc573943c004831ae"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jan 21 11:16:53 2016 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 21 22:07:42 2016 +0000"
      },
      "message": "peripheralman: Add clang-format definition.\n\nCopied from system/core/metricsd/.clang-format.\nThis allows us to format the code with clang-format.\n\nChange-Id: Ice94e9f40403e6a2e53d928fbbb278807b478a63\n"
    },
    {
      "commit": "0f7b1e25b16a5feb1e9bb58fc573943c004831ae",
      "tree": "9839363641a8ee5badd56c3420108d51aa09e0be",
      "parents": [
        "3ae37fef7ae4256b43c1d54c8c7a878a668d57cb"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Jan 20 23:31:46 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Thu Jan 21 13:56:02 2016 -0800"
      },
      "message": "peripheralman: Add dummy aidl service\n\nSet up all the boilerplate to setup the IPC\ninterface using AIDL.\n\nAlso add an example CLI tool.\n\nChange-Id: Icd2837b99deb016f8b70e9823ba96c44fd36286f\nTEST: service registers and example runs.\n"
    },
    {
      "commit": "3ae37fef7ae4256b43c1d54c8c7a878a668d57cb",
      "tree": "3c2e98275f7485810b31cd803508df6441c3df5b",
      "parents": [
        "88e00453a7f05a6919d6d8e0209ed936fe8904cc"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Jan 20 17:22:48 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Jan 20 17:22:48 2016 -0800"
      },
      "message": "peripheralman: Barebones client and daemon.\n\nAdd barebones client, daemon and Android.mk files\n\nChange-Id: I5eea0da35ffa6ec6e03a0add1e9b1d2e397f38bf\nTEST: Services starts on the emulator\n"
    },
    {
      "commit": "88e00453a7f05a6919d6d8e0209ed936fe8904cc",
      "tree": "b91f11b627e847f388e43f23dc5613f1889b165a",
      "parents": [
        "4a2a422ac6ff2d64dc32467692f65d182bbc7b61"
      ],
      "author": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Jan 20 17:09:12 2016 -0800"
      },
      "committer": {
        "name": "Lee Campbell",
        "email": "leecam@google.com",
        "time": "Wed Jan 20 17:09:12 2016 -0800"
      },
      "message": "peripheralman: Adding License files\n\nChange-Id: I3a16e307f143f06649b18cec06272f171165ea5d\n"
    },
    {
      "commit": "4a2a422ac6ff2d64dc32467692f65d182bbc7b61",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Wed Jan 20 16:42:41 2016 -0800"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Wed Jan 20 16:42:41 2016 -0800"
      },
      "message": "Initial empty repository\n"
    }
  ]
}
