spi: Import upstream's per-flash spi master register scheme

Align closer with upstream by introducing a new register dispatch
mechanism and using it to confine global usage behind an API.

V.2: Fix the embedding of mst into the flashctx.
V.3: Just introduce the structures and dispatch mechanism however
     avoid using it here in this patch.
V.4: Sqush in, 'add missing feild in programmer.h' &&
		'cli_classic,dediprog: Fix probe_flash() call sites' &&
		'hack control flow so new dispatch is a nop here'.

BUG=chromium:478356
BRANCH=none
TEST=still builds

Change-Id: I9f3092de8b0a0ea377a53c2b093884ead1eaf13d
Signed-off-by: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/flashrom/+/1657471
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Reviewed-by: Sam McNally <sammc@chromium.org>
Tested-by: Stefan Reinauer <reinauer@google.com>
6 files changed