struct regulator_desc desc;\r
int pwm_id;\r
struct regulator_dev *regulator;\r
- struct pwm_platform_data *pdata;\r
+ struct pwm_platform_data *pdata;\r
};\r
\r
\r
#define pwm_read_reg(id, addr) __raw_readl(addr+(RK30_PWM01_BASE+(id>>1)*0x20000+id*0x10))\r
#elif defined(CONFIG_ARCH_RK29)\r
#define pwm_write_reg(id, addr, val) __raw_writel(val, addr+(RK29_PWM_BASE+id*0x10))\r
-#define pwm_read_reg(id, addr) __raw_readl(addr+(RK29_PWM_BASE+id*0x10)) \r
+#define pwm_read_reg(id, addr) __raw_readl(addr+(RK29_PWM_BASE+id*0x10)) \r
#elif defined(CONFIG_ARCH_RK2928)\r
#define pwm_write_reg(id, addr, val) __raw_writel(val, addr+(RK2928_PWM_BASE+id*0x10))\r
#define pwm_read_reg(id, addr) __raw_readl(addr+(RK2928_PWM_BASE+id*0x10))\r
u32 divh,divTotal;\r
int id = pdata->pwm_id;\r
unsigned long clkrate;\r
- /*\r
- if ( id >2 || id <0 )\r
- {\r
+\r
+#if defined(CONFIG_ARCH_RK29) || defined(CONFIG_ARCH_RK2928)\r
+ clkrate = clk_get_rate(pwm_clk[0]);\r
+#elif defined(CONFIG_ARCH_RK30) || defined(CONFIG_ARCH_RK31)\r
+ if (id == 0 || id == 1) {\r
+ clkrate = clk_get_rate(pwm_clk[0]);\r
+ } else if (id== 2 || id == 3) {\r
+ clkrate = clk_get_rate(pwm_clk[1]);\r
+ } else {\r
printk("%s:pwm id error,id=%d\n",__func__,id);\r
return -1;\r
}\r
-\r
- if((id==0) || (id == 1))\r
- */\r
- clkrate = clk_get_rate(pwm_clk[0]);\r
+#endif\r
\r
DBG("%s:id=%d,rate=%d,clkrate=%d\n",__func__,id,rate,clkrate); \r
- \r
+\r
if(rate == 0)\r
{\r
// iomux pwm to gpio\r
int pwm_id = pdata->pwm_id;\r
int id = pdev->id;\r
int ret ;\r
- char gpio_name[20];\r
-\r
+ char gpio_name[20];\r
+ \r
if (!pdata)\r
return -ENODEV;\r
\r
pdata->suspend_voltage = pdata->max_uV;\r
\r
dcdc = kzalloc(sizeof(struct rk_pwm_dcdc), GFP_KERNEL);\r
- if (dcdc == NULL) {
- dev_err(&pdev->dev, "Unable to allocate private data\n");
- return -ENOMEM;
+ if (dcdc == NULL) {\r
+ dev_err(&pdev->dev, "Unable to allocate private data\n");\r
+ return -ENOMEM;\r
}\r
\r
snprintf(dcdc->name, sizeof(dcdc->name), "PWM_DCDC%d", id + 1);\r
- dcdc->desc.name = dcdc->name;
- dcdc->desc.id = id;
- dcdc->desc.type = REGULATOR_VOLTAGE;
+ dcdc->desc.name = dcdc->name;\r
+ dcdc->desc.id = id;\r
+ dcdc->desc.type = REGULATOR_VOLTAGE;\r
dcdc->desc.n_voltages = ARRAY_SIZE(pwm_voltage_map);\r
dcdc->desc.ops = &pwm_voltage_ops;\r
dcdc->desc.owner = THIS_MODULE;\r
printk("%s:n_voltages=%d\n",__func__,dcdc->desc.n_voltages);\r
dcdc->regulator = regulator_register(&dcdc->desc, &pdev->dev,\r
pdata->init_data, dcdc);\r
- if (IS_ERR(dcdc->regulator)) {
- ret = PTR_ERR(dcdc->regulator);
+ if (IS_ERR(dcdc->regulator)) {\r
+ ret = PTR_ERR(dcdc->regulator);\r
dev_err(&pdev->dev, "Failed to register PWM_DCDC%d: %d\n",\r
- id + 1, ret);
- goto err;
+ id + 1, ret);\r
+ goto err;\r
}\r
\r
snprintf(gpio_name, sizeof(gpio_name), "PWM_DCDC%d", id + 1);\r
#elif defined(CONFIG_ARCH_RK2928)\r
pwm_clk[0] = clk_get(NULL, "pwm01");\r
if (IS_ERR(pwm_clk[0])) {\r
- printk("pwm_clk get error %p\n", pwm_clk[0]); \r
+ printk("pwm_clk get error %p\n", pwm_clk[0]);\r
return -EINVAL;\r
}\r
clk_enable(pwm_clk[0]);\r