moxart_rtc
struct moxart_rtc *moxart_rtc = dev_get_drvdata(dev);
gpiod_direction_output(moxart_rtc->gpio_data, 0);
gpiod_set_value(moxart_rtc->gpio_reset, 1);
gpiod_direction_input(moxart_rtc->gpio_data);
gpiod_set_value(moxart_rtc->gpio_sclk, 0);
gpiod_set_value(moxart_rtc->gpio_reset, 0);
struct moxart_rtc *moxart_rtc = dev_get_drvdata(dev);
gpiod_direction_output(moxart_rtc->gpio_data, 0);
gpiod_set_value(moxart_rtc->gpio_reset, 1);
gpiod_set_value(moxart_rtc->gpio_sclk, 0);
gpiod_set_value(moxart_rtc->gpio_reset, 0);
struct moxart_rtc *moxart_rtc = dev_get_drvdata(dev);
spin_lock_irq(&moxart_rtc->rtc_lock);
spin_unlock_irq(&moxart_rtc->rtc_lock);
struct moxart_rtc *moxart_rtc = dev_get_drvdata(dev);
spin_lock_irq(&moxart_rtc->rtc_lock);
spin_unlock_irq(&moxart_rtc->rtc_lock);
struct moxart_rtc *moxart_rtc;
moxart_rtc = devm_kzalloc(&pdev->dev, sizeof(*moxart_rtc), GFP_KERNEL);
if (!moxart_rtc)
moxart_rtc->gpio_data = devm_gpiod_get(&pdev->dev, "rtc-data",
ret = PTR_ERR_OR_ZERO(moxart_rtc->gpio_data);
moxart_rtc->gpio_sclk = devm_gpiod_get(&pdev->dev, "rtc-sclk",
ret = PTR_ERR_OR_ZERO(moxart_rtc->gpio_sclk);
moxart_rtc->gpio_reset = devm_gpiod_get(&pdev->dev, "rtc-reset",
ret = PTR_ERR_OR_ZERO(moxart_rtc->gpio_reset);
spin_lock_init(&moxart_rtc->rtc_lock);
platform_set_drvdata(pdev, moxart_rtc);
moxart_rtc->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
if (IS_ERR(moxart_rtc->rtc)) {
return PTR_ERR(moxart_rtc->rtc);
struct moxart_rtc *moxart_rtc = dev_get_drvdata(dev);
gpiod_set_value(moxart_rtc->gpio_sclk, 0);
gpiod_set_value(moxart_rtc->gpio_data, ((data & 1) == 1));
gpiod_set_value(moxart_rtc->gpio_sclk, 1);
struct moxart_rtc *moxart_rtc = dev_get_drvdata(dev);
gpiod_set_value(moxart_rtc->gpio_sclk, 0);
gpiod_set_value(moxart_rtc->gpio_sclk, 1);
if (gpiod_get_value(moxart_rtc->gpio_data))