.. | .. |
---|
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 |
---|