cmd_addr is used for some special command: * 1. to be sector address, when implemented erase sector command * 2. to be flash address when implemented read, write flash address * * Return 0 on success, return 1 on failure. */
| 2678 | * Return 0 on success, return 1 on failure. |
| 2679 | */ |
| 2680 | u32 txgbe_fmgr_cmd_op(struct txgbe_hw *hw, u32 cmd, u32 cmd_addr) |
| 2681 | { |
| 2682 | u32 cmd_val, i; |
| 2683 | |
| 2684 | cmd_val = TXGBE_SPICMD_CMD(cmd) | TXGBE_SPICMD_CLK(3) | cmd_addr; |
| 2685 | wr32(hw, TXGBE_SPICMD, cmd_val); |
| 2686 | |
| 2687 | for (i = 0; i < TXGBE_SPI_TIMEOUT; i++) { |
| 2688 | if (rd32(hw, TXGBE_SPISTAT) & TXGBE_SPISTAT_OPDONE) |
| 2689 | break; |
| 2690 | |
| 2691 | usec_delay(10); |
| 2692 | } |
| 2693 | |
| 2694 | if (i == TXGBE_SPI_TIMEOUT) |
| 2695 | return 1; |
| 2696 | |
| 2697 | return 0; |
| 2698 | } |
| 2699 | |
| 2700 | u32 txgbe_flash_read_dword(struct txgbe_hw *hw, u32 addr) |
| 2701 | { |
no test coverage detected