stm32l: clear and then set GPIO mode and pull-up/down settings
stm32l: clear and then set GPIO mode and pull-up/down settings

GPIO mode and pull-up/down registers do not all get initialized to
zero on reset. This patch ensures that all bits in the those registers
are set explicitly. An intermediate variable is used so that changes
are made atomically.

Note: output speed registers are also not all initialized to zero, but
we don't handle that in gpio_pre_init yet.

BUG=none
TEST=tested on newer daisy boards (which needed this patch to boot)

Change-Id: Ice2795197135dcee8f8484e4908dbfcf90fec2c9
Signed-off-by: David Hendricks <3b0deacc4b5357f519084f1ea34bd42bf5d34545@chromium.org>

alterapraxisptyltd/chromium-ec,longsleep/ec,mtk09422/chromiumos-platform-ec,longsleep/ec,eatbyte/chromium-ec,coreboot/chrome-ec,fourier49/BZ_DEV_EC,thehobn/ec,coreboot/chrome-ec,alterapraxisptyltd/chromium-ec,longsleep/ec,thehobn/ec,md5555/ec,akappy7/ChromeOS_EC_LED_Diagnostics,fourier49/BIZ_EC,fourier49/BIZ_EC,thehobn/ec,alterapraxisptyltd/chromium-ec,longsleep/ec,eatbyte/chromium-ec,fourier49/BIZ_EC,coreboot/chrome-ec,eatbyte/chromium-ec,gelraen/cros-ec,coreboot/chrome-ec,md5555/ec,gelraen/cros-ec,akappy7/ChromeOS_EC_LED_Diagnostics,alterapraxisptyltd/chromium-ec,gelraen/cros-ec,coreboot/chrome-ec,coreboot/chrome-ec,akappy7/ChromeOS_EC_LED_Diagnostics,thehobn/ec,mtk09422/chromiumos-platform-ec,md5555/ec,mtk09422/chromiumos-platform-ec,fourier49/BIZ_EC,fourier49/BZ_DEV_EC,akappy7/ChromeOS_EC_LED_Diagnostics,fourier49/BZ_DEV_EC,akappy7/ChromeOS_EC_LED_Diagnostics,gelraen/cros-ec,fourier49/BZ_DEV_EC,eatbyte/chromium-ec,md5555/ec,mtk09422/chromiumos-platform-ec