Lines Matching +full:clock +full:- +full:freq

1 // SPDX-License-Identifier: GPL-2.0-only
10 * in your board-specific code:
29 * interrupt-parent = <&mpic>;
30 * bosch,external-clock-frequency = <16000000>;
53 MODULE_DESCRIPTION("Socket-CAN driver for CC770 on the platform bus");
61 return ioread8(priv->reg_base + reg); in cc770_platform_read_reg()
67 iowrite8(val, priv->reg_base + reg); in cc770_platform_write_reg()
73 struct device_node *np = pdev->dev.of_node; in cc770_get_of_node_data()
78 prop = of_get_property(np, "bosch,external-clock-frequency", in cc770_get_of_node_data()
84 priv->can.clock.freq = clkext; in cc770_get_of_node_data()
86 /* The system clock may not exceed 10 MHz */ in cc770_get_of_node_data()
87 if (priv->can.clock.freq > 10000000) { in cc770_get_of_node_data()
88 priv->cpu_interface |= CPUIF_DSC; in cc770_get_of_node_data()
89 priv->can.clock.freq /= 2; in cc770_get_of_node_data()
92 /* The memory clock may not exceed 8 MHz */ in cc770_get_of_node_data()
93 if (priv->can.clock.freq > 8000000) in cc770_get_of_node_data()
94 priv->cpu_interface |= CPUIF_DMC; in cc770_get_of_node_data()
96 if (of_get_property(np, "bosch,divide-memory-clock", NULL)) in cc770_get_of_node_data()
97 priv->cpu_interface |= CPUIF_DMC; in cc770_get_of_node_data()
98 if (of_get_property(np, "bosch,iso-low-speed-mux", NULL)) in cc770_get_of_node_data()
99 priv->cpu_interface |= CPUIF_MUX; in cc770_get_of_node_data()
101 if (!of_get_property(np, "bosch,no-comperator-bypass", NULL)) in cc770_get_of_node_data()
102 priv->bus_config |= BUSCFG_CBY; in cc770_get_of_node_data()
103 if (of_get_property(np, "bosch,disconnect-rx0-input", NULL)) in cc770_get_of_node_data()
104 priv->bus_config |= BUSCFG_DR0; in cc770_get_of_node_data()
105 if (of_get_property(np, "bosch,disconnect-rx1-input", NULL)) in cc770_get_of_node_data()
106 priv->bus_config |= BUSCFG_DR1; in cc770_get_of_node_data()
107 if (of_get_property(np, "bosch,disconnect-tx1-output", NULL)) in cc770_get_of_node_data()
108 priv->bus_config |= BUSCFG_DT1; in cc770_get_of_node_data()
109 if (of_get_property(np, "bosch,polarity-dominant", NULL)) in cc770_get_of_node_data()
110 priv->bus_config |= BUSCFG_POL; in cc770_get_of_node_data()
112 prop = of_get_property(np, "bosch,clock-out-frequency", &prop_size); in cc770_get_of_node_data()
118 priv->cpu_interface |= CPUIF_CEN; in cc770_get_of_node_data()
119 priv->clkout |= (cdv - 1) & CLKOUT_CD_MASK; in cc770_get_of_node_data()
121 prop = of_get_property(np, "bosch,slew-rate", in cc770_get_of_node_data()
128 CLKOUT_SL_SHIFT) - in cc770_get_of_node_data()
129 ((cdv * clkext - 1) / 8000000); in cc770_get_of_node_data()
133 priv->clkout |= (slew << CLKOUT_SL_SHIFT) & in cc770_get_of_node_data()
136 dev_dbg(&pdev->dev, "invalid clock-out-frequency\n"); in cc770_get_of_node_data()
147 struct cc770_platform_data *pdata = dev_get_platdata(&pdev->dev); in cc770_get_platform_data()
149 priv->can.clock.freq = pdata->osc_freq; in cc770_get_platform_data()
150 if (priv->cpu_interface & CPUIF_DSC) in cc770_get_platform_data()
151 priv->can.clock.freq /= 2; in cc770_get_platform_data()
152 priv->clkout = pdata->cor; in cc770_get_platform_data()
153 priv->bus_config = pdata->bcr; in cc770_get_platform_data()
154 priv->cpu_interface = pdata->cir; in cc770_get_platform_data()
171 return -ENODEV; in cc770_platform_probe()
174 if (!request_mem_region(mem->start, mem_size, pdev->name)) in cc770_platform_probe()
175 return -EBUSY; in cc770_platform_probe()
177 base = ioremap(mem->start, mem_size); in cc770_platform_probe()
179 err = -ENOMEM; in cc770_platform_probe()
185 err = -ENOMEM; in cc770_platform_probe()
189 dev->irq = irq; in cc770_platform_probe()
191 priv->read_reg = cc770_platform_read_reg; in cc770_platform_probe()
192 priv->write_reg = cc770_platform_write_reg; in cc770_platform_probe()
193 priv->irq_flags = IRQF_SHARED; in cc770_platform_probe()
194 priv->reg_base = base; in cc770_platform_probe()
196 if (pdev->dev.of_node) in cc770_platform_probe()
198 else if (dev_get_platdata(&pdev->dev)) in cc770_platform_probe()
201 err = -ENODEV; in cc770_platform_probe()
205 dev_dbg(&pdev->dev, in cc770_platform_probe()
206 "reg_base=0x%p irq=%d clock=%d cpu_interface=0x%02x " in cc770_platform_probe()
208 priv->reg_base, dev->irq, priv->can.clock.freq, in cc770_platform_probe()
209 priv->cpu_interface, priv->bus_config, priv->clkout); in cc770_platform_probe()
212 SET_NETDEV_DEV(dev, &pdev->dev); in cc770_platform_probe()
216 dev_err(&pdev->dev, in cc770_platform_probe()
228 release_mem_region(mem->start, mem_size); in cc770_platform_probe()
240 iounmap(priv->reg_base); in cc770_platform_remove()
244 release_mem_region(mem->start, resource_size(mem)); in cc770_platform_remove()