- 31 Aug, 2007 40 commits
-
-
Sakari Ailus authored
This patch allows using OMAP 2 camera and TCM825x drivers on Nokia N800. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Sakari Ailus authored
Add a driver for the OMAP 2 camera block. OMAP 2 is used in e.g. Nokia N800 internet tablet. This driver uses the new V4L2 internal ioctl interface. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Sakari Ailus authored
vidioc_int_g_ifparm returns platform-specific information about the interface settings used by the sensor. Support for [gs]_ext_clk has been removed. Fix indentation and remove useless & characters. Remove experiment for typechecking slave callback function arguments. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Sakari Ailus authored
Add a driver for Toshiba TCM825x VGA camera sensor. This sensor is used e.g. in Nokia N800 internet tablet. This driver uses the new V4L2 internal ioctl interface. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Sakari Ailus authored
Remove support for g_ext_clk and s_ext_clk. The same functionality is now handled by g_ifparm. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Sakari Ailus authored
Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Sakari Ailus authored
This patch adds BT.656 interface settings for [gs]_ifparm. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Sakari Ailus authored
vidioc_int_g_ifparm can be used to obtain hardware-specific information about the interface used by the slave. Rearrange v4l2-int-device.h as well. Also remove useless & characters. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Sakari Ailus authored
Fix a compile warning on non-32-bit machines in v4l2-int-device.h. Add internal ioctl interface fallback function for ioctls with one argument. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Sakari Ailus authored
This patch adds an internal ioctl-like interface which can be used in situations where a single Video4Linux device is implemented by multiple device drivers. One master device controls one or more slave devices. The slaves provide Video4Linux ioctl-like interface for the use of the master. Only a handful of ioctls are implemented at the moment. More can (and should) be added as more functionality is required. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
-
Syed Mohammed, Khasim authored
This patch is to fix OMAP3430 compilation error. Signed-off-by: Syed Mohammed Khasim <x0khasim@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Syed Mohammed, Khasim authored
This should fix HSI2C, Keypad and T2 failures on 2430SDP Signed-off-by: Syed Mohammed Khasim <x0khasim@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Add three missing clocks: gpmc_fck, sdma_ick, and sdma_fck. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
The OMAP2 clock framework enables a few clocks by hand upon initialization. OMAP3430 will have a different set of clocks to enable upon init. So, generalize this code by adding a new clock flag, ENABLE_ON_INIT, to mark clocks that should be enabled on init; and add a new framework-wide function, clk_enable_init_clocks(), that can be called from generalized init code. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Introduce a new data structure, struct dpll_data, that contains DPLL multiplier, divider, and autoidle information. Update existing DPLL code to use struct dpll_data. The goal here is to set up something that will be usable for OMAP3430 clock tree. Note that this does not affect the SRAM DPLL assembly code - the DPLL register addresses are still hard-coded there. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
The OMAP2 clock framework currently uses a nonstandard function to assign the osc_ck and sys_ck rates, omap2_get_crystal_rate(). By using custom recalc code for these clocks, we can get rid of it and rely on the existing clock tree recalculation process. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Now that we're calling the clock-specific enable & disable code, we can get rid of the special-case code in _omap2_clk_{enable,disable}() for the APLLs. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Now that we're paying attention to the .enable/.disable fields in struct clk, convert the osc_ck enable and disable code to use this standard mechanism. (osc_ck enable/disable does not technically enable or disable the osc_ck; it actually enables/disables autoidling.) Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Call clock-specific enable/disable functions if .enable/.disable function pointer fields are present in struct clk. Similar to OMAP1 clock code. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
We no longer need the *_SEL* clock flags with the struct clksel conversion, so we get rid of them. This frees up 10 clock flag bits. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
RATE_CKCTL is no longer meaningful in the OMAP2 clock framework, so, drop it from all clocks. We keep the flag around since it's still used by OMAP1. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Simplify omap2_clk_set_rate() by separating out the clksel set_rate code into its own function, omap2_clksel_set_rate(). Clksel clocks use this function by placing its function pointer in their .set_rate fields. Convert existing clksel clocks accordingly. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
The OMAP clock framework struct clk contains a field, .round_rate, that is intended to contain a function pointer to rate rounding code. Take advantage of it by converting all clksel clocks' round_rate field to point to omap2_clksel_round_rate(). Rename the existing omap2_clksel_round_rate() to omap2_clksel_round_rate_div(), to signify that it returns divisor information as well, and set up omap2_clksel_round_rate() as a wrapper for the clock framework to use. Simplify omap2_clk_round_rate() accordingly. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
src_offset and rate_offset are no longer used in OMAP2 clock framework after the struct clksel/struct clksel_rate additions. Remove these fields from clock.h and #ifdef out those fields for OMAP24XX compiles. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
This completes the transition to struct clksel/clksel_rate by converting the remaining clksel clocks to call omap2_clksel_recalc() on rate recalculation. Also remove RATE_FIXED from some clocks that can now recalculate their own rates correctly via clksel. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Get rid of now-obsolete code in omap2_clksel_recalc(). Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Stop using clk->src_offset in omap2_clk_set_parent(); use what we get from the clksel code instead. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Stop using clk->rate_offset in omap2_clk_set_rate(); use what we get from the clksel code instead. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Convert omap2_clksel_get_src_field() to use new struct clksel and struct clksel_rate data. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Convert omap2_get_clksel to use new struct clksel and struct clksel_rate data. Also fix its parameter order to conform with the rest of the clock framework functions (i.e., struct clk first). Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Convert omap2_clksel_round_rate() to use the new clksel struct data. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Convert omap2_clksel_to_divisor() and omap2_divisor_to_clksel() to use the new struct clksel and struct clksel_rate data. Add omap2_get_clksel_by_parent() utility code, called by both functions, to return the appropriate struct clksel for a given (struct clk, parent struct clk) combination. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Source-selectable clksel clocks have a 'default parent' assigned to them at compile-time. This default parent may or may not match the reality that is configured in the hardware registers by the bootloader. Clock tree recalculations could be erratic if the struct clk parent field contents don't match the hardware registers. Resolve this by creating omap2_init_clksel_parent() to read the hardware registers and update the struct clk parent field as appropriate for clksel clocks. Add an '.init' field to each source-selectable clk structure so that the parent is fixed up when the clock is initially registered. (We don't do this for clksel clocks that are only rate-selectable, since they only have one possible parent clock.) Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Many OMAP2 clocks are either source- or divisor-selectable by twiddling various register bits; these are 'clksel' clocks. The table of rate divisors and source clock settings was previously embedded in the clock.c source code. Encode this data in two data structures: 1) struct clksel_rate for divisor-selection, mapping divisor values to register bit field values, along with a flags field indicating which chips the rate is available for -- one for each parent-rate combination; and: 2) struct clksel for source-selection, mapping parent struct clk pointers to struct clksel_rate array pointers; one for each parent. Also, add several fields to the clk structure: 1) clksel: pointer to the struct clksel array 2) clksel_reg: pointer to the clksel register 3) clksel_mask: mask for the clksel bitfield Add this data to each clksel clock. All this data is not yet used by the clock framework; that functionality is in the following patches. N.B. Two clocks, sys_clkout and sys_clkout2, could not be converted to this setup without splitting source selection and divisor selection. This is because these clocks use separate registers for each selector. So, create two new clocks, sys_clkout_src and sys_clkout2_src, and locate source-selection there, and keep divisor selection in sys_clkout/sys_clkout2. This entailed modifying board-n800-audio.c. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
omap2_mpu_recalc() actually just looks up what the MPU speed 'should' currently be from the current virt_prcm_set rate set, rather than reporting the actual hardware settings. Clarify this by renaming it to omap2_table_mpu_recalc() and adding some comments. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
omap2_propagate_rate() seems completely superfluous. It handles two cases. The first case is for non-fixed rate clocks. It assigns the parent's rate to the clock, and continues propagating the rate downwards. This can be handled by adding a RATE_PROPAGATES clock flag to the clock, if it wasn't there already, and by using followparent_recalc() directly as the recalc function. The second case is for fixed rate clocks. Here all we need to do is to call propagate_rate() directly, so, use that for the recalc function. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
The onchip_clks array is only used during init, so, mark it __initdata. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
Add a new clock framework function, recalculate_root_clocks(), that recalculates all root clocks (i.e., clocks with no parent clock). Call this function in omap2_clk_arch_init(), rather than manually propagating specific clocks. Add propagate_rate() recalcs to func_32k_ck and osc_ck. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Paul Walmsley authored
dsp_ick's parent clock is dsp_fck, not core_ck. 2420 TRM ES2.1.1 2.2 Rev Q pp. 4-9, 5-28. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-
Syed Mohammed, Khasim authored
This patch is to fix OMAP 3430 boot/compilation for updated mach-types. Signed-off-by: Syed Mohammed Khasim <x0khasim@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com> index c3eff5b..7b65e19 100644
-