Commit cd025b1c authored by Andy Shevchenko's avatar Andy Shevchenko
Browse files

pinctrl: intel: Always use gpp_num_padown_regs in the main driver



For the size-based communities, always use gpp_num_padown_regs,
which is now provided explicitly via INTEL_COMMUNITY_SIZE() macro.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
parent df8467df
Loading
Loading
Loading
Loading
+1 −8
Original line number Original line Diff line number Diff line
@@ -1451,14 +1451,7 @@ static int intel_pinctrl_add_padgroups_by_size(struct intel_pinctrl *pctrl,
		gpps[i].gpio_base = gpps[i].base;
		gpps[i].gpio_base = gpps[i].base;
		gpps[i].padown_num = padown_num;
		gpps[i].padown_num = padown_num;


		/*
		 * In older hardware the number of padown registers per
		 * group is fixed regardless of the group size.
		 */
		if (community->gpp_num_padown_regs)
		padown_num += community->gpp_num_padown_regs;
		padown_num += community->gpp_num_padown_regs;
		else
			padown_num += DIV_ROUND_UP(gpps[i].size * 4, 32);
	}
	}


	community->ngpps = ngpps;
	community->ngpps = ngpps;
+7 −6
Original line number Original line Diff line number Diff line
@@ -96,8 +96,7 @@ enum {
 * @gpp_size: Maximum number of pads in each group, such as PADCFGLOCK,
 * @gpp_size: Maximum number of pads in each group, such as PADCFGLOCK,
 *            HOSTSW_OWN, GPI_IS, GPI_IE. Used when @gpps is %NULL.
 *            HOSTSW_OWN, GPI_IS, GPI_IE. Used when @gpps is %NULL.
 * @gpp_num_padown_regs: Number of pad registers each pad group consumes at
 * @gpp_num_padown_regs: Number of pad registers each pad group consumes at
 *			 minimum. Use %0 if the number of registers can be
 *			 minimum. Used when @gpps is %NULL.
 *			 determined by the size of the group.
 * @gpps: Pad groups if the controller has variable size pad groups
 * @gpps: Pad groups if the controller has variable size pad groups
 * @ngpps: Number of pad groups in this community
 * @ngpps: Number of pad groups in this community
 * @pad_map: Optional non-linear mapping of the pads
 * @pad_map: Optional non-linear mapping of the pads
@@ -106,11 +105,13 @@ enum {
 * @regs: Community specific common registers (reserved for core driver)
 * @regs: Community specific common registers (reserved for core driver)
 * @pad_regs: Community specific pad registers (reserved for core driver)
 * @pad_regs: Community specific pad registers (reserved for core driver)
 *
 *
 * In some of Intel GPIO host controllers this driver supports each pad group
 * In older Intel GPIO host controllers, this driver supports, each pad group
 * is of equal size (except the last one). In that case the driver can just
 * is of equal size (except the last one). In that case the driver can just
 * fill in @gpp_size field and let the core driver to handle the rest. If
 * fill in @gpp_size and @gpp_num_padown_regs fields and let the core driver
 * the controller has pad groups of variable size the client driver can
 * to handle the rest.
 * pass custom @gpps and @ngpps instead.
 *
 * In newer Intel GPIO host controllers each pad group is of variable size,
 * so the client driver can pass custom @gpps and @ngpps instead.
 */
 */
struct intel_community {
struct intel_community {
	unsigned int barno;
	unsigned int barno;