User:Knuxify/Draft:Qualcomm/Adding a new SoC to mainline Linux: Difference between revisions
No edit summary |
No edit summary |
||
| Line 81: | Line 81: | ||
Copy your downstream driver to <code>driver/clk/qcom/CODENAME-gcc.c</code>; also copy the dt-bindings from <code>include/dt-bindings/clock/qcom,gcc-CODENAME.h</code> to <code>include/dt-bindings/clock/qcom,CODENAME-gcc.h</code> in mainline. | Copy your downstream driver to <code>driver/clk/qcom/CODENAME-gcc.c</code>; also copy the dt-bindings from <code>include/dt-bindings/clock/qcom,gcc-CODENAME.h</code> to <code>include/dt-bindings/clock/qcom,CODENAME-gcc.h</code> in mainline. | ||
=== Simple changes === | |||
* <code><linux/platform_device.h></code> needs to be added to includes | * <code><linux/platform_device.h></code> needs to be added to includes | ||
| Line 87: | Line 87: | ||
* <code>CLK_DONT_HOLD_STATE</code> in clock flags is downstream-specific, it has no equivalent in mainline. | * <code>CLK_DONT_HOLD_STATE</code> in clock flags is downstream-specific, it has no equivalent in mainline. | ||
=== Clock VDDs/regulators === | |||
Remove anything related to "clock VDDs/regulators": | Remove anything related to "clock VDDs/regulators": | ||
| Line 98: | Line 98: | ||
These have no mainline equivalent. | These have no mainline equivalent. | ||
=== Clock parent data === | |||
Downstream and mainline differ in two significant ways when it comes to how clock parents are defined: | Downstream and mainline differ in two significant ways when it comes to how clock parents are defined: | ||
| Line 105: | Line 105: | ||
* Downstream puts the parent data directly in the clock struct; mainline puts it in separate structs. | * Downstream puts the parent data directly in the clock struct; mainline puts it in separate structs. | ||
=== Probe === | |||
The way probing is done is different in mainline. | The way probing is done is different in mainline. | ||
| Line 132: | Line 132: | ||
For the rest of the probe steps, see how other drivers do it. | For the rest of the probe steps, see how other drivers do it. | ||
== Interconnect driver == | |||
{{todo|figure out what the interconnect actually does.}} | |||
Similar to clocks, interconnects are nearly the same as in downstream, but need some changes. | Similar to clocks, interconnects are nearly the same as in downstream, but need some changes. | ||
| Line 148: | Line 148: | ||
''See https://lore.kernel.org/all/[email protected]/ for an example. Ignore the part where they add <code>alloc_dyn_id</code>, that was removed in another commit as dynamic IDs are now the only option.'' | ''See https://lore.kernel.org/all/[email protected]/ for an example. Ignore the part where they add <code>alloc_dyn_id</code>, that was removed in another commit as dynamic IDs are now the only option.'' | ||
== TLMM/pinctrl == | |||
Driver is in drivers/pinctrl/qcom. | Driver is in drivers/pinctrl/qcom. | ||