diff options
author | Tom Rini <trini@konsulko.com> | 2017-05-17 14:13:16 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-05-17 14:13:16 -0400 |
commit | ae1b939930b0fffc062bb99196ec22e19afcc7e8 (patch) | |
tree | cc8d8c87b15932f82d5ed3c4e26bb118de949aff /drivers/spi/ich.c | |
parent | a9f47426ced2e5057930990f3cd602b8ab936f69 (diff) | |
parent | c2f17939f4b429c90a453e26927a7c578e5456b5 (diff) |
Merge git://git.denx.de/u-boot-x86
Diffstat (limited to 'drivers/spi/ich.c')
-rw-r--r-- | drivers/spi/ich.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/spi/ich.c b/drivers/spi/ich.c index 893fe33b66..bf2e99b5cc 100644 --- a/drivers/spi/ich.c +++ b/drivers/spi/ich.c @@ -617,6 +617,22 @@ static int ich_spi_probe(struct udevice *dev) return 0; } +static int ich_spi_remove(struct udevice *bus) +{ + struct ich_spi_priv *ctlr = dev_get_priv(bus); + + /* + * Configure SPI controller so that the Linux MTD driver can fully + * access the SPI NOR chip + */ + ich_writew(ctlr, SPI_OPPREFIX, ctlr->preop); + ich_writew(ctlr, SPI_OPTYPE, ctlr->optype); + ich_writel(ctlr, SPI_OPMENU_LOWER, ctlr->opmenu); + ich_writel(ctlr, SPI_OPMENU_UPPER, ctlr->opmenu + sizeof(u32)); + + return 0; +} + static int ich_spi_set_speed(struct udevice *bus, uint speed) { struct ich_spi_priv *priv = dev_get_priv(bus); @@ -700,4 +716,6 @@ U_BOOT_DRIVER(ich_spi) = { .priv_auto_alloc_size = sizeof(struct ich_spi_priv), .child_pre_probe = ich_spi_child_pre_probe, .probe = ich_spi_probe, + .remove = ich_spi_remove, + .flags = DM_FLAG_OS_PREPARE, }; |