Lines Matching refs:serdev
24 #include <linux/serdev.h>
117 struct serdev_device *serdev;
375 struct serdev_device *serdev = bdev->serdev;
388 len = serdev_device_write_buf(serdev, skb->data,
521 static int btmtkuart_receive_buf(struct serdev_device *serdev, const u8 *data,
524 struct btmtkuart_dev *bdev = serdev_device_get_drvdata(serdev);
533 static void btmtkuart_write_wakeup(struct serdev_device *serdev)
535 struct btmtkuart_dev *bdev = serdev_device_get_drvdata(serdev);
551 err = serdev_device_open(bdev->serdev);
554 dev_name(&bdev->serdev->dev));
560 err = serdev_device_set_baudrate(bdev->serdev,
563 err = serdev_device_set_baudrate(bdev->serdev,
568 dev_name(&bdev->serdev->dev));
572 serdev_device_set_flow_control(bdev->serdev, false);
578 dev = &bdev->serdev->dev;
599 serdev_device_close(bdev->serdev);
607 struct device *dev = &bdev->serdev->dev;
614 serdev_device_close(bdev->serdev);
624 serdev_device_write_flush(bdev->serdev);
684 err = serdev_device_set_baudrate(bdev->serdev,
692 serdev_device_set_flow_control(bdev->serdev, false);
696 err = serdev_device_write_buf(bdev->serdev, ¶m, sizeof(param));
700 serdev_device_wait_until_sent(bdev->serdev, 0);
895 static int btmtkuart_parse_dt(struct serdev_device *serdev)
897 struct btmtkuart_dev *bdev = serdev_device_get_drvdata(serdev);
898 struct device_node *node = serdev->dev.of_node;
907 bdev->vcc = devm_regulator_get(&serdev->dev, "vcc");
913 bdev->osc = devm_clk_get_optional(&serdev->dev, "osc");
919 bdev->boot = devm_gpiod_get_optional(&serdev->dev, "boot",
926 bdev->pinctrl = devm_pinctrl_get(&serdev->dev);
936 dev_err(&serdev->dev,
948 bdev->reset = devm_gpiod_get_optional(&serdev->dev, "reset",
955 bdev->clk = devm_clk_get(&serdev->dev, "ref");
963 static int btmtkuart_probe(struct serdev_device *serdev)
969 bdev = devm_kzalloc(&serdev->dev, sizeof(*bdev), GFP_KERNEL);
973 bdev->data = of_device_get_match_data(&serdev->dev);
977 bdev->serdev = serdev;
978 serdev_device_set_drvdata(serdev, bdev);
980 serdev_device_set_client_ops(serdev, &btmtkuart_client_ops);
982 err = btmtkuart_parse_dt(serdev);
992 dev_err(&serdev->dev, "Can't allocate HCI device\n");
1007 SET_HCIDEV_DEV(hdev, &serdev->dev);
1046 devm_gpiod_put(&serdev->dev, bdev->boot);
1053 pm_runtime_no_callbacks(&serdev->dev);
1060 dev_err(&serdev->dev, "Can't register HCI device\n");
1078 static void btmtkuart_remove(struct serdev_device *serdev)
1080 struct btmtkuart_dev *bdev = serdev_device_get_drvdata(serdev);