Loading arch/arm/plat-mxc/include/mach/iomux-v3.h +1 −16 Original line number Diff line number Diff line Loading @@ -88,9 +88,7 @@ struct pad_desc { #define PAD_CTL_SRE_FAST (1 << 0) /* * setups a single pad: * - reserves the pad so that it is not claimed by another driver * - setups the iomux according to the configuration * setups a single pad in the iomuxer */ int mxc_iomux_v3_setup_pad(struct pad_desc *pad); Loading @@ -100,19 +98,6 @@ int mxc_iomux_v3_setup_pad(struct pad_desc *pad); */ int mxc_iomux_v3_setup_multiple_pads(struct pad_desc *pad_list, unsigned count); /* * releases a single pad: * - make it available for a future use by another driver * - DOES NOT reconfigure the IOMUX in its reset state */ void mxc_iomux_v3_release_pad(struct pad_desc *pad); /* * releases multiple pads * convenvient way to call the above function with tables */ void mxc_iomux_v3_release_multiple_pads(struct pad_desc *pad_list, int count); /* * Initialise the iomux controller */ Loading arch/arm/plat-mxc/iomux-v3.c +2 −34 Original line number Diff line number Diff line Loading @@ -31,19 +31,11 @@ static void __iomem *base; static unsigned long iomux_v3_pad_alloc_map[0x200 / BITS_PER_LONG]; /* * setups a single pin: * - reserves the pin so that it is not claimed by another driver * - setups the iomux according to the configuration * setups a single pad in the iomuxer */ int mxc_iomux_v3_setup_pad(struct pad_desc *pad) { unsigned int pad_ofs = pad->pad_ctrl_ofs; if (test_and_set_bit(pad_ofs >> 2, iomux_v3_pad_alloc_map)) return -EBUSY; if (pad->mux_ctrl_ofs) __raw_writel(pad->mux_mode, base + pad->mux_ctrl_ofs); Loading @@ -66,37 +58,13 @@ int mxc_iomux_v3_setup_multiple_pads(struct pad_desc *pad_list, unsigned count) for (i = 0; i < count; i++) { ret = mxc_iomux_v3_setup_pad(p); if (ret) goto setup_error; return ret; p++; } return 0; setup_error: mxc_iomux_v3_release_multiple_pads(pad_list, i); return ret; } EXPORT_SYMBOL(mxc_iomux_v3_setup_multiple_pads); void mxc_iomux_v3_release_pad(struct pad_desc *pad) { unsigned int pad_ofs = pad->pad_ctrl_ofs; clear_bit(pad_ofs >> 2, iomux_v3_pad_alloc_map); } EXPORT_SYMBOL(mxc_iomux_v3_release_pad); void mxc_iomux_v3_release_multiple_pads(struct pad_desc *pad_list, int count) { struct pad_desc *p = pad_list; int i; for (i = 0; i < count; i++) { mxc_iomux_v3_release_pad(p); p++; } } EXPORT_SYMBOL(mxc_iomux_v3_release_multiple_pads); void mxc_iomux_v3_init(void __iomem *iomux_v3_base) { base = iomux_v3_base; Loading Loading
arch/arm/plat-mxc/include/mach/iomux-v3.h +1 −16 Original line number Diff line number Diff line Loading @@ -88,9 +88,7 @@ struct pad_desc { #define PAD_CTL_SRE_FAST (1 << 0) /* * setups a single pad: * - reserves the pad so that it is not claimed by another driver * - setups the iomux according to the configuration * setups a single pad in the iomuxer */ int mxc_iomux_v3_setup_pad(struct pad_desc *pad); Loading @@ -100,19 +98,6 @@ int mxc_iomux_v3_setup_pad(struct pad_desc *pad); */ int mxc_iomux_v3_setup_multiple_pads(struct pad_desc *pad_list, unsigned count); /* * releases a single pad: * - make it available for a future use by another driver * - DOES NOT reconfigure the IOMUX in its reset state */ void mxc_iomux_v3_release_pad(struct pad_desc *pad); /* * releases multiple pads * convenvient way to call the above function with tables */ void mxc_iomux_v3_release_multiple_pads(struct pad_desc *pad_list, int count); /* * Initialise the iomux controller */ Loading
arch/arm/plat-mxc/iomux-v3.c +2 −34 Original line number Diff line number Diff line Loading @@ -31,19 +31,11 @@ static void __iomem *base; static unsigned long iomux_v3_pad_alloc_map[0x200 / BITS_PER_LONG]; /* * setups a single pin: * - reserves the pin so that it is not claimed by another driver * - setups the iomux according to the configuration * setups a single pad in the iomuxer */ int mxc_iomux_v3_setup_pad(struct pad_desc *pad) { unsigned int pad_ofs = pad->pad_ctrl_ofs; if (test_and_set_bit(pad_ofs >> 2, iomux_v3_pad_alloc_map)) return -EBUSY; if (pad->mux_ctrl_ofs) __raw_writel(pad->mux_mode, base + pad->mux_ctrl_ofs); Loading @@ -66,37 +58,13 @@ int mxc_iomux_v3_setup_multiple_pads(struct pad_desc *pad_list, unsigned count) for (i = 0; i < count; i++) { ret = mxc_iomux_v3_setup_pad(p); if (ret) goto setup_error; return ret; p++; } return 0; setup_error: mxc_iomux_v3_release_multiple_pads(pad_list, i); return ret; } EXPORT_SYMBOL(mxc_iomux_v3_setup_multiple_pads); void mxc_iomux_v3_release_pad(struct pad_desc *pad) { unsigned int pad_ofs = pad->pad_ctrl_ofs; clear_bit(pad_ofs >> 2, iomux_v3_pad_alloc_map); } EXPORT_SYMBOL(mxc_iomux_v3_release_pad); void mxc_iomux_v3_release_multiple_pads(struct pad_desc *pad_list, int count) { struct pad_desc *p = pad_list; int i; for (i = 0; i < count; i++) { mxc_iomux_v3_release_pad(p); p++; } } EXPORT_SYMBOL(mxc_iomux_v3_release_multiple_pads); void mxc_iomux_v3_init(void __iomem *iomux_v3_base) { base = iomux_v3_base; Loading