Lines Matching refs:rk618

15 int rk618_i2c_write(struct rk618 *rk618, u16 reg, u32 val)  in rk618_i2c_write()  argument
17 struct dm_i2c_chip *chip = dev_get_parent_platdata(rk618->dev); in rk618_i2c_write()
31 ret = dm_i2c_xfer(rk618->dev, &msg, 1); in rk618_i2c_write()
33 dev_err(rk618->dev, "Could not execute transfer: %d\n", ret); in rk618_i2c_write()
40 int rk618_i2c_read(struct rk618 *rk618, u16 reg, u32 *val) in rk618_i2c_read() argument
42 struct dm_i2c_chip *chip = dev_get_parent_platdata(rk618->dev); in rk618_i2c_read()
59 ret = dm_i2c_xfer(rk618->dev, msg, 2); in rk618_i2c_read()
61 dev_err(rk618->dev, "Could not execute transfer: %d\n", ret); in rk618_i2c_read()
70 void rk618_frc_dither_disable(struct rk618 *rk618) in rk618_frc_dither_disable() argument
72 rk618_i2c_write(rk618, RK618_FRC_REG, FRC_DITHER_DISABLE); in rk618_frc_dither_disable()
75 void rk618_frc_dither_enable(struct rk618 *rk618) in rk618_frc_dither_enable() argument
77 rk618_i2c_write(rk618, RK618_FRC_REG, FRC_DITHER_ENABLE); in rk618_frc_dither_enable()
80 void rk618_frc_dclk_invert(struct rk618 *rk618) in rk618_frc_dclk_invert() argument
82 rk618_i2c_write(rk618, RK618_FRC_REG, FRC_DCLK_INV); in rk618_frc_dclk_invert()
85 static int rk618_power_on(struct rk618 *rk618) in rk618_power_on() argument
87 if (rk618->power_supply) in rk618_power_on()
88 regulator_set_enable(rk618->power_supply, 1); in rk618_power_on()
90 if (dm_gpio_is_valid(&rk618->enable_gpio)) in rk618_power_on()
91 dm_gpio_set_value(&rk618->enable_gpio, 1); in rk618_power_on()
94 dm_gpio_set_value(&rk618->reset_gpio, 0); in rk618_power_on()
96 dm_gpio_set_value(&rk618->reset_gpio, 1); in rk618_power_on()
98 dm_gpio_set_value(&rk618->reset_gpio, 0); in rk618_power_on()
103 static void rk618_cru_init(struct rk618 *rk618) in rk618_cru_init() argument
105 rk618_i2c_write(rk618, 0x0058, 0xffff0000); in rk618_cru_init()
106 rk618_i2c_write(rk618, 0x005c, 0xffff191e); in rk618_cru_init()
107 rk618_i2c_write(rk618, 0x0060, 0x00000000); in rk618_cru_init()
108 rk618_i2c_write(rk618, 0x0064, 0xffff2186); in rk618_cru_init()
109 rk618_i2c_write(rk618, 0x0068, 0xffff1028); in rk618_cru_init()
110 rk618_i2c_write(rk618, 0x006c, 0xffff0641); in rk618_cru_init()
111 rk618_i2c_write(rk618, 0x0070, 0x00800000); in rk618_cru_init()
112 rk618_i2c_write(rk618, 0x0074, 0xffff1028); in rk618_cru_init()
113 rk618_i2c_write(rk618, 0x0078, 0xffff0641); in rk618_cru_init()
114 rk618_i2c_write(rk618, 0x007c, 0x00800000); in rk618_cru_init()
119 struct rk618 *rk618 = dev_get_priv(dev); in rk618_probe() local
122 rk618->dev = dev; in rk618_probe()
126 &rk618->power_supply); in rk618_probe()
133 &rk618->enable_gpio, GPIOD_IS_OUT); in rk618_probe()
140 &rk618->reset_gpio, GPIOD_IS_OUT); in rk618_probe()
146 ret = clk_get_by_name(dev, "clkin", &rk618->clkin); in rk618_probe()
152 ret = clk_set_rate(&rk618->clkin, 11289600); in rk618_probe()
158 clk_enable(&rk618->clkin); in rk618_probe()
160 ret = rk618_power_on(rk618); in rk618_probe()
166 rk618_cru_init(rk618); in rk618_probe()
176 U_BOOT_DRIVER(rk618) = {
182 .priv_auto_alloc_size = sizeof(struct rk618),