diff --git a/powerdebug.c b/powerdebug.c
index 72faa02..439f8f2 100644
--- a/powerdebug.c
+++ b/powerdebug.c
@@ -216,8 +216,9 @@
 {
 	int c, i;
 	int firsttime[TOTAL_FEATURE_WINS];
-	int enter_hit = 0;
-	int regulators = 0, sensors = 0, clocks = 0, verbose = 0;
+	int enter_hit = 0, verbose = 0;
+	int regulators = 0, sensors = 0, clocks = 0, findparent = 0;
+	char clkarg[64];
 
 	for (i = 0; i < TOTAL_FEATURE_WINS; i++)
 		firsttime[i] = 1;
@@ -227,6 +228,7 @@
 	 * -r, --regulator      : regulator
 	 * -s, --sensor	 : sensors
 	 * -c, --clock	  : clocks
+	 * -p, --findparents    : clockname whose parents have to be found
 	 * -t, --time		: ticktime
 	 * -d, --dump		: dump
 	 * -v, --verbose	: verbose
@@ -241,6 +243,7 @@
 			{"regulator", 0, 0, 'r'},
 			{"sensor", 0, 0, 's'},
 			{"clock", 0, 0, 'c'},
+			{"findparents", 0, 0, 'p'},
 			{"time", 0, 0, 't'},
 			{"dump", 0, 0, 'd'},
 			{"verbose", 0, 0, 'v'},
@@ -249,7 +252,7 @@
 			{0, 0, 0, 0}
 		};
 
-		c = getopt_long(argc, argv, "rsct:dvVh", long_options, &optindex);
+		c = getopt_long(argc, argv, "rscp:t:dvVh", long_options, &optindex);
 		if (c == -1)
 			break;
 
@@ -266,6 +269,10 @@
 			clocks = 1;
 			selectedwindow = CLOCK;
 			break;
+		case 'p':
+			findparent = 1;
+			strcpy(clkarg, optarg);
+			break;
 		case 't':
 			ticktime = strtod(optarg, NULL);
 			break;
@@ -296,6 +303,12 @@
 		usage(argv);
 	}
 
+	if (findparent && (!clocks || !dump)) {
+		fprintf(stderr, "-p option passed without -c and -d."
+			" Exiting...\n");
+		usage(argv);
+	}
+
 	if (!dump)
 		selectedwindow = REGULATOR;
 
@@ -341,8 +354,12 @@
 				highlighted_row = hrow;
 				enter_hit = 0;
 			}
-			if (!ret && dump)
-				read_and_dump_clock_info(verbose);
+			if (!ret && dump) {
+				if (findparent)
+					read_and_dump_clock_info_one(clkarg);
+				else
+					read_and_dump_clock_info(verbose);
+			}
 		}
 
 		if (selectedwindow == SENSOR) {
