)]}'
{
  "commit": "cd05d209a9cabe1c2b5e64b4a12beec995c03bc6",
  "tree": "702d9c4668db87c0cb0563ba7b01796ac2556dd1",
  "parents": [
    "6763a69d9d349ea1c2e09d9ff60428f081ffbc1c"
  ],
  "author": {
    "name": "will-v-pi",
    "email": "108662275+will-v-pi@users.noreply.github.com",
    "time": "Thu May 28 15:52:57 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu May 28 09:52:57 2026 -0500"
  },
  "message": "Add library for reset interface (#2629)\n\n* Allow use of reset interface with custom descriptors\n\n* Fix pico_config assertion error\n\n* Create separate library for reset interface\n\n* Move pico_usb_reset_interface library into separate folder\n\n* Fix bazel build\n\n* Move ms_os_20_desc into header\n\n* CFG_TUD_VENDOR isn\u0027t actually used\n\n* Add documentation to usb_reset_interface.h\n\n* Change #if PICO_ON_DEVICE -\u003e #if LIB_PICO_USB_RESET_INTERFACE\n\nCleaner way of separating the usb_reset_interface.h header\n\n* Rename publically accessible functions\n\n* Move LIB_PICO_USB_RESET_INTERFACE only headers into separate files\n\n* Make new usb_reset_interface_device header so old usb_reset_interface header remains the same\n\n* Review fixups\n\npico_usb_reset_... -\u003e usb_reset_...\n\nPICO_STDIO_USB_RESET_INCLUDE_APP_DRIVER_CB -\u003e PICO_STDIO_USB_RESET_INCLUDE_DEFAULT_APP_DRIVER_CB\n\nAdd to docs/index.h\n\n* Remove STDIO from defines\n\nInclude backwards compatibility with old define names\n\nAlso fix bazel build\n\n* Merge pico_stdio_usb: fix overlap between activity-LED GPIO and active_low bit (#2947)\n\ncommit 97ed432d39da36146ea423ad7b0a175b3add1590\nAuthor: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e\nDate:   Tue May 19 17:37:03 2026 -0500\n\n    grr\n\ncommit 90c5d5a023f5d0ae38efbb47b1a4b7efe289abb3\nAuthor: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e\nDate:   Tue May 19 17:36:27 2026 -0500\n\n    missing ) in comment\n\ncommit 082e45980f52cfef103ac92700868d3bd8614020\nAuthor: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e\nDate:   Tue May 19 17:35:37 2026 -0500\n\n    Re-arrange bit patterns to be more backwards compatible\n\ncommit e2436165ad8d1cd286afc577efbda62bf253febb\nAuthor: Andrii Anoshyn \u003canoshyn.andrii@gmail.com\u003e\nDate:   Sat May 16 14:29:23 2026 +0300\n\n    pico_stdio_usb: fix overlap between activity-LED GPIO and active_low bit\n\n    The bootsel reset USB control transfer encodes the activity-LED GPIO in\n    wValue. The current layout reads:\n\n      if (request-\u003ewValue \u0026 0x100) {\n          gpio \u003d request-\u003ewValue \u003e\u003e 9u;\n      }\n      active_low \u003d request-\u003ewValue \u0026 0x200;\n\n    Bit 9 (0x200) is the active_low flag, but `gpio \u003d wValue \u003e\u003e 9` also\n    makes bit 9 the low bit of the extracted GPIO number. As a result:\n    - Any odd-numbered activity-LED GPIO is silently flagged active_low.\n    - Any client wanting active_low has the GPIO number\u0027s low bit forced.\n\n    The active_low line was added in commit 5a988894 (\\\"add\n    rom_reset_usb_boot_extra which supports \u003e32 pins and ACTIVE_LOW\\\") on\n    top of the original \\\"gpio \u003d wValue \u003e\u003e 9\\\" encoding from commit 383e88ea,\n    without shifting the gpio over by an extra bit to make room. See #2713.\n\n    Shift the GPIO extraction to (wValue \u003e\u003e 10) so bit 9 is reserved for\n    active_low alone. The resulting GPIO field is 6 bits (0-63), enough\n    for RP2040 (30 GPIOs) and RP2350 (48 GPIOs). The canonical client\n    (picotool) only sends wValue\u003ddisable_mask with bits 0-1 set, so this\n    does not change any in-tree behavior; the change is only visible to\n    out-of-tree clients that build wValue with the GPIO-specified bit set.\n\n    Fixes #2713.\n\n* fix search \u0026 replace typo\n\n* Rename library to pico_usb_reset, and move headers into rp2_common\n\n* Fix bazel build, and remove some unnecessary backwards compatibility for new defines\n\n* fix bazel formatting\n\n* Reorder pico_config defines\n\nPlace vendor interface defines after PICO_ENABLE_USB_RESET_VIA_VENDOR_INTERFACE, and bootsel defines after PICO_USB_RESET_SUPPORT_RESET_TO_BOOTSEL\n\n* Mention that active_low is ignored on RP2040\n\n* Make wValue parsing better match the comment",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fe827992b5b52682028ff533a70792b054c8a0e0",
      "old_mode": 33188,
      "old_path": "docs/index.h",
      "new_id": "bcd607c7f33a44bad307dd41231f78e774327c15",
      "new_mode": 33188,
      "new_path": "docs/index.h"
    },
    {
      "type": "modify",
      "old_id": "243def67d7d407ad4bd152f1c5d527a9eadebdf4",
      "old_mode": 33188,
      "old_path": "src/cmake/rp2_common.cmake",
      "new_id": "ea91950f1f5376d1c8309446f3d88021e4190634",
      "new_mode": 33188,
      "new_path": "src/cmake/rp2_common.cmake"
    },
    {
      "type": "modify",
      "old_id": "6e827437dc36b464afcf0bfd8b4a944dbd75fc51",
      "old_mode": 33188,
      "old_path": "src/common/pico_usb_reset_interface_headers/BUILD.bazel",
      "new_id": "12df0f6b291f51826e9e89d2cf77b7c71513fe57",
      "new_mode": 33188,
      "new_path": "src/common/pico_usb_reset_interface_headers/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "6be755edc3d9c236f6c831b17bf521a0de421997",
      "old_mode": 33188,
      "old_path": "src/common/pico_usb_reset_interface_headers/CMakeLists.txt",
      "new_id": "f1927a8900fae26dfa2ae002df147f83b284863c",
      "new_mode": 33188,
      "new_path": "src/common/pico_usb_reset_interface_headers/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "f554378be5530b45c63ed71aded2e4c5cd3e797f",
      "old_mode": 33188,
      "old_path": "src/rp2_common/pico_stdio_usb/BUILD.bazel",
      "new_id": "5f851bc8d665727f90ab629adc207ed57120df82",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_stdio_usb/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "8dc672182f5008eb3b4e9764893fe739c9c1154c",
      "old_mode": 33188,
      "old_path": "src/rp2_common/pico_stdio_usb/CMakeLists.txt",
      "new_id": "c9770d23b327e758f470116387db307b2ef7c6d4",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_stdio_usb/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "5cf2e1f665789656ca42b38a06d752647f3a39cb",
      "old_mode": 33188,
      "old_path": "src/rp2_common/pico_stdio_usb/include/pico/stdio_usb.h",
      "new_id": "42aa986e63463d95e73a416d654a00a86970e615",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_stdio_usb/include/pico/stdio_usb.h"
    },
    {
      "type": "modify",
      "old_id": "0b9e4306ba2cc16ae1455137f0315b504ae3789d",
      "old_mode": 33188,
      "old_path": "src/rp2_common/pico_stdio_usb/include/tusb_config.h",
      "new_id": "302ff0ad81f4b2579a28970294a3a24e55f71bba",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_stdio_usb/include/tusb_config.h"
    },
    {
      "type": "delete",
      "old_id": "0613209363558ad4516da213c2cb0736c9332ab8",
      "old_mode": 33188,
      "old_path": "src/rp2_common/pico_stdio_usb/reset_interface.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "b805e8fb2990130af63bd966a7b450699357e1e8",
      "old_mode": 33188,
      "old_path": "src/rp2_common/pico_stdio_usb/stdio_usb_descriptors.c",
      "new_id": "7e5b200f2deb49d106e26a782c0053d97dac4da7",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_stdio_usb/stdio_usb_descriptors.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1eb5f439b1ad41801642beed38080128f5f682e5",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_usb_reset/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b4cebe1db96518e2a0b77cdeb08a7938ac974527",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_usb_reset/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "883873b43eaf0aea3b5d5cf78d5243b9feca48a9",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_usb_reset/include/pico/usb_reset.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6084cdb0ee2eebba2093244b6aa4967cac4eec0b",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_usb_reset/include/pico/usb_reset_config.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1ef73d7a466c42cb093d8338a3f4314b09b771a1",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_usb_reset/include/pico/usb_reset_tusb.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f40a16969993ae8d78d331884ae59b6e31e98716",
      "new_mode": 33188,
      "new_path": "src/rp2_common/pico_usb_reset/usb_reset.c"
    }
  ]
}
