Lines Matching +full:es +full:- +full:enable
1 // SPDX-License-Identifier: GPL-2.0
39 struct device *dev = &pdev->dev; in ds2404_gpio_map()
41 /* This will de-assert RESET, declare this GPIO as GPIOD_ACTIVE_LOW */ in ds2404_gpio_map()
42 chip->rst_gpiod = devm_gpiod_get(dev, "rst", GPIOD_OUT_LOW); in ds2404_gpio_map()
43 if (IS_ERR(chip->rst_gpiod)) in ds2404_gpio_map()
44 return PTR_ERR(chip->rst_gpiod); in ds2404_gpio_map()
46 chip->clk_gpiod = devm_gpiod_get(dev, "clk", GPIOD_OUT_HIGH); in ds2404_gpio_map()
47 if (IS_ERR(chip->clk_gpiod)) in ds2404_gpio_map()
48 return PTR_ERR(chip->clk_gpiod); in ds2404_gpio_map()
50 chip->dq_gpiod = devm_gpiod_get(dev, "dq", GPIOD_ASIS); in ds2404_gpio_map()
51 if (IS_ERR(chip->dq_gpiod)) in ds2404_gpio_map()
52 return PTR_ERR(chip->dq_gpiod); in ds2404_gpio_map()
59 gpiod_set_value(chip->rst_gpiod, 1); in ds2404_reset()
61 gpiod_set_value(chip->rst_gpiod, 0); in ds2404_reset()
62 gpiod_set_value(chip->clk_gpiod, 0); in ds2404_reset()
63 gpiod_direction_output(chip->dq_gpiod, 0); in ds2404_reset()
71 gpiod_direction_output(chip->dq_gpiod, 1); in ds2404_write_byte()
73 gpiod_set_value(chip->dq_gpiod, byte & (1 << i)); in ds2404_write_byte()
75 gpiod_set_value(chip->clk_gpiod, 1); in ds2404_write_byte()
77 gpiod_set_value(chip->clk_gpiod, 0); in ds2404_write_byte()
87 gpiod_direction_input(chip->dq_gpiod); in ds2404_read_byte()
90 gpiod_set_value(chip->clk_gpiod, 0); in ds2404_read_byte()
92 if (gpiod_get_value(chip->dq_gpiod)) in ds2404_read_byte()
94 gpiod_set_value(chip->clk_gpiod, 1); in ds2404_read_byte()
107 while (length--) in ds2404_read_memory()
115 u8 ta01, ta02, es; in ds2404_write_memory() local
130 es = ds2404_read_byte(chip); in ds2404_write_memory()
134 dev_err(chip->dev, "read invalid data\n"); in ds2404_write_memory()
143 ds2404_write_byte(chip, es); in ds2404_write_memory()
145 while (gpiod_get_value(chip->dq_gpiod)) in ds2404_write_memory()
151 u8 in[1] = { 0x10 }; /* enable oscillator */ in ds2404_enable_osc()
185 int retval = -EBUSY; in rtc_probe()
187 chip = devm_kzalloc(&pdev->dev, sizeof(struct ds2404), GFP_KERNEL); in rtc_probe()
189 return -ENOMEM; in rtc_probe()
191 chip->dev = &pdev->dev; in rtc_probe()
193 chip->rtc = devm_rtc_allocate_device(&pdev->dev); in rtc_probe()
194 if (IS_ERR(chip->rtc)) in rtc_probe()
195 return PTR_ERR(chip->rtc); in rtc_probe()
203 chip->rtc->ops = &ds2404_rtc_ops; in rtc_probe()
204 chip->rtc->range_max = U32_MAX; in rtc_probe()
206 retval = devm_rtc_register_device(chip->rtc); in rtc_probe()