Lines Matching full:i3c
14 #include "dw-i3c-master.h"
79 struct ast2600_i3c *i3c = to_ast2600_i3c(dw); in ast2600_i3c_init() local
84 rc = ast2600_i3c_pullup_to_reg(i3c->sda_pullup, ®); in ast2600_i3c_init()
88 rc = regmap_write(i3c->global_regs, in ast2600_i3c_init()
89 AST2600_I3CG_REG0(i3c->global_idx), reg); in ast2600_i3c_init()
96 reg = AST2600_I3CG_REG1_INST_ID(i3c->global_idx); in ast2600_i3c_init()
97 rc = regmap_write(i3c->global_regs, in ast2600_i3c_init()
98 AST2600_I3CG_REG1(i3c->global_idx), reg); in ast2600_i3c_init()
103 static void ast2600_i3c_set_dat_ibi(struct dw_i3c_master *i3c, in ast2600_i3c_set_dat_ibi() argument
108 * The ast2600 i3c controller will lock up on receiving 4n+1-byte IBIs in ast2600_i3c_set_dat_ibi()
114 dev_warn_once(&i3c->base.dev, in ast2600_i3c_set_dat_ibi()
129 struct ast2600_i3c *i3c; in ast2600_i3c_probe() local
132 i3c = devm_kzalloc(&pdev->dev, sizeof(*i3c), GFP_KERNEL); in ast2600_i3c_probe()
133 if (!i3c) in ast2600_i3c_probe()
141 i3c->global_regs = syscon_node_to_regmap(gspec.np); in ast2600_i3c_probe()
144 if (IS_ERR(i3c->global_regs)) in ast2600_i3c_probe()
145 return PTR_ERR(i3c->global_regs); in ast2600_i3c_probe()
147 i3c->global_idx = gspec.args[0]; in ast2600_i3c_probe()
149 rc = of_property_read_u32(np, "sda-pullup-ohms", &i3c->sda_pullup); in ast2600_i3c_probe()
151 i3c->sda_pullup = AST2600_DEFAULT_SDA_PULLUP_OHMS; in ast2600_i3c_probe()
153 rc = ast2600_i3c_pullup_to_reg(i3c->sda_pullup, NULL); in ast2600_i3c_probe()
156 i3c->sda_pullup); in ast2600_i3c_probe()
158 i3c->dw.platform_ops = &ast2600_i3c_ops; in ast2600_i3c_probe()
159 return dw_i3c_common_probe(&i3c->dw, pdev); in ast2600_i3c_probe()
170 { .compatible = "aspeed,ast2600-i3c", },
179 .name = "ast2600-i3c-master",
186 MODULE_DESCRIPTION("ASPEED AST2600 I3C driver");