Simon Glass wrote at Tuesday, February 28, 2012 11:44 AM: > On Tue, Feb 28, 2012 at 10:37 AM, Stephen Warren <swarren@xxxxxxxxxx> wrote: > > Simon Glass wrote at Tuesday, February 28, 2012 10:46 AM: > >> On Mon, Feb 27, 2012 at 3:41 PM, Stephen Warren <swarren@xxxxxxxxxx> wrote: > >> > On 02/27/2012 01:52 PM, Simon Glass wrote: > >> >> A common requirement is to find the clock ID for a peripheral. This is the > >> >> second cell of the 'clocks' property (the first being the phandle itself). > >> > > >> >> +int clock_decode_periph_id(const void *blob, int node) > >> > > >> >> + valid = clock_periph_id_isvalid(id); > >> > > >> > clock_periph_id_isvalid() is not the correct function to use here; the > >> > code should be checking for invalid IDs in the CAR binding, not invalid > >> > IDs in the HW periph ID definition. They're different. > >> > > >> > Just to be explicit, the function you need here would be: > >> > > >> > int clkid_to_periphid(int clkid) > >> > { > >> > if (clk_id > 95) > >> > return -1; > >> > switch (clk_id) { > >> > case 1: > >> > case 2: > >> > case 7: > >> > case 10: > >> > case 20: > >> > case 30: > >> > case 35: > >> > case 49: > >> > case 56: > >> > case 74: > >> > case 77: > >> > case 78: > >> > case 79: > >> > case 80: > >> > case 81: > >> > case 82: > >> > case 83: > >> > case 91: > >> > case 95: > >> > return -1; > >> > default: > >> > return clkid; > >> > } > >> > } > >> > >> Ick. > >> > >> Why is 7 in there, > > > > 7 affects both the UART2 and VFIR clocks/blocks. > > > >> and did you miss 76? > > > > No, that's the undocumented "la" clock. > > > >> Also U-Boot only goes up to 88 > >> at present so should I change the first test to match? > > > > No, clocks 89, 90, 92, 93, and 94 are defined in the binding, which > > matches the CLK_OUT_ENB registers in the Tegra CAR HW (albeit not the > > CLK_RST registers, since there are some differences between the two). > > For both of your comments, since they aren't used in U-Boot, wouldn't > it be more correct to flag these as errors also? We would have to > update at least the clock.h header to support them. It's probably more correct to update the periph_id enum to define all the valid values, but either way is fine. -- nvpublic -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html