Lines Matching refs:serdev
117 struct serdev_device *serdev; member
375 struct serdev_device *serdev = bdev->serdev; in btmtkuart_tx_work() local
388 len = serdev_device_write_buf(serdev, skb->data, in btmtkuart_tx_work()
523 static int btmtkuart_receive_buf(struct serdev_device *serdev, const u8 *data, in btmtkuart_receive_buf() argument
526 struct btmtkuart_dev *bdev = serdev_device_get_drvdata(serdev); in btmtkuart_receive_buf()
538 static void btmtkuart_write_wakeup(struct serdev_device *serdev) in btmtkuart_write_wakeup() argument
540 struct btmtkuart_dev *bdev = serdev_device_get_drvdata(serdev); in btmtkuart_write_wakeup()
556 err = serdev_device_open(bdev->serdev); in btmtkuart_open()
559 dev_name(&bdev->serdev->dev)); in btmtkuart_open()
565 err = serdev_device_set_baudrate(bdev->serdev, in btmtkuart_open()
568 err = serdev_device_set_baudrate(bdev->serdev, in btmtkuart_open()
573 dev_name(&bdev->serdev->dev)); in btmtkuart_open()
577 serdev_device_set_flow_control(bdev->serdev, false); in btmtkuart_open()
583 dev = &bdev->serdev->dev; in btmtkuart_open()
602 serdev_device_close(bdev->serdev); in btmtkuart_open()
610 struct device *dev = &bdev->serdev->dev; in btmtkuart_close()
617 serdev_device_close(bdev->serdev); in btmtkuart_close()
627 serdev_device_write_flush(bdev->serdev); in btmtkuart_flush()
687 err = serdev_device_set_baudrate(bdev->serdev, in btmtkuart_change_baudrate()
695 serdev_device_set_flow_control(bdev->serdev, false); in btmtkuart_change_baudrate()
699 err = serdev_device_write_buf(bdev->serdev, ¶m, sizeof(param)); in btmtkuart_change_baudrate()
703 serdev_device_wait_until_sent(bdev->serdev, 0); in btmtkuart_change_baudrate()
898 static int btmtkuart_parse_dt(struct serdev_device *serdev) in btmtkuart_parse_dt() argument
900 struct btmtkuart_dev *bdev = serdev_device_get_drvdata(serdev); in btmtkuart_parse_dt()
901 struct device_node *node = serdev->dev.of_node; in btmtkuart_parse_dt()
910 bdev->vcc = devm_regulator_get(&serdev->dev, "vcc"); in btmtkuart_parse_dt()
916 bdev->osc = devm_clk_get_optional(&serdev->dev, "osc"); in btmtkuart_parse_dt()
922 bdev->boot = devm_gpiod_get_optional(&serdev->dev, "boot", in btmtkuart_parse_dt()
929 bdev->pinctrl = devm_pinctrl_get(&serdev->dev); in btmtkuart_parse_dt()
939 dev_err(&serdev->dev, in btmtkuart_parse_dt()
951 bdev->reset = devm_gpiod_get_optional(&serdev->dev, "reset", in btmtkuart_parse_dt()
958 bdev->clk = devm_clk_get(&serdev->dev, "ref"); in btmtkuart_parse_dt()
966 static int btmtkuart_probe(struct serdev_device *serdev) in btmtkuart_probe() argument
972 bdev = devm_kzalloc(&serdev->dev, sizeof(*bdev), GFP_KERNEL); in btmtkuart_probe()
976 bdev->data = of_device_get_match_data(&serdev->dev); in btmtkuart_probe()
980 bdev->serdev = serdev; in btmtkuart_probe()
981 serdev_device_set_drvdata(serdev, bdev); in btmtkuart_probe()
983 serdev_device_set_client_ops(serdev, &btmtkuart_client_ops); in btmtkuart_probe()
985 err = btmtkuart_parse_dt(serdev); in btmtkuart_probe()
995 dev_err(&serdev->dev, "Can't allocate HCI device\n"); in btmtkuart_probe()
1010 SET_HCIDEV_DEV(hdev, &serdev->dev); in btmtkuart_probe()
1049 devm_gpiod_put(&serdev->dev, bdev->boot); in btmtkuart_probe()
1056 pm_runtime_no_callbacks(&serdev->dev); in btmtkuart_probe()
1063 dev_err(&serdev->dev, "Can't register HCI device\n"); in btmtkuart_probe()
1081 static void btmtkuart_remove(struct serdev_device *serdev) in btmtkuart_remove() argument
1083 struct btmtkuart_dev *bdev = serdev_device_get_drvdata(serdev); in btmtkuart_remove()