qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

hardware_id.c (605B)


      1 // Copyright 2022 QMK
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #include <ch.h>
      5 #include "hardware_id.h"
      6 
      7 __attribute__((weak)) hardware_id_t get_hardware_id(void) {
      8     hardware_id_t id = {0};
      9 #if defined(RP2040)
     10     // Forward declare as including "hardware/flash.h" here causes more issues...
     11     void flash_get_unique_id(uint8_t *);
     12 
     13     flash_get_unique_id((uint8_t *)&id);
     14 #elif defined(UID_BASE)
     15     id.data[0] = (uint32_t)(*((uint32_t *)UID_BASE));
     16     id.data[1] = (uint32_t)(*((uint32_t *)(UID_BASE + 4)));
     17     id.data[2] = (uint32_t)(*((uint32_t *)(UID_BASE + 8)));
     18 #endif
     19     return id;
     20 }