Revert "pinctrl: rockchip: Add 32bit writing function for rk3288 gpio0 pinctrl"
This reverts commit 502980914b.
This is a superseded version, revert this to apply new patch set.
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
			
			
This commit is contained in:
		
							parent
							
								
									ec107f04b6
								
							
						
					
					
						commit
						cc325e4bb6
					
				| 
						 | 
					@ -92,19 +92,10 @@ static void rk3288_calc_drv_reg_and_bit(struct rockchip_pin_bank *bank,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rockchip_pin_bank rk3288_pin_banks[] = {
 | 
					static struct rockchip_pin_bank rk3288_pin_banks[] = {
 | 
				
			||||||
	PIN_BANK_IOMUX_DRV_PULL_FLAGS(0, 24, "gpio0",
 | 
						PIN_BANK_IOMUX_FLAGS(0, 24, "gpio0", IOMUX_SOURCE_PMU,
 | 
				
			||||||
				      IOMUX_SOURCE_PMU | IOMUX_WRITABLE_32BIT,
 | 
										     IOMUX_SOURCE_PMU,
 | 
				
			||||||
				      IOMUX_SOURCE_PMU | IOMUX_WRITABLE_32BIT,
 | 
										     IOMUX_SOURCE_PMU,
 | 
				
			||||||
				      IOMUX_SOURCE_PMU | IOMUX_WRITABLE_32BIT,
 | 
										     IOMUX_UNROUTED
 | 
				
			||||||
				      IOMUX_UNROUTED,
 | 
					 | 
				
			||||||
				      DRV_TYPE_WRITABLE_32BIT,
 | 
					 | 
				
			||||||
				      DRV_TYPE_WRITABLE_32BIT,
 | 
					 | 
				
			||||||
				      DRV_TYPE_WRITABLE_32BIT,
 | 
					 | 
				
			||||||
				      0,
 | 
					 | 
				
			||||||
				      PULL_TYPE_WRITABLE_32BIT,
 | 
					 | 
				
			||||||
				      PULL_TYPE_WRITABLE_32BIT,
 | 
					 | 
				
			||||||
				      PULL_TYPE_WRITABLE_32BIT,
 | 
					 | 
				
			||||||
				      0
 | 
					 | 
				
			||||||
			    ),
 | 
								    ),
 | 
				
			||||||
	PIN_BANK_IOMUX_FLAGS(1, 32, "gpio1", IOMUX_UNROUTED,
 | 
						PIN_BANK_IOMUX_FLAGS(1, 32, "gpio1", IOMUX_UNROUTED,
 | 
				
			||||||
					     IOMUX_UNROUTED,
 | 
										     IOMUX_UNROUTED,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -228,13 +228,7 @@ static int rockchip_set_mux(struct rockchip_pin_bank *bank, int pin, int mux)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (mux_type & IOMUX_WRITABLE_32BIT) {
 | 
						data = (mask << (bit + 16));
 | 
				
			||||||
		regmap_read(regmap, reg, &data);
 | 
					 | 
				
			||||||
		data &= ~(mask << bit);
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		data = (mask << (bit + 16));
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	data |= (mux & mask) << bit;
 | 
						data |= (mux & mask) << bit;
 | 
				
			||||||
	ret = regmap_write(regmap, reg, data);
 | 
						ret = regmap_write(regmap, reg, data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -258,8 +252,7 @@ static int rockchip_set_drive_perpin(struct rockchip_pin_bank *bank,
 | 
				
			||||||
	int reg, ret, i;
 | 
						int reg, ret, i;
 | 
				
			||||||
	u32 data, rmask_bits, temp;
 | 
						u32 data, rmask_bits, temp;
 | 
				
			||||||
	u8 bit;
 | 
						u8 bit;
 | 
				
			||||||
	/* Where need to clean the special mask for rockchip_perpin_drv_list */
 | 
						int drv_type = bank->drv[pin_num / 8].drv_type;
 | 
				
			||||||
	int drv_type = bank->drv[pin_num / 8].drv_type & (~DRV_TYPE_IO_MASK);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	debug("setting drive of GPIO%d-%d to %d\n", bank->bank_num,
 | 
						debug("setting drive of GPIO%d-%d to %d\n", bank->bank_num,
 | 
				
			||||||
	      pin_num, strength);
 | 
						      pin_num, strength);
 | 
				
			||||||
| 
						 | 
					@ -331,15 +324,10 @@ static int rockchip_set_drive_perpin(struct rockchip_pin_bank *bank,
 | 
				
			||||||
		return -EINVAL;
 | 
							return -EINVAL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (bank->drv[pin_num / 8].drv_type & DRV_TYPE_WRITABLE_32BIT) {
 | 
						/* enable the write to the equivalent lower bits */
 | 
				
			||||||
		regmap_read(regmap, reg, &data);
 | 
						data = ((1 << rmask_bits) - 1) << (bit + 16);
 | 
				
			||||||
		data &= ~(((1 << rmask_bits) - 1) << bit);
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		/* enable the write to the equivalent lower bits */
 | 
					 | 
				
			||||||
		data = ((1 << rmask_bits) - 1) << (bit + 16);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	data |= (ret << bit);
 | 
						data |= (ret << bit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ret = regmap_write(regmap, reg, data);
 | 
						ret = regmap_write(regmap, reg, data);
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -387,11 +375,7 @@ static int rockchip_set_pull(struct rockchip_pin_bank *bank,
 | 
				
			||||||
	case RK3288:
 | 
						case RK3288:
 | 
				
			||||||
	case RK3368:
 | 
						case RK3368:
 | 
				
			||||||
	case RK3399:
 | 
						case RK3399:
 | 
				
			||||||
		/*
 | 
							pull_type = bank->pull_type[pin_num / 8];
 | 
				
			||||||
		 * Where need to clean the special mask for
 | 
					 | 
				
			||||||
		 * rockchip_pull_list.
 | 
					 | 
				
			||||||
		 */
 | 
					 | 
				
			||||||
		pull_type = bank->pull_type[pin_num / 8] & (~PULL_TYPE_IO_MASK);
 | 
					 | 
				
			||||||
		ret = -EINVAL;
 | 
							ret = -EINVAL;
 | 
				
			||||||
		for (i = 0; i < ARRAY_SIZE(rockchip_pull_list[pull_type]);
 | 
							for (i = 0; i < ARRAY_SIZE(rockchip_pull_list[pull_type]);
 | 
				
			||||||
			i++) {
 | 
								i++) {
 | 
				
			||||||
| 
						 | 
					@ -406,15 +390,10 @@ static int rockchip_set_pull(struct rockchip_pin_bank *bank,
 | 
				
			||||||
			return ret;
 | 
								return ret;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (bank->pull_type[pin_num / 8] & PULL_TYPE_WRITABLE_32BIT) {
 | 
							/* enable the write to the equivalent lower bits */
 | 
				
			||||||
			regmap_read(regmap, reg, &data);
 | 
							data = ((1 << ROCKCHIP_PULL_BITS_PER_PIN) - 1) << (bit + 16);
 | 
				
			||||||
			data &= ~(((1 << ROCKCHIP_PULL_BITS_PER_PIN) - 1) << bit);
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			/* enable the write to the equivalent lower bits */
 | 
					 | 
				
			||||||
			data = ((1 << ROCKCHIP_PULL_BITS_PER_PIN) - 1) << (bit + 16);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		data |= (ret << bit);
 | 
							data |= (ret << bit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ret = regmap_write(regmap, reg, data);
 | 
							ret = regmap_write(regmap, reg, data);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,6 @@ enum rockchip_pinctrl_type {
 | 
				
			||||||
#define IOMUX_SOURCE_PMU	BIT(2)
 | 
					#define IOMUX_SOURCE_PMU	BIT(2)
 | 
				
			||||||
#define IOMUX_UNROUTED		BIT(3)
 | 
					#define IOMUX_UNROUTED		BIT(3)
 | 
				
			||||||
#define IOMUX_WIDTH_3BIT	BIT(4)
 | 
					#define IOMUX_WIDTH_3BIT	BIT(4)
 | 
				
			||||||
#define IOMUX_WRITABLE_32BIT	BIT(5)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Defined some common pins constants
 | 
					 * Defined some common pins constants
 | 
				
			||||||
| 
						 | 
					@ -50,9 +49,6 @@ struct rockchip_iomux {
 | 
				
			||||||
	int				offset;
 | 
						int				offset;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DRV_TYPE_IO_MASK		GENMASK(31, 16)
 | 
					 | 
				
			||||||
#define DRV_TYPE_WRITABLE_32BIT		BIT(31)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * enum type index corresponding to rockchip_perpin_drv_list arrays index.
 | 
					 * enum type index corresponding to rockchip_perpin_drv_list arrays index.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					@ -65,9 +61,6 @@ enum rockchip_pin_drv_type {
 | 
				
			||||||
	DRV_TYPE_MAX
 | 
						DRV_TYPE_MAX
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PULL_TYPE_IO_MASK		GENMASK(31, 16)
 | 
					 | 
				
			||||||
#define PULL_TYPE_WRITABLE_32BIT	BIT(31)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * enum type index corresponding to rockchip_pull_list arrays index.
 | 
					 * enum type index corresponding to rockchip_pull_list arrays index.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					@ -207,32 +200,6 @@ struct rockchip_pin_bank {
 | 
				
			||||||
		},							\
 | 
							},							\
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PIN_BANK_IOMUX_DRV_PULL_FLAGS(id, pins, label, iom0, iom1,	\
 | 
					 | 
				
			||||||
				      iom2, iom3, drv0, drv1, drv2,	\
 | 
					 | 
				
			||||||
				      drv3, pull0, pull1, pull2,	\
 | 
					 | 
				
			||||||
				      pull3)				\
 | 
					 | 
				
			||||||
	{								\
 | 
					 | 
				
			||||||
		.bank_num	= id,					\
 | 
					 | 
				
			||||||
		.nr_pins	= pins,					\
 | 
					 | 
				
			||||||
		.name		= label,				\
 | 
					 | 
				
			||||||
		.iomux		= {					\
 | 
					 | 
				
			||||||
			{ .type = iom0, .offset = -1 },			\
 | 
					 | 
				
			||||||
			{ .type = iom1, .offset = -1 },			\
 | 
					 | 
				
			||||||
			{ .type = iom2, .offset = -1 },			\
 | 
					 | 
				
			||||||
			{ .type = iom3, .offset = -1 },			\
 | 
					 | 
				
			||||||
		},							\
 | 
					 | 
				
			||||||
		.drv		= {					\
 | 
					 | 
				
			||||||
			{ .drv_type = drv0, .offset = -1 },		\
 | 
					 | 
				
			||||||
			{ .drv_type = drv1, .offset = -1 },		\
 | 
					 | 
				
			||||||
			{ .drv_type = drv2, .offset = -1 },		\
 | 
					 | 
				
			||||||
			{ .drv_type = drv3, .offset = -1 },		\
 | 
					 | 
				
			||||||
		},							\
 | 
					 | 
				
			||||||
		.pull_type[0] = pull0,					\
 | 
					 | 
				
			||||||
		.pull_type[1] = pull1,					\
 | 
					 | 
				
			||||||
		.pull_type[2] = pull2,					\
 | 
					 | 
				
			||||||
		.pull_type[3] = pull3,					\
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define PIN_BANK_IOMUX_FLAGS_DRV_FLAGS_OFFSET_PULL_FLAGS(id, pins,	\
 | 
					#define PIN_BANK_IOMUX_FLAGS_DRV_FLAGS_OFFSET_PULL_FLAGS(id, pins,	\
 | 
				
			||||||
					      label, iom0, iom1, iom2,  \
 | 
										      label, iom0, iom1, iom2,  \
 | 
				
			||||||
					      iom3, drv0, drv1, drv2,   \
 | 
										      iom3, drv0, drv1, drv2,   \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue