)]}'
{"src/jtag/drivers/am335x_gpio.c":[{"author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"change_message_id":"804767539a2b44babcd3fa1bd4f6decf5b75c52c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"#define AM335X_CM_PER_REGS_SIZE 250"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"struct am335x_cm_per_regs {"},{"line_number":35,"context_line":"\tchar unused[172];"},{"line_number":36,"context_line":"\t/* One register to control clock of each GPIO1, GPIO2, GPIO3 */"},{"line_number":37,"context_line":"\tuint32_t gpio_clkctrl[3];"},{"line_number":38,"context_line":"} __attribute__((packed, aligned(4)));"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"6e936f18_ecd17328","line":35,"updated":"2018-10-08 16:08:54.000000000","message":"Why not \"uint32_t unused[43]\" and avoid the packed/aligned attributes?","commit_id":"fbfa0419ef3171f64f8101c0dd37658d7f12a39a"},{"author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"change_message_id":"804767539a2b44babcd3fa1bd4f6decf5b75c52c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"};"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"struct am335x_gpio_regs {"},{"line_number":56,"context_line":"\tchar unused[308];"},{"line_number":57,"context_line":"\t/* output enable register*/"},{"line_number":58,"context_line":"\tuint32_t oe;"},{"line_number":59,"context_line":"\tuint32_t datain;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"6e936f18_0ccfff83","line":56,"updated":"2018-10-08 16:08:54.000000000","message":"Same","commit_id":"fbfa0419ef3171f64f8101c0dd37658d7f12a39a"},{"author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"change_message_id":"804767539a2b44babcd3fa1bd4f6decf5b75c52c","unresolved":false,"context_lines":[{"line_number":60,"context_line":"\tuint32_t dataout;"},{"line_number":61,"context_line":"} __attribute__((packed, aligned(4)));"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"static volatile struct am335x_gpio_regs *gpio_base[4];"},{"line_number":64,"context_line":"static volatile struct am335x_cm_per_regs *cm_per_base;"},{"line_number":65,"context_line":"static int fd_mem;"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"6e936f18_accb6b74","line":63,"range":{"start_line":63,"start_character":7,"end_line":63,"end_character":15},"updated":"2018-10-08 16:08:54.000000000","message":"Volatile on a packed object may not have the desired result.","commit_id":"fbfa0419ef3171f64f8101c0dd37658d7f12a39a"},{"author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"change_message_id":"804767539a2b44babcd3fa1bd4f6decf5b75c52c","unresolved":false,"context_lines":[{"line_number":455,"context_line":"\t\t.mode \u003d COMMAND_CONFIG,"},{"line_number":456,"context_line":"\t\t.help \u003d \"gpio number for trst.\","},{"line_number":457,"context_line":"\t},"},{"line_number":458,"context_line":"\t{"},{"line_number":459,"context_line":"\t\t.name \u003d \"am335x_gpio_speed_coeffs\","},{"line_number":460,"context_line":"\t\t.handler \u003d \u0026am335x_gpio_handle_speed_coeffs,"},{"line_number":461,"context_line":"\t\t.mode \u003d COMMAND_CONFIG,"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"6e936f18_ccc8377a","line":458,"updated":"2018-10-08 16:08:54.000000000","message":"I\u0027m thinking there should be a way to avoid one command for every gpio, maybe one single command using an argument to search a table of existing gpio signals. almost 200 lines for just the tcl accessors seems excessive.","commit_id":"fbfa0419ef3171f64f8101c0dd37658d7f12a39a"}]}
