Lines Matching refs:amldev

248 	struct aml_serdev *amldev = serdev_device_get_drvdata(hu->serdev);  in aml_download_firmware()  local
288 + amldev->aml_dev_data->iccm_offset; in aml_download_firmware()
289 iccm_len = fw_len->iccm_len - amldev->aml_dev_data->iccm_offset; in aml_download_firmware()
291 amldev->aml_dev_data->iccm_offset); in aml_download_firmware()
301 amldev->aml_dev_data->dccm_offset); in aml_download_firmware()
448 static int aml_parse_dt(struct aml_serdev *amldev) in aml_parse_dt() argument
450 struct device *pdev = amldev->dev; in aml_parse_dt()
452 amldev->bt_en_gpio = devm_gpiod_get(pdev, "enable", in aml_parse_dt()
454 if (IS_ERR(amldev->bt_en_gpio)) { in aml_parse_dt()
456 return PTR_ERR(amldev->bt_en_gpio); in aml_parse_dt()
460 &amldev->firmware_name)) { in aml_parse_dt()
465 amldev->bt_supply = devm_regulator_get(pdev, "vddio"); in aml_parse_dt()
466 if (IS_ERR(amldev->bt_supply)) { in aml_parse_dt()
468 return PTR_ERR(amldev->bt_supply); in aml_parse_dt()
471 amldev->lpo_clk = devm_clk_get(pdev, NULL); in aml_parse_dt()
472 if (IS_ERR(amldev->lpo_clk)) { in aml_parse_dt()
474 return PTR_ERR(amldev->lpo_clk); in aml_parse_dt()
480 static int aml_power_on(struct aml_serdev *amldev) in aml_power_on() argument
484 err = regulator_enable(amldev->bt_supply); in aml_power_on()
486 dev_err(amldev->dev, "Failed to enable regulator: (%d)", err); in aml_power_on()
490 err = clk_prepare_enable(amldev->lpo_clk); in aml_power_on()
492 dev_err(amldev->dev, "Failed to enable lpo clock: (%d)", err); in aml_power_on()
496 gpiod_set_value_cansleep(amldev->bt_en_gpio, 1); in aml_power_on()
503 static int aml_power_off(struct aml_serdev *amldev) in aml_power_off() argument
505 gpiod_set_value_cansleep(amldev->bt_en_gpio, 0); in aml_power_off()
507 clk_disable_unprepare(amldev->lpo_clk); in aml_power_off()
509 regulator_disable(amldev->bt_supply); in aml_power_off()
531 struct aml_serdev *amldev = serdev_device_get_drvdata(hu->serdev); in aml_open() local
535 err = aml_parse_dt(amldev); in aml_open()
557 struct aml_serdev *amldev = serdev_device_get_drvdata(hu->serdev); in aml_close() local
566 return aml_power_off(amldev); in aml_close()
580 struct aml_serdev *amldev = serdev_device_get_drvdata(hu->serdev); in aml_setup() local
581 struct hci_dev *hdev = amldev->serdev_hu.hdev; in aml_setup()
587 err = aml_power_on(amldev); in aml_setup()
591 err = aml_set_baudrate(hu, amldev->serdev_hu.proto->oper_speed); in aml_setup()
595 err = aml_download_firmware(hdev, amldev->firmware_name); in aml_setup()
599 err = aml_config_rf(hdev, amldev->aml_dev_data->is_coex); in aml_setup()
682 struct aml_serdev *amldev = dev_get_drvdata(dev); in aml_device_driver_shutdown() local
684 aml_power_off(amldev); in aml_device_driver_shutdown()
689 struct aml_serdev *amldev; in aml_serdev_probe() local
692 amldev = devm_kzalloc(&serdev->dev, sizeof(*amldev), GFP_KERNEL); in aml_serdev_probe()
693 if (!amldev) in aml_serdev_probe()
696 amldev->serdev_hu.serdev = serdev; in aml_serdev_probe()
697 amldev->dev = &serdev->dev; in aml_serdev_probe()
698 serdev_device_set_drvdata(serdev, amldev); in aml_serdev_probe()
700 err = hci_uart_register_device(&amldev->serdev_hu, &aml_hci_proto); in aml_serdev_probe()
702 return dev_err_probe(amldev->dev, err, in aml_serdev_probe()
705 amldev->aml_dev_data = device_get_match_data(&serdev->dev); in aml_serdev_probe()
712 struct aml_serdev *amldev = serdev_device_get_drvdata(serdev); in aml_serdev_remove() local
714 hci_uart_unregister_device(&amldev->serdev_hu); in aml_serdev_remove()