mirror of
https://github.com/google/pebble.git
synced 2026-02-14 01:17:20 -05:00
73 lines
1.7 KiB
C
73 lines
1.7 KiB
C
/*
|
|
* Copyright 2024 Google LLC
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
#if PLATFORM_TINTIN || PLATFORM_SNOWY || PLATFORM_SPALDING
|
|
enum {
|
|
// ML/FL / 1.0 and later:
|
|
OTP_SERIAL1 = 0,
|
|
OTP_HWVER1 = 1,
|
|
OTP_PCBA_SERIAL1 = 2,
|
|
// Quanta / HW 1.3 and later:
|
|
OTP_SERIAL2 = 3,
|
|
OTP_SERIAL3 = 4,
|
|
OTP_SERIAL4 = 5,
|
|
OTP_SERIAL5 = 6,
|
|
OTP_PCBA_SERIAL2 = 7,
|
|
OTP_PCBA_SERIAL3 = 8,
|
|
|
|
NUM_OTP_SLOTS = 16,
|
|
};
|
|
#elif PLATFORM_SILK || PLATFORM_CALCULUS || PLATFORM_ROBERT
|
|
enum {
|
|
OTP_HWVER1 = 0,
|
|
OTP_HWVER2 = 1,
|
|
OTP_HWVER3 = 2,
|
|
OTP_HWVER4 = 3,
|
|
OTP_HWVER5 = 4,
|
|
|
|
OTP_SERIAL1 = 5,
|
|
OTP_SERIAL2 = 6,
|
|
OTP_SERIAL3 = 7,
|
|
OTP_SERIAL4 = 8,
|
|
OTP_SERIAL5 = 9,
|
|
|
|
OTP_PCBA_SERIAL1 = 10,
|
|
OTP_PCBA_SERIAL2 = 11,
|
|
OTP_PCBA_SERIAL3 = 12,
|
|
|
|
NUM_OTP_SLOTS = 16,
|
|
};
|
|
#else
|
|
#error "OTP Slots not set for platform"
|
|
#endif
|
|
|
|
typedef enum {
|
|
OtpWriteSuccess = 0,
|
|
OtpWriteFailAlreadyWritten = 1,
|
|
OtpWriteFailCorrupt = 2,
|
|
} OtpWriteResult;
|
|
|
|
uint8_t * otp_get_lock(const uint8_t index);
|
|
bool otp_is_locked(const uint8_t index);
|
|
|
|
char * otp_get_slot(const uint8_t index);
|
|
OtpWriteResult otp_write_slot(const uint8_t index, const char *value);
|