Lines Matching defs:sun4ichip

388 	struct sun4i_pwm_chip *sun4ichip;
391 sun4ichip = devm_kzalloc(&pdev->dev, sizeof(*sun4ichip), GFP_KERNEL);
392 if (!sun4ichip)
395 sun4ichip->data = of_device_get_match_data(&pdev->dev);
396 if (!sun4ichip->data)
399 sun4ichip->base = devm_platform_ioremap_resource(pdev, 0);
400 if (IS_ERR(sun4ichip->base))
401 return PTR_ERR(sun4ichip->base);
414 sun4ichip->clk = devm_clk_get_optional(&pdev->dev, "mod");
415 if (IS_ERR(sun4ichip->clk))
416 return dev_err_probe(&pdev->dev, PTR_ERR(sun4ichip->clk),
419 if (!sun4ichip->clk) {
420 sun4ichip->clk = devm_clk_get(&pdev->dev, NULL);
421 if (IS_ERR(sun4ichip->clk))
422 return dev_err_probe(&pdev->dev, PTR_ERR(sun4ichip->clk),
426 sun4ichip->bus_clk = devm_clk_get_optional(&pdev->dev, "bus");
427 if (IS_ERR(sun4ichip->bus_clk))
428 return dev_err_probe(&pdev->dev, PTR_ERR(sun4ichip->bus_clk),
431 sun4ichip->rst = devm_reset_control_get_optional_shared(&pdev->dev, NULL);
432 if (IS_ERR(sun4ichip->rst))
433 return dev_err_probe(&pdev->dev, PTR_ERR(sun4ichip->rst),
437 ret = reset_control_deassert(sun4ichip->rst);
448 ret = clk_prepare_enable(sun4ichip->bus_clk);
455 sun4ichip->chip.dev = &pdev->dev;
456 sun4ichip->chip.ops = &sun4i_pwm_ops;
457 sun4ichip->chip.npwm = sun4ichip->data->npwm;
459 spin_lock_init(&sun4ichip->ctrl_lock);
461 ret = pwmchip_add(&sun4ichip->chip);
467 platform_set_drvdata(pdev, sun4ichip);
472 clk_disable_unprepare(sun4ichip->bus_clk);
474 reset_control_assert(sun4ichip->rst);
481 struct sun4i_pwm_chip *sun4ichip = platform_get_drvdata(pdev);
483 pwmchip_remove(&sun4ichip->chip);
485 clk_disable_unprepare(sun4ichip->bus_clk);
486 reset_control_assert(sun4ichip->rst);