| .. | .. |
|---|
| 27 | 27 | |
|---|
| 28 | 28 | #include "dm_services_types.h" |
|---|
| 29 | 29 | |
|---|
| 30 | +/* If HW itself ever powered down it will be 0. |
|---|
| 31 | + * fwDmcuInit will write to 1. |
|---|
| 32 | + * Driver will only call MCP init if current state is 1, |
|---|
| 33 | + * and the MCP command will transition this to 2. |
|---|
| 34 | + */ |
|---|
| 30 | 35 | enum dmcu_state { |
|---|
| 31 | | - DMCU_NOT_INITIALIZED = 0, |
|---|
| 32 | | - DMCU_RUNNING = 1 |
|---|
| 36 | + DMCU_UNLOADED = 0, |
|---|
| 37 | + DMCU_LOADED_UNINITIALIZED = 1, |
|---|
| 38 | + DMCU_RUNNING = 2, |
|---|
| 39 | +}; |
|---|
| 40 | + |
|---|
| 41 | +struct dmcu_version { |
|---|
| 42 | + unsigned int interface_version; |
|---|
| 43 | + unsigned int abm_version; |
|---|
| 44 | + unsigned int psr_version; |
|---|
| 45 | + unsigned int build_version; |
|---|
| 33 | 46 | }; |
|---|
| 34 | 47 | |
|---|
| 35 | 48 | struct dmcu { |
|---|
| .. | .. |
|---|
| 39 | 52 | enum dmcu_state dmcu_state; |
|---|
| 40 | 53 | struct dmcu_version dmcu_version; |
|---|
| 41 | 54 | unsigned int cached_wait_loop_number; |
|---|
| 55 | + uint32_t psp_version; |
|---|
| 56 | + bool auto_load_dmcu; |
|---|
| 42 | 57 | }; |
|---|
| 43 | 58 | |
|---|
| 44 | 59 | struct dmcu_funcs { |
|---|
| .. | .. |
|---|
| 57 | 72 | void (*get_psr_wait_loop)(struct dmcu *dmcu, |
|---|
| 58 | 73 | unsigned int *psr_wait_loop_number); |
|---|
| 59 | 74 | bool (*is_dmcu_initialized)(struct dmcu *dmcu); |
|---|
| 75 | + bool (*lock_phy)(struct dmcu *dmcu); |
|---|
| 76 | + bool (*unlock_phy)(struct dmcu *dmcu); |
|---|
| 60 | 77 | }; |
|---|
| 61 | 78 | |
|---|
| 62 | 79 | #endif |
|---|