| 
					
				 | 
			
			
				@@ -456,3 +456,112 @@ static struct regulator_init_data wm8350_ldo4_data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		.always_on = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	int regulator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	struct regulator_init_data *initdata; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} wm1190_regulators[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ WM8350_DCDC_1, &wm8350_dcdc1_data }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ WM8350_DCDC_3, &wm8350_dcdc3_data }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ WM8350_DCDC_4, &wm8350_dcdc4_data }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ WM8350_DCDC_6, &smdk6410_vddarm }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ WM8350_LDO_1, &smdk6410_vddalive }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ WM8350_LDO_2, &smdk6410_vddotg }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ WM8350_LDO_3, &smdk6410_vddlcd }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ WM8350_LDO_4, &wm8350_ldo4_data }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static int __init smdk6410_wm8350_init(struct wm8350 *wm8350) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	int i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/* Configure the IRQ line */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	s3c_gpio_setpull(S3C64XX_GPN(12), S3C_GPIO_PULL_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/* Instantiate the regulators */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for (i = 0; i < ARRAY_SIZE(wm1190_regulators); i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		wm8350_register_regulator(wm8350, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					  wm1190_regulators[i].regulator, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					  wm1190_regulators[i].initdata); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct wm8350_platform_data __initdata smdk6410_wm8350_pdata = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.init = smdk6410_wm8350_init, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.irq_high = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.irq_base = IRQ_BOARD_START, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#ifdef CONFIG_SMDK6410_WM1192_EV1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct gpio_led wm1192_pmic_leds[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.name = "PMIC:red:power", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.gpio = GPIO_BOARD_START + 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.default_state = LEDS_GPIO_DEFSTATE_ON, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct gpio_led_platform_data wm1192_pmic_led = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_leds = ARRAY_SIZE(wm1192_pmic_leds), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.leds = wm1192_pmic_leds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct platform_device wm1192_pmic_led_dev = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name          = "leds-gpio", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.id            = -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.platform_data = &wm1192_pmic_led, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static int wm1192_pre_init(struct wm831x *wm831x) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	int ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/* Configure the IRQ line */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	s3c_gpio_setpull(S3C64XX_GPN(12), S3C_GPIO_PULL_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	ret = platform_device_register(&wm1192_pmic_led_dev); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (ret != 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		dev_err(wm831x->dev, "Failed to add PMIC LED: %d\n", ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct wm831x_backlight_pdata wm1192_backlight_pdata = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.isink = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.max_uA = 27554, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct regulator_init_data wm1192_dcdc3 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.constraints = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.name = "PVDD_MEM+PVDD_GPS", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.always_on = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct regulator_consumer_supply wm1192_ldo1_consumers[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	REGULATOR_SUPPLY("DVDD", "0-001b"),   /* WM8580 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct regulator_init_data wm1192_ldo1 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.constraints = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.name = "PVDD_LCD+PVDD_EXT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.always_on = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.consumer_supplies = wm1192_ldo1_consumers, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_consumer_supplies = ARRAY_SIZE(wm1192_ldo1_consumers), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct wm831x_status_pdata wm1192_led7_pdata = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name = "LED7:green:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct wm831x_status_pdata wm1192_led8_pdata = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name = "LED8:green:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct wm831x_pdata smdk6410_wm1192_pdata = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.pre_init = wm1192_pre_init, 
			 |