1*12ef88d8SKane-Chen-AS /* 2*12ef88d8SKane-Chen-AS * ASPEED OTP (One-Time Programmable) memory 3*12ef88d8SKane-Chen-AS * 4*12ef88d8SKane-Chen-AS * Copyright (C) 2025 Aspeed 5*12ef88d8SKane-Chen-AS * 6*12ef88d8SKane-Chen-AS * SPDX-License-Identifier: GPL-2.0-or-later 7*12ef88d8SKane-Chen-AS */ 8*12ef88d8SKane-Chen-AS 9*12ef88d8SKane-Chen-AS #ifndef ASPEED_OTP_H 10*12ef88d8SKane-Chen-AS #define ASPEED_OTP_H 11*12ef88d8SKane-Chen-AS 12*12ef88d8SKane-Chen-AS #include "system/memory.h" 13*12ef88d8SKane-Chen-AS #include "hw/block/block.h" 14*12ef88d8SKane-Chen-AS #include "system/address-spaces.h" 15*12ef88d8SKane-Chen-AS 16*12ef88d8SKane-Chen-AS #define TYPE_ASPEED_OTP "aspeed-otp" 17*12ef88d8SKane-Chen-AS OBJECT_DECLARE_SIMPLE_TYPE(AspeedOTPState, ASPEED_OTP) 18*12ef88d8SKane-Chen-AS 19*12ef88d8SKane-Chen-AS typedef struct AspeedOTPState { 20*12ef88d8SKane-Chen-AS DeviceState parent_obj; 21*12ef88d8SKane-Chen-AS 22*12ef88d8SKane-Chen-AS BlockBackend *blk; 23*12ef88d8SKane-Chen-AS 24*12ef88d8SKane-Chen-AS uint64_t size; 25*12ef88d8SKane-Chen-AS 26*12ef88d8SKane-Chen-AS AddressSpace as; 27*12ef88d8SKane-Chen-AS 28*12ef88d8SKane-Chen-AS MemoryRegion mmio; 29*12ef88d8SKane-Chen-AS 30*12ef88d8SKane-Chen-AS uint8_t *storage; 31*12ef88d8SKane-Chen-AS } AspeedOTPState; 32*12ef88d8SKane-Chen-AS 33*12ef88d8SKane-Chen-AS #endif /* ASPEED_OTP_H */ 34