diff options
author | ian <ian@FreeBSD.org> | 2014-09-04 14:57:04 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-09-04 14:57:04 +0000 |
commit | 5bb6e38918db9589e0ba24d575200b0ff16a751b (patch) | |
tree | 7509943120ac2086feec58cdde113212633d4804 /sys/arm/freescale/imx/imx51_iomux.c | |
parent | 6d24ae3be3237b48676a12d68b70397d3937629d (diff) | |
download | FreeBSD-src-5bb6e38918db9589e0ba24d575200b0ff16a751b.zip FreeBSD-src-5bb6e38918db9589e0ba24d575200b0ff16a751b.tar.gz |
Implement the same public interface in imx51 and imx6 iomux; use the common
header file for both. Remove some unused code from imx51_iomux. The iomux
drivers are required, not optional, adjust the files.* entries accordingly.
Diffstat (limited to 'sys/arm/freescale/imx/imx51_iomux.c')
-rw-r--r-- | sys/arm/freescale/imx/imx51_iomux.c | 45 |
1 files changed, 11 insertions, 34 deletions
diff --git a/sys/arm/freescale/imx/imx51_iomux.c b/sys/arm/freescale/imx/imx51_iomux.c index 0dc0648..1953b7a 100644 --- a/sys/arm/freescale/imx/imx51_iomux.c +++ b/sys/arm/freescale/imx/imx51_iomux.c @@ -75,8 +75,7 @@ __FBSDID("$FreeBSD$"); #include <dev/ofw/ofw_bus_subr.h> #include <arm/freescale/imx/imx_iomuxvar.h> -#include <arm/freescale/imx/imx51_iomuxvar.h> -#include <arm/freescale/imx/imx51_iomuxreg.h> +#include "imx51_iomuxreg.h" #define IOMUX_WRITE(_sc, _r, _v) \ @@ -177,45 +176,23 @@ iomux_set_pad(unsigned int pin, unsigned int config) iomux_set_pad_sub(iomuxsc, pin, config); } -#ifdef notyet -void -iomux_set_input(unsigned int input, unsigned int config) +static uint32_t +iomux_get_pad_config_sub(struct iomux_softc *sc, uint32_t pin) { - bus_size_t input_ctl_reg = input; - - bus_space_write_4(iomuxsc->iomux_memt, iomuxsc->iomux_memh, - input_ctl_reg, config); -} -#endif + bus_size_t pad_reg = IOMUX_PIN_TO_PAD_ADDRESS(pin); + uint32_t result; -void -iomux_mux_config(const struct iomux_conf *conflist) -{ - int i; + result = IOMUX_READ(sc, pad_reg); - if (iomuxsc == NULL) - return; - for (i = 0; conflist[i].pin != IOMUX_CONF_EOT; i++) { - iomux_set_pad_sub(iomuxsc, conflist[i].pin, conflist[i].pad); - iomux_set_function_sub(iomuxsc, conflist[i].pin, - conflist[i].mux); - } + return(result); } -#ifdef notyet -void -iomux_input_config(const struct iomux_input_conf *conflist) +unsigned int +iomux_get_pad_config(unsigned int pin) { - int i; - if (iomuxsc == NULL) - return; - for (i = 0; conflist[i].inout != -1; i++) { - iomux_set_inout(iomuxsc, conflist[i].inout, - conflist[i].inout_mode); - } + return(iomux_get_pad_config_sub(iomuxsc, pin)); } -#endif uint32_t imx_iomux_gpr_get(u_int regnum) @@ -268,5 +245,5 @@ static driver_t imx_iomux_driver = { static devclass_t imx_iomux_devclass; EARLY_DRIVER_MODULE(imx_iomux, simplebus, imx_iomux_driver, - imx_iomux_devclass, 0, 0, BUS_PASS_BUS - 1); + imx_iomux_devclass, 0, 0, BUS_PASS_CPU + BUS_PASS_ORDER_LATE); |