Lines Matching refs:rk312x

1324 	struct rk312x_codec_priv *rk312x = rk312x_priv;  in rk312x_set_dai_sysclk()  local
1326 if (!rk312x) { in rk312x_set_dai_sysclk()
1331 rk312x->stereo_sysclk = freq; in rk312x_set_dai_sysclk()
1428 struct rk312x_codec_priv *rk312x = rk312x_priv; in rk312x_hw_params() local
1433 if (!rk312x) { in rk312x_hw_params()
1440 div = (((rk312x->stereo_sysclk / 4) / rate) / 2); in rk312x_hw_params()
1442 if ((rk312x->stereo_sysclk % (4 * rate * 2) > 0) || in rk312x_hw_params()
1471 __func__, rk312x->stereo_sysclk, rate, div); in rk312x_hw_params()
1512 rk312x->rate = rate; in rk312x_hw_params()
1790 struct rk312x_codec_priv *rk312x = rk312x_priv; in rk312x_startup() local
1798 if (!rk312x) { in rk312x_startup()
1802 is_codec_playback_running = rk312x->playback_active > 0; in rk312x_startup()
1803 is_codec_capture_running = rk312x->capture_active > 0; in rk312x_startup()
1806 rk312x->playback_active++; in rk312x_startup()
1808 rk312x->capture_active++; in rk312x_startup()
1811 if (rk312x->playback_active > 0) in rk312x_startup()
1820 if (rk312x->capture_active > 0 && !is_codec_capture_running) { in rk312x_startup()
1837 struct rk312x_codec_priv *rk312x = rk312x_priv; in rk312x_shutdown() local
1846 if (!rk312x) { in rk312x_shutdown()
1850 is_codec_playback_running = rk312x->playback_active > 0; in rk312x_shutdown()
1851 is_codec_capture_running = rk312x->capture_active > 0; in rk312x_shutdown()
1854 rk312x->playback_active--; in rk312x_shutdown()
1856 rk312x->capture_active--; in rk312x_shutdown()
1859 if (rk312x->playback_active <= 0) { in rk312x_shutdown()
1867 if (rk312x->capture_active <= 0) { in rk312x_shutdown()
2012 struct rk312x_codec_priv *rk312x = in gpio_store() local
2020 if (rk312x->spk_ctl_gpio) { in gpio_store()
2021 gpiod_set_value(rk312x->spk_ctl_gpio, 0); in gpio_store()
2025 if (rk312x->hp_ctl_gpio) { in gpio_store()
2026 gpiod_set_value(rk312x->hp_ctl_gpio, 0); in gpio_store()
2031 if (rk312x->spk_ctl_gpio) { in gpio_store()
2032 gpiod_set_value(rk312x->spk_ctl_gpio, 1); in gpio_store()
2036 if (rk312x->hp_ctl_gpio) { in gpio_store()
2037 gpiod_set_value(rk312x->hp_ctl_gpio, 1); in gpio_store()
2281 struct rk312x_codec_priv *rk312x; in rk312x_platform_probe() local
2285 rk312x = devm_kzalloc(&pdev->dev, sizeof(*rk312x), GFP_KERNEL); in rk312x_platform_probe()
2286 if (!rk312x) { in rk312x_platform_probe()
2291 rk312x_priv = rk312x; in rk312x_platform_probe()
2292 platform_set_drvdata(pdev, rk312x); in rk312x_platform_probe()
2293 rk312x->dev = &pdev->dev; in rk312x_platform_probe()
2296 rk312x->spk_hp_switch_gpio = of_get_named_gpio_flags(rk312x_np, in rk312x_platform_probe()
2297 "spk_hp_switch_gpio", 0, &rk312x->spk_io); in rk312x_platform_probe()
2298 rk312x->spk_io = !rk312x->spk_io; in rk312x_platform_probe()
2299 if (!gpio_is_valid(rk312x->spk_hp_switch_gpio)) { in rk312x_platform_probe()
2301 rk312x->spk_hp_switch_gpio); in rk312x_platform_probe()
2302 rk312x->spk_hp_switch_gpio = INVALID_GPIO; in rk312x_platform_probe()
2307 rk312x->spk_hp_switch_gpio, rk312x->spk_io); in rk312x_platform_probe()
2309 if(rk312x->spk_hp_switch_gpio != INVALID_GPIO) { in rk312x_platform_probe()
2310 ret = devm_gpio_request(&pdev->dev, rk312x->spk_hp_switch_gpio, "spk_hp_switch"); in rk312x_platform_probe()
2314 rk312x->spk_hp_switch_gpio = INVALID_GPIO; in rk312x_platform_probe()
2318 rk312x->edev = devm_extcon_dev_allocate(&pdev->dev, headset_extcon_cable); in rk312x_platform_probe()
2319 if (IS_ERR(rk312x->edev)) { in rk312x_platform_probe()
2324 ret = devm_extcon_dev_register(&pdev->dev, rk312x->edev); in rk312x_platform_probe()
2330 rk312x->hp_ctl_gpio = devm_gpiod_get_optional(&pdev->dev, "hp-ctl", in rk312x_platform_probe()
2332 if (!IS_ERR_OR_NULL(rk312x->hp_ctl_gpio)) { in rk312x_platform_probe()
2334 desc_to_gpio(rk312x->hp_ctl_gpio)); in rk312x_platform_probe()
2337 rk312x->spk_ctl_gpio = devm_gpiod_get_optional(&pdev->dev, "spk-ctl", in rk312x_platform_probe()
2339 if (!IS_ERR_OR_NULL(rk312x->spk_ctl_gpio)) { in rk312x_platform_probe()
2341 desc_to_gpio(rk312x->spk_ctl_gpio)); in rk312x_platform_probe()
2345 &rk312x->spk_mute_delay); in rk312x_platform_probe()
2349 rk312x->spk_mute_delay = 0; in rk312x_platform_probe()
2353 &rk312x->hp_mute_delay); in rk312x_platform_probe()
2357 rk312x->hp_mute_delay = 0; in rk312x_platform_probe()
2359 DBG("spk mute delay %dms --- hp mute delay %dms\n",rk312x->spk_mute_delay,rk312x->hp_mute_delay); in rk312x_platform_probe()
2362 &rk312x->rk312x_for_mid); in rk312x_platform_probe()
2366 rk312x->rk312x_for_mid = 1; in rk312x_platform_probe()
2369 &rk312x->is_rk3128); in rk312x_platform_probe()
2373 rk312x->is_rk3128 = 0; in rk312x_platform_probe()
2376 &rk312x->spk_volume); in rk312x_platform_probe()
2380 rk312x->spk_volume = 25; in rk312x_platform_probe()
2383 &rk312x->hp_volume); in rk312x_platform_probe()
2387 rk312x->hp_volume = 25; in rk312x_platform_probe()
2390 &rk312x->capture_volume); in rk312x_platform_probe()
2394 rk312x->capture_volume = 26; in rk312x_platform_probe()
2396 ret = of_property_read_u32(rk312x_np, "gpio_debug", &rk312x->gpio_debug); in rk312x_platform_probe()
2399 rk312x->gpio_debug = 0; in rk312x_platform_probe()
2401 ret = of_property_read_u32(rk312x_np, "codec_hp_det", &rk312x->codec_hp_det); in rk312x_platform_probe()
2405 rk312x->codec_hp_det = 0; in rk312x_platform_probe()
2409 rk312x->regbase = devm_ioremap_resource(&pdev->dev, res); in rk312x_platform_probe()
2410 if (IS_ERR(rk312x->regbase)) in rk312x_platform_probe()
2411 return PTR_ERR(rk312x->regbase); in rk312x_platform_probe()
2412 rk312x->regmap = devm_regmap_init_mmio(&pdev->dev, rk312x->regbase, in rk312x_platform_probe()
2414 if (IS_ERR(rk312x->regmap)) in rk312x_platform_probe()
2415 return PTR_ERR(rk312x->regmap); in rk312x_platform_probe()
2417 rk312x->grf = syscon_regmap_lookup_by_phandle(rk312x_np, "rockchip,grf"); in rk312x_platform_probe()
2418 if (IS_ERR(rk312x->grf)) { in rk312x_platform_probe()
2420 return PTR_ERR(rk312x->grf); in rk312x_platform_probe()
2422 ret = regmap_write(rk312x->grf, GRF_SOC_CON0, GRF_ACODEC_SEL); in rk312x_platform_probe()
2428 if (rk312x->codec_hp_det) in rk312x_platform_probe()
2429 rk312x->irq = platform_get_irq(pdev, 0); in rk312x_platform_probe()
2431 rk312x->pclk = devm_clk_get(&pdev->dev, "g_pclk_acodec"); in rk312x_platform_probe()
2432 if (IS_ERR(rk312x->pclk)) { in rk312x_platform_probe()
2437 rk312x->mclk = devm_clk_get(&pdev->dev, "i2s_clk"); in rk312x_platform_probe()
2438 if (IS_ERR(rk312x->mclk)) { in rk312x_platform_probe()
2444 clk_prepare_enable(rk312x->mclk); in rk312x_platform_probe()
2445 clk_set_rate(rk312x->mclk, 11289600); in rk312x_platform_probe()